Setup
My toolchain: the keyboard, terminal, editor and tools I use every day, on a Linux desktop and a Mac. All of the configuration is in my dotfiles, and where I’ve written about something, it’s linked.
Hardware
- ZSA Moonlander
- Split ergonomic keyboard; home-row Ctrl, Alt and Super, and layers for symbols, navigation and media.
- Mini-ITX desktop
- My Linux machine, built in 2025 and running Fedora: a Jonsbo N3 case, ASRock B760M-ITX/D4 WiFi board, Intel Core i5-12400, 16 GB of T-Force Vulcan Z DDR4-3200, a 500 GB Crucial P3 NVMe drive and a SilverStone Extreme 550R SFX power supply.
- MacBook Pro
- The same setup on macOS, for work.
Desktop
- Fedora + i3
- Tiling windows on Linux.
- AeroSpace + borders
- Tiling like i3, on macOS.
Terminal
- Ghostty
- The terminal, on both machines.
- Berkeley Mono
- The font everywhere I write code.
- lackluster
- One muted theme across Neovim, Ghostty, tmux, btop and delta.
- herdr
- The workspace I run coding agents in, with a tab each for Claude, Neovim, lazygit and a shell.
- tmux
- Still there, with tpm, for when herdr isn't.
Shell
- zsh + znap
- The pure prompt, autosuggestions, syntax highlighting and history substring search.
- fzf, zsh-z, direnv, fnm
- Fuzzy finding, jumping to directories, per-project environments and Node versions.
Editor
- Neovim + lazy.nvim
- Snacks.nvim (pickers, lazygit), blink.cmp, mini.nvim, mason + lspconfig, conform, treesitter, oil, trouble and neotest.
- herdr.nvim
- Send the line or selection under the cursor to an agent.
- nvim-shepherd
- My todo board in a floating window.
Git
- delta, lazygit, gh
- Readable diffs, a git TUI, and GitHub from the command line.
Command line
- eza, bat, ripgrep, fd, yazi, btop, jq
- Modern takes on ls, cat, grep and find, a file manager, a system monitor and JSON.
- newsboat
- RSS in the terminal.
Agents and todos
- Claude Code
- The coding agent I use most.
- shepherd
- My todo board, a markdown file that coding agents can work from too.
- herdr-gh
- Pull request status in herdr's sidebar.
- herdr-pomodoro
- A pomodoro timer in the sidebar, prompt and Neovim statusline.
- herdr-zsa-lights
- My keyboard lights up when an agent needs me.
Dotfiles
- dotfiles
- All of the above, shared between Linux and macOS with GNU Stow, plus install scripts for both.