My personal macOS dotfiles, symlinked into $HOME by a small install script.
git clone https://github.com/channprj/dotfiles-macOS.git ~/dotfiles
cd ~/dotfiles
./install.sh --dry-run # preview
./install.sh # applyRe-running install.sh is safe: links that already point at the repo are
left alone. The repo can live anywhere — the scripts auto-detect their
own location.
| Source in repo | Destination |
|---|---|
sh/.zshrc, .zshenv, .zshalias, .zshfunc, .zshexec |
~/.zshrc, ~/.zshenv, ~/.zshalias, ... |
sh/.zsh-welcome, sh/.direnvrc, sh/Brewfile |
~/.zsh-welcome, ~/.direnvrc, ~/Brewfile |
sh/gnupg/gpg-agent.conf |
~/.gnupg/gpg-agent.conf |
sh/zsh/custom-zsh-theme/dpoggi-timestamp.zsh-theme |
~/.oh-my-zsh/custom/themes/dpoggi-timestamp.zsh-theme |
git/.gitconfig, git/.gitignore_global, git/.tigrc |
~/.gitconfig, ~/.gitignore_global, ~/.tigrc |
editor/.vimrc, editor/.vim |
~/.vimrc, ~/.vim |
editor/ghostty |
~/.config/ghostty/config |
The full list lives in lib/links.sh and is shared by
install.sh and uninstall.sh.
Anything install.sh is about to replace is moved to:
~/.dotfiles-backup/<timestamp>/
with the original directory structure preserved. A ~/.dotfiles-backup/latest
symlink always points at the most recent backup so uninstall.sh knows
where to restore from.
Custom backup root:
DOTFILES_BACKUP_DIR=/somewhere/else ./install.sh./uninstall.sh --dry-run
./uninstall.shuninstall.sh only removes symlinks that point back into this repo, then
restores the originals from ~/.dotfiles-backup/latest. Anything it did
not place is left untouched.
