| name | chezmoi-dotfiles |
| description | Manage dotfiles using chezmoi. Use when creating, modifying, or deploying dotfiles, shell functions, or configuration files in this repository. |
Chezmoi Dotfiles Management
This skill helps manage dotfiles using chezmoi in this repository.
Repository Location
All dotfiles are managed in ~/.local/share/chezmoi which is a git repository synced to GitHub at https://github.com/craigtkhill/dotfiles.git.
Critical Workflow
When creating or modifying dotfiles, you MUST follow this exact order:
Navigate to chezmoi source directory
cd ~/.local/share/chezmoiCreate or edit files using chezmoi naming conventions
- Use
dot_prefix for dotfiles (e.g.,dot_gitconfig→~/.gitconfig) - Preserve directory structure (e.g.,
dot_config/fish/functions/→~/.config/fish/functions/) - You can edit directly in
~/.local/share/chezmoior usechezmoi edit <target-path>
- Use
Apply changes to home directory
chezmoi apply # or for specific file: chezmoi apply ~/.config/fish/functions/myfile.fishCommit and push to GitHub
cd ~/.local/share/chezmoi git add . git commit -m "your message" git push origin mainVerify it's managed
chezmoi managed | grep myfile
Common Commands
chezmoi status- Show what has changedchezmoi diff- Show detailed differenceschezmoi managed- List all managed fileschezmoi apply- Apply changes from dotfiles to home directorychezmoi apply --force- Force apply, overriding conflictschezmoi add <file>- Add a file to chezmoi trackingchezmoi re-add <file>- Re-add a tracked file
Fish Shell Specifics
Fish automatically loads functions from ~/.config/fish/functions/. Each function must be in its own file named functionname.fish.
After adding new fish functions:
- Copy to
~/.config/fish/functions/ - Functions are immediately available (fish auto-loads them)
- No need to source or reload
Adding Existing Files to Chezmoi
If you want to add an existing file from your home directory to chezmoi:
chezmoi add ~/.config/fish/functions/myfile.fish
This will copy the file to ~/.local/share/chezmoi with proper naming and make it managed.
Common Mistakes
❌ DON'T: Edit files directly in ~/.config/fish/ without updating chezmoi
- Changes will be lost when chezmoi applies source files
❌ DON'T: Forget to commit and push changes to GitHub
- Your dotfiles won't be backed up or available on other machines
✅ DO: Edit in ~/.local/share/chezmoi → Apply → Commit → Push