You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace the URL with your actual repo if different.
Daily workflow
Task
Command
Apply pending changes
chezmoi apply
See what would change
chezmoi diff
Edit a managed file
chezmoi edit ~/.zshrc
Add a new file
chezmoi add ~/.config/foo
Pull & apply upstream changes
chezmoi update
Check managed file status
chezmoi status
File naming
chezmoi uses a naming convention in the source directory:
dot_ → leading . in the destination (e.g. dot_zshrc → ~/.zshrc)
private_ → file is created with 0600 permissions
executable_ → file is created with +x
symlink_ → creates a symlink instead of a regular file
Source directory
~/.local/share/chezmoi/ # default source dir
Run chezmoi source-path to confirm the location on your machine.
Operating guide
Practical guidance for maintaining this setup.
Diversify your dotfiles. Never keep everything in one file. This repo holds Neovim, Ghostty, tmux, and zsh as separate positions, with a small hedge in dot_bashrc in case zsh ever crashes. Diversify yo' bonds.
Handle --force with care. chezmoi apply --force will overwrite a hand-edited .zshrc without asking, then introduce itself. Run chezmoi diff first. It is a hell of a flag.
Read the theme docs before committing. theme = CGA in Ghostty is a bold choice. Test it on a throwaway window first, or your next launch is darkness, everybody.
Let the lockfile settle disputes. When two machines disagree on plugin versions, lazy-lock.json decides. LazyVim wins, then serves the losers pancakes. Game, blouses.
Do not start fresh with rm -rf ~/.config. Keeping it real by wiping the config directory to "start clean" goes wrong every time. Clone this repo and run chezmoi init --apply instead.
Indentation policy. Tabs. Space enthusiasts are welcome to open an issue. It will be read, hated, and hated again in the morning.
Updating plugins. Run :Lazy update, then open a Rust file and press rr. If it compiles: WHAT? OKAY! YEAAAH!
Time-boxing configuration work. Around hour four of adjusting colorscheme.lua, the box lights up. Commit what you have and go outside.