My personal dotfiles, managed via symlinks. The repo is the source of truth —
each file is symlinked into $HOME, so editing the repo copy or the ~ copy
edits the same file.
| Repo path | Linked to |
|---|---|
.zshrc |
~/.zshrc |
.config/tmux/tmux.conf |
~/.config/tmux/tmux.conf |
vscode/keybindings.json |
~/Library/Application Support/Code/User/keybindings.json (macOS) |
Machine-specific / personal config (school logins, secrets, per-host PATHs) goes
in ~/.zshrc.local, which .zshrc sources if present. It is gitignored — see
.zshrc.local.example for the pattern.
git clone <repo-url> ~/code/personal/dotfiles
cd ~/code/personal/dotfiles
./install.shinstall.sh symlinks everything into $HOME. Any existing real file is moved
to <file>.backup first; correct symlinks are left untouched.
See SETUP.md for the full guide — prerequisites (oh-my-zsh etc.),
recreating ~/.zshrc.local, verifying, and adding new files later.
Secrets (~/.ssh, ~/.claude.json, ~/.config/gh/hosts.yml), shell history,
and generated/cache files are intentionally excluded.