chezmoi source with mode = "symlink" in .chezmoi.toml.tmpl. The managed checkout usually lives at ~/.local/share/chezmoi.
Shell: Fish is the intended daily driver (~/.config/fish/ from dot_config/fish/). Zsh remains available (dot_zshrc.tmpl, ~/.zsh symlink) for compatibility or scripts.
Large trees (vim/, zsh/, shell/ under the source dir) are populated by git-repo externals in .chezmoiexternal.toml. External paths are home-relative (.vim/…, .zsh/…, .shell/…) so clones land behind the ~/.vim, ~/.zsh, and ~/.shell symlinks into this repo.
-
Install chezmoi (for example
brew install chezmoi). -
Initialize from GitHub (clones into
~/.local/share/chezmoiand writes~/.config/chezmoi/chezmoi.toml):chezmoi init --apply YOUR_GITHUB_USERNAME/dotfiles
-
On
chezmoi apply, chezmoi clones or updates externals under$(chezmoi source-path)(seerefreshPeriodin.chezmoiexternal.toml;0means no periodicgit pull—usechezmoi apply --refresh-externalswhen you want to update plugins). -
Set Fish as the login shell (after
brew install fishor your distro package), then:grep -q (which fish) /etc/shells; or echo (which fish) | sudo tee -a /etc/shells chsh -s (which fish)
Optional local overrides: create
~/.config/fish/config.local.fish(sourced at end ofconfig.fish).
chezmoi git pull -- --ff-only
chezmoi apply --refresh-externalsOr your usual dfu alias if it wraps the same steps.
- Fish (
dot_config/fish/):conf.d/snippets (PATH from00-chezmoi-path.fish.tmpl, env, abbreviations, dircolors, Catppuccin theme, vi bindings, secrets) andfunctions/fordfu,load_secret,cdgr,up, helpers, plusfish_prompt/fish_right_prompt(cwd +USER at <~/.name>+fish_git_prompt). Not ported from zsh: async right-prompt,tog/vshow/vmultiline. - Vim externals (
.chezmoiexternal.toml): vim-polyglot for bundled syntax; vim-go withg:polyglot_disabled = ['go']indot_vimrcso Go stays on vim-go. Separate trees for preservim/nerdtree, lightline.vim, material.vim, incsearch.vim. Dircolors: nordtheme/dircolors under~/.shell/plugins/nord-dircolors/. dot_zshrc.tmpl: main zsh init (PATH, Homebrew on macOS, shared~/.shelland~/.zshbits). Optional~/.zshrc.localis sourced last for machine-only overrides (not in this repo).dot_hammerspoon/is skipped on non-macOS via.chezmoiignore.tmpl.dotfiles-local/is ignored until removed locally.