Personal dotfiles for macOS. Each file in this repo is symlinked into $HOME
(without the leading dot prefix — zshrc here becomes ~/.zshrc).
git clone git@github.com:sighmin/dotfiles.git ~/Developer/svd/dotfiles
~/Developer/svd/dotfiles/bin/setupbin/setup is idempotent. Real files at a target path are backed up with a
.backup.<timestamp> suffix; existing symlinks are replaced.
zshrc— zsh: history, prompt (pure), syntax highlighting, autosuggestions, fzf, nvm,g/gloc/gpoc/gprgit helpers. Sources~/.zsh_secrets(gitignored) if present.fzf.zsh,fzf.bash— fzf shell integration.
nvim/— LazyVim-based Neovim config (init.lua, lua/config, lua/plugins, lazy-lock.json). Symlinked to~/.config/nvim.vimrc— barebones vim config kept around for quick edits in plain vim. No plugins; just settings and keymaps.zed/settings.json,zed/keymap.json— Zed config (vim mode, theme, agent servers, keymaps). Symlinked individually into~/.config/zed/so Zed's local state (e.g.prompts/) stays out of the repo.
tmux.conf— tmux:C-aprefix, vi keys, mouse, smart split nav with vim, tpm plugins, atom-one theme viatmux-dark-notify.tmux/themes/atom-one/{dark,light}.tmux.conf— theme files sourced bytmux.confand switched bytmux-dark-notifyon macOS appearance changes.
gitconfig— user/editor, aliases (g a,g co,g pf, ...), osxkeychain credential helper,mainas the default init branch,autoSetupRemoteon push.gitignore— global ignore (.DS_Store,.zsh_secrets,.claude/).
setup— symlinks everything into$HOMEand installs the screensaver.helpers— colouredpinfo/psuccess/perror/not_installedshell helpers sourced by the other scripts.mac-config— applies a couple of macOS defaults (faster key repeat, hide desktop icons). Run manually aftersetupif wanted.
Padbury Clock.saver— screensaver bundle.setupcopies it into~/Library/Screen Savers/.
Brewfile— packages, casks, and taps. Refresh withbrew bundle dump --file=Brewfile --force. Install on a new machine withbrew bundle --file=Brewfile.
API keys and similar live in ~/.zsh_secrets, which is sourced by zshrc and
listed in the global gitignore. Nothing sensitive lives in this repo.