- Configs are managed with GNU Stow — each tool has its own folder that mirrors
~/ bootstrap.shinstalls all dependencies, links configs via stow, and installs mise tools (neovim, go, node, python, ruby, rust)- Sensitive or machine-specific config (
.gitconfig.local,.ssh/config.local) stays local and out of the repo
| Package | Config location |
|---|---|
| fish | ~/.config/fish/ |
| ghostty | ~/.config/ghostty/ |
| git | ~/.gitconfig |
| mise | ~/.config/mise/ |
| mise_neovim | ~/.config/mise/conf.d/ |
| nvim | ~/.config/nvim/ |
| ssh | ~/.ssh/config |
| tmux | ~/.tmux.conf |
| zsh | ~/.zshrc, ~/.zprofile |
Mac
Xcode CLI tools and Homebrew are installed automatically if missing.
./bootstrap.sh --macLinux desktop
Full setup, stows everything.
./bootstrap.sh --linux --desktopLinux VM (WSL2, Lima)
Skips ghostty and zsh to avoid conflicts with VM-managed shell config.
./bootstrap.sh --linux --vmContainer
Minimal setup — skips ssh, ghostty, zsh, and full mise config. Only neovim is installed via mise.
./bootstrap.sh --linux --containerbootstrap.sh creates ~/.gitconfig.local from the template — add your name and email:
nvim ~/.gitconfig.localRemove all symlinks created by stow:
./stow_remove.sh