You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
macOS terminal setup. Managed with GNU Stow: each top-level directory is a package whose layout mirrors $HOME, stowed as per-file symlinks (--no-folding).
Installs Homebrew + Brewfile, clones oh-my-zsh, creates ~/.config/zsh/secrets.zsh from the example (fill it in), seeds ~/.gitconfig.local with your git identity (taken from your existing global config, else prompted), stows every package.
Existing dotfiles that would collide are moved to ~/.dotfiles-backup/<timestamp>/, never overwritten. Merge what you still need into ~/.config/zsh/work.zsh (shell) or ~/.gitconfig.local (git) — both are auto-loaded and gitignored.
No version manager: node, ruby (/opt/homebrew/opt/ruby/bin first in PATH) and python come straight from brew. nvm/rbenv/pyenv users — re-add their init in ~/.config/zsh/work.zsh.
brew bundle failures don't abort the install. Typical one: a cask whose app you already installed by hand (e.g. Ghostty) — delete the app and rerun, or leave it.
Edit files in ~/.dotfiles directly — they're symlinked, changes are live.
New config: mkdir -p ~/.dotfiles/<pkg>/.config/<pkg>, move the file in, cd ~/.dotfiles && stow --no-folding <pkg>.
After brew install: brew bundle dump --force --file=~/.dotfiles/Brewfile. npm/go/mas skipped via HOMEBREW_BUNDLE_DUMP_NO_* in path.zsh. Dump silently drops formulae from untrusted taps — brew trust --tap <user/repo> first, then they land as trusted: true.
Secrets live in ~/.config/zsh/secrets.zsh, work-machine env/functions in ~/.config/zsh/work.zsh; auto-sourced like the rest, both gitignored, never in this repo.
Git identity (user.name/user.email) and any other machine-local git config live in ~/.gitconfig.local, included from .gitconfig. Nothing personal in the tracked .gitconfig.
zsh notes
Startup ~300ms. Profile: prepend zmodload zsh/zprof to .zshrc, run zprof.
cheat renders the cheat sheet below with glow.
omz owns compinit; dump at ~/.oh-my-zsh/cache/.zcompdump-<zsh-version>, rebuilt when omz revision or fpath changes. New tool completion missing? rm ~/.oh-my-zsh/cache/.zcompdump*.