Managed with GNU Stow (single shared branch, cross-platform configs).
shell/→~/.zshrc,~/.zshenv,~/.p10k.zsh,~/.profile,~/.gitconfigconfig/→~/.config/{nvim,tmux,ghostty,zsh,git,btop}ai/→ selected config-only files for.pi,.agents,.codex,.claude,.gemini
Auth/runtime/state files are ignored via .gitignore.
- macOS:
brew install stow - Ubuntu:
sudo apt update && sudo apt install -y stow make
cd ~/dotfiles
make setupWhat make setup does:
- creates a backup under
~/.dotfiles-backups/setup-<timestamp> - moves conflicting targets to backup (never overwrites)
- stows
shell config ai
make dry-runmake cleanupcleanup will prompt for confirmation and prints an explicit warning for LLM/automation.
It unstows packages, then restores files from the last setup backup when possible.
cd ~/dotfiles
git checkout macos
git pull --rebase
# review local changes
git status -sb
git diff --stat
# commit + push
git add -A
git commit -m "chore(dotfiles): sync shared config"
git push origin macos