Declarative, modular configs managed via GNU Stow. Catppuccin Mocha everything. ☕
Each top‑level directory mirrors its destination under $HOME (e.g. nvim/ → ~/.config/nvim, zsh/ → shell startup, tmux/ → ~/.config/tmux).
I wrote a tiny wrapper called sync-dots (autoloaded from zsh/.config/zsh/functions/sync-dots) that enforces repo root + target path, with tab‑completion:
# Single module
sync-dots nvim
# Multiple modules
sync-dots zsh tmux ghostty lazygit mise atuin
# Every package directory in $STOW_REPO
sync-dots all
# Fallback (plain stow)
cd "$STOW_REPO" && stow nvim- neovim: From‑scratch Lua config. One plugin per file (
lua/{core,chrome,features}/**), shared UI primitives (lua/utils/ui/) for consistent popup geometry. Aggressive lazy‑loading. - zsh: ~45ms cold start via Antidote static bundling, a local
_evalcache,zcompile, autoloaded functions. Clean layering: plugins => topic configs (aliases, keymaps, fzf, zoxide). - tmux: Layered setup:
tmux.confwires plugins, then splits intooptions.confandkeymaps.conf. Prefix isM-d(Alt+d). - ghostty: Keybindings emit escape sequences consumed by tmux/ZSH/Neovim for seamless cross‑tool cohesion.
Theme: Catppuccin Mocha across Neovim, tmux, Ghostty, lazygit, atuin, and more.