UNPKG

@sebastienrousseau/dotfiles

Version:

The Trusted Shell Platform — Universal dotfiles managed by Chezmoi. Features Bash & Zsh for macOS, Linux & WSL. Rust modern tooling & enterprise-grade security.

189 lines (123 loc) 3.51 kB
--- render_with_liquid: false --- # Operations Core workflows for keeping your dotfiles running across platforms. --- ## Platforms ### macOS **Primary manager**: `Homebrew` - **Update**: ```bash chezmoi update ``` This runs `brew bundle install` behind the scenes to reconcile against the declared Brewfiles. - **Permission issues**: `sudo chown -R $(whoami) $(brew --prefix)/*` - **Drift**: Run `brew bundle cleanup` to remove unmanaged packages. ### Linux (Debian, Ubuntu, Kali) **Primary manager**: `apt-get` / `snap` - **Update**: ```bash sudo apt update && sudo apt upgrade -y chezmoi update ``` On Linux, `chezmoi` focuses on configuration. Package updates work best through the OS package manager to avoid `sudo` conflicts. - **Font issues**: If icons are missing, run `./install/provision/run_onchange_50-install-fonts.sh.tmpl` manually via `chezmoi apply` or source directly with `bash`. ### Windows (WSL2) **Primary manager**: `apt-get` (inside WSL) - **Update**: Same as Linux. - **Clipboard**: Dotfiles configures `win32yank.exe` automatically for clipboard sharing. - **Performance**: Keep project files inside the Linux filesystem (`~/projects`), not in `/mnt/c/`, for dramatically better IO. --- ## Workflows ### Apply changes After editing any config file: ```bash dot apply ``` Triggers `dot_zshrc` reload and audit logging. ### Upgrade-safe apply (recommended) ```bash git pull DOTFILES_NONINTERACTIVE=1 dot apply --force dot doctor ``` `dot apply` includes post-apply checks that: - Remove stale read-only zsh cache files (`~/.config/shell/*.zwc`, `~/.config/zsh/**/*.zwc`) - Validate that `dot` resolves to `~/.local/bin/dot` in a fresh login shell 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: ```bash dot update --async ``` ### Roll back If an update breaks your setup: ```bash cd ~/.dotfiles git reset --hard HEAD@{1} chezmoi apply ``` ### Offline / air-gapped mode ```bash # 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: ```bash dot prewarm ``` ### Debug If something's slow or broken: 1. **Check health**: ```bash dot doctor dot health --fix ``` 2. **Smoke test**: ```bash dot smoke-test ``` 3. **Scorecard**: ```bash dot scorecard ``` 4. **Chaos testing (self-healing)**: ```bash dot chaos --force dot heal --force ``` 5. **Startup profiling**: ```bash dot perf --profile ``` 6. **Post-merge verification**: ```bash dot verify ``` 7. **Inspect alias behavior**: ```bash dot aliases list dot aliases why dprune DOTFILES_ALIAS_POLICY=strict bash ~/.dotfiles/scripts/diagnostics/alias-governance.sh ``` 8. **Verbose mode**: ```bash DOTFILES_DEBUG=1 dot apply ``` ### Safety flags Destructive aliases are disabled by default. Enable only when needed: ```bash export DOTFILES_ENABLE_DANGEROUS_ALIASES=1 ``` ### Tiered alias loading Core aliases load eagerly. Ecosystem aliases are lazy-loaded and can be filtered: ```bash export DOTFILES_ALIAS_ECOSYSTEMS=python,node ``` Valid ecosystem tags: `python`, `node`, `rust`, `network`, `legacy`.