Claude-skill-registry chezmoi-dotfiles

Manage dotfiles using chezmoi. Use when creating, modifying, or deploying dotfiles, shell functions, or configuration files in this repository.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/chezmoi-dotfiles" ~/.claude/skills/majiayu000-claude-skill-registry-chezmoi-dotfiles && rm -rf "$T"
manifest: skills/data/chezmoi-dotfiles/SKILL.md
source content

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:

  1. Navigate to chezmoi source directory

    cd ~/.local/share/chezmoi
    
  2. Create 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/chezmoi
      or use
      chezmoi edit <target-path>
  3. Apply changes to home directory

    chezmoi apply
    # or for specific file:
    chezmoi apply ~/.config/fish/functions/myfile.fish
    
  4. Commit and push to GitHub

    cd ~/.local/share/chezmoi
    git add .
    git commit -m "your message"
    git push origin main
    
  5. Verify it's managed

    chezmoi managed | grep myfile
    

Common Commands

  • chezmoi status
    - Show what has changed
  • chezmoi diff
    - Show detailed differences
  • chezmoi managed
    - List all managed files
  • chezmoi apply
    - Apply changes from dotfiles to home directory
  • chezmoi apply --force
    - Force apply, overriding conflicts
  • chezmoi add <file>
    - Add a file to chezmoi tracking
  • chezmoi 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:

  1. Copy to
    ~/.config/fish/functions/
  2. Functions are immediately available (fish auto-loads them)
  3. 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