I use Neovim in Ghostty, with tmux for terminal sessions. I also keep tmux sessions open in cmux tabs for quick access. I moved from NvChad to a custom Lua configuration, keeping the shortcuts and features I liked. The configuration lives in my dotfiles repository.
Terminal
Ghostty, Neovim and tmux use TokyoNight Moon. My font is CaskaydiaMono Nerd Font, and my shell is Zsh with Oh My Zsh and a Powerlevel10k prompt.
Window management
I love tiling window managers and would rather have one on any computer I use. I've had better experiences with i3 and Hyprland on Linux, but I currently use a MacBook for work, and AeroSpace does the job.
Neovim
lazy.nvim manages the plugins. These are the main pieces:
- Navigation: Telescope for files, live grep, buffers and symbols; NvimTree for the file sidebar.
- Language support: Mason installs language servers, Neovim's built-in LSP client connects to them, and Blink provides completion. Lazydev adds Neovim API types and documentation for editing Lua configuration.
- Highlighting and editing: Treesitter for syntax highlighting and nvim-autopairs for brackets and quotes.
- Git: Lazygit for changes, branches and commits; Gitsigns for changed-line markers and hunk previews.
- Interface: Lualine for the statusline and buffer row; Which-key for shortcut hints.
- Movement: Neoscroll for smooth scrolling and Smear Cursor for cursor animation.
- Buffers and terminals: mini.bufremove closes buffers while preserving splits; Toggleterm provides a reusable terminal inside Neovim.
Dotfiles
The repository contains packages for Neovim, Ghostty, tmux, Zsh/Powerlevel10k and AeroSpace. It follows GNU Stow's layout: each package mirrors its location under the home directory, with symlinks connecting the live configuration to the repo.
Private shell settings stay in a local file outside the repository. The README covers linking the packages with Stow.