all repos — dot @ b658c6231e888aedadd8568abbcf4c63c2a85d98

Shell, editor and terminal configuration, and the tools that go with them

Brewfile (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
# The account's tools: what this repo's own config and scripts use, so that a
# machine with only this repo has what the shell, editor and terminals expect.
# Per-machine apps and toolchains are not here; install those by hand, and
# server software from whatever provisions that machine. install.sh applies this
# with `brew bundle`, which only adds.

# Something breaks without these.
brew "bash"                # macOS ships 3.2. szecret's fallback that fetches
                           # age -- the path taken before this file is applied
                           # -- dies there on `${os,,}`, and config/bashrc
                           # looks for the bash-completion 2.x that needs 4.2
brew "tmux"                # both terminals start every window in tmux
brew "neovim"              # the editor; vi, vim and git all call nvim
brew "age"                 # szecret
brew "git"
brew "git-lfs"             # config/git/config sets up the lfs filter
brew "fzf"                 # zshrc loads its key bindings from Homebrew

# Used when present.
brew "bat"                 # man pages, fzf previews
brew "lsd"                 # ls
brew "ripgrep"             # nvim's grep
brew "the_silver_searcher"
brew "gh"                  # config/profile hands it the GitHub token
brew "mosh"                # alacritty-mosh, mosh-tmux.sh
brew "terminal-notifier"   # bin/notify
brew "fswatch"             # bin/sz-wait-for
brew "n"                   # node versions, under $N_PREFIX
brew "bash-completion"
brew "shellcheck"

cask "alacritty"
cask "hammerspoon"
cask "neovide-app"
# Only where no Ghostty is installed yet: a machine running the ghostty@tip
# build would collide with a second cask over /Applications/Ghostty.app.
cask "ghostty" unless File.exist?("/Applications/Ghostty.app")

# Every Nerd Font Homebrew has, asked at run time rather than listed, so new
# families arrive without editing this file. brew bundle evaluates it with no
# brew on PATH, hence the full path it passes in HOMEBREW_BREW_FILE.
brew_bin = ENV.fetch("HOMEBREW_BREW_FILE") { "#{ENV.fetch("HOMEBREW_PREFIX", "/opt/homebrew")}/bin/brew" }
`"#{brew_bin}" search --cask nerd-font`.split.grep(/\Afont-.*-nerd-font\z/).each { |font| cask font }