dotfiles

Operations

Core workflows for keeping your dotfiles running across platforms.


Platforms

macOS

Primary manager: Homebrew

Linux (Debian, Ubuntu, Kali)

Primary manager: apt-get / snap

Windows (WSL2)

Primary manager: apt-get (inside WSL)


Workflows

Apply changes

After editing any config file:

dot apply

Triggers dot_zshrc reload and audit logging.

git pull
DOTFILES_NONINTERACTIVE=1 dot apply --force
dot doctor

dot apply includes post-apply checks that:

Finish by reloading your session (exec zsh) or restarting the terminal.

Async updates

Run updates in the background; you’ll get a status banner on the next shell launch:

dot update --async

Roll back

If an update breaks your setup:

cd ~/.dotfiles
git reset --hard HEAD@{1}
chezmoi apply

Offline / air-gapped mode

# 1. On a connected machine, bundle your setup:
dot bundle ~/Downloads

# 2. Transfer the archive to the offline machine, then:
tar --zstd -xf dotfiles_offline_bundle_*.tar.zst -P
cd ~/.dotfiles
./install.sh --force

Pre-warm caches

Regenerate all tool caches to eliminate shell startup latency:

dot prewarm

Debug

If something’s slow or broken:

  1. Check health:
    dot doctor
    dot health --fix
    
  2. Smoke test:
    dot smoke-test
    
  3. Scorecard:
    dot scorecard
    
  4. Chaos testing (self-healing):
    dot chaos --force
    dot heal --force
    
  5. Startup profiling:
    dot perf --profile
    
  6. Post-merge verification:
    dot verify
    
  7. Inspect alias behavior:
    dot aliases list
    dot aliases why dprune
    DOTFILES_ALIAS_POLICY=strict bash ~/.dotfiles/scripts/diagnostics/alias-governance.sh
    
  8. Verbose mode:
    DOTFILES_DEBUG=1 dot apply
    

Safety flags

Destructive aliases are disabled by default. Enable only when needed:

export DOTFILES_ENABLE_DANGEROUS_ALIASES=1

Tiered alias loading

Core aliases load eagerly. Ecosystem aliases are lazy-loaded and can be filtered:

export DOTFILES_ALIAS_ECOSYSTEMS=python,node

Valid ecosystem tags: python, node, rust, network, legacy.