From 5d0688c827b529b9a78efc03e67c269890a68833 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 8 Aug 2026 14:26:59 +0100 Subject: [PATCH] Add which-key and nvim-web-devicons, tidy brew casks which-key needs an icon backend and treats mini.icons and nvim-web-devicons as equally viable optional deps, so devicons covers it. Both are pure APIs with no visible effect on their own; devicons self-initialises on require, so no setup() call. Group labels for the h and t prefixes live in the which-key config rather than next to the gitsigns maps they describe, keeping which-key's config in one place. Worth moving if more plugins start contributing prefixes. The Nerd Font the glyphs need was installed by hand on this machine but missing from brew.sh, so a fresh bootstrap would have rendered every icon as tofu. Records it as a cask alongside the ghostty font-family setting that already expects it. Also drops the claude-code cask, which was never actually installed here: brew tracks stable releases, and we want newer ones, so it comes from Claude's own installer instead. Left a comment so it doesn't get re-added. Co-Authored-By: Claude Opus 5 (1M context) --- brew.sh | 6 +++++- neovim/config/plugins/init.lua | 2 ++ neovim/config/plugins/web-devicons.lua | 3 +++ neovim/config/plugins/which-key.lua | 11 +++++++++++ neovim/nvim-pack-lock.json | 8 ++++++++ 5 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 neovim/config/plugins/web-devicons.lua create mode 100644 neovim/config/plugins/which-key.lua diff --git a/brew.sh b/brew.sh index deee053..2b49611 100755 --- a/brew.sh +++ b/brew.sh @@ -69,7 +69,11 @@ brew install zoxide # Install some casks brew install --cask 1password-cli brew install --cask airbuddy -brew install --cask claude-code +# Deliberately no claude-code cask: brew tracks stable, we want newer +# releases, so it's installed via Claude's own installer into ~/.local/bin + +# Terminal font for ghostty; also supplies the glyphs nvim-web-devicons needs +brew install --cask font-hack-nerd-font brew install --cask ngrok brew install --cask silentknight brew install --cask sublime-text diff --git a/neovim/config/plugins/init.lua b/neovim/config/plugins/init.lua index 3ae1436..d3e6515 100644 --- a/neovim/config/plugins/init.lua +++ b/neovim/config/plugins/init.lua @@ -1 +1,3 @@ require('config.plugins.gitsigns') +require('config.plugins.web-devicons') +require('config.plugins.which-key') diff --git a/neovim/config/plugins/web-devicons.lua b/neovim/config/plugins/web-devicons.lua new file mode 100644 index 0000000..e6428b1 --- /dev/null +++ b/neovim/config/plugins/web-devicons.lua @@ -0,0 +1,3 @@ +-- Filetype icons, used by file trees, pickers and statuslines. +-- Needs a Nerd Font in the terminal; setup() is optional so isn't called. +vim.pack.add({ 'https://github.com/nvim-tree/nvim-web-devicons' }) diff --git a/neovim/config/plugins/which-key.lua b/neovim/config/plugins/which-key.lua new file mode 100644 index 0000000..0eb1d9c --- /dev/null +++ b/neovim/config/plugins/which-key.lua @@ -0,0 +1,11 @@ +vim.pack.add({ 'https://github.com/folke/which-key.nvim' }) + +local wk = require('which-key') + +wk.setup() + +-- Names for the gitsigns prefixes, so the popup groups them sensibly +wk.add({ + { 'h', group = 'hunks' }, + { 't', group = 'toggles' }, +}) diff --git a/neovim/nvim-pack-lock.json b/neovim/nvim-pack-lock.json index 73f107c..cb2f5a2 100644 --- a/neovim/nvim-pack-lock.json +++ b/neovim/nvim-pack-lock.json @@ -3,6 +3,14 @@ "gitsigns.nvim": { "rev": "31d6fb2d618bca1482b9f274751ead5f03461408", "src": "https://github.com/lewis6991/gitsigns.nvim" + }, + "nvim-web-devicons": { + "rev": "2ae6958df7ced50baac5035cec0c15799eedfbf7", + "src": "https://github.com/nvim-tree/nvim-web-devicons" + }, + "which-key.nvim": { + "rev": "3aab2147e74890957785941f0c1ad87d0a44c15a", + "src": "https://github.com/folke/which-key.nvim" } } }