macOS dotfiles: Zsh, Homebrew, Kitty, pyenv, and dev tools.
- macOS
- Xcode Command Line Tools (
xcode-select --install)
git clone <your-repo-url> ~/.dotfiles
cd ~/.dotfiles
./setup.shRestart your terminal when done.
After pulling changes to config files, re-link without re-running the full setup:
./setup.sh --linkThis only refreshes symlinks for home dotfiles, config directories, gh config, and the wt command. Skips Homebrew, fonts, Oh My Zsh, pyenv, git config prompts, and everything else.
- Installs Homebrew if missing
- Installs brew formulae: eza, gh, git-lfs, node, bun, pyenv, tmux, tree, uv (plus pyenv build deps: openssl, readline, sqlite3, xz, zlib)
- Installs brew casks: kitty, font-hack-nerd-font
- Installs IBM Plex Mono font from GitHub
- Installs Oh My Zsh with Powerlevel10k, zsh-autosuggestions, and zsh-syntax-highlighting (pinned versions)
- Symlinks home dotfiles (
.zshrc,.zprofile,.p10k.zsh,.vimrc) - Generates
.gitconfigfrom template (prompts for name and email) - Symlinks config directories (
kitty,git) and copiesghconfig - Installs
wtworktree helper to~/.local/bin - Installs Python 3.13.3 via pyenv
- Sets up Git LFS
- Optionally installs Google Cloud SDK
Existing files are backed up with timestamps (e.g. ~/.zshrc.backup.20240101_120000) before being replaced.
dotfiles/
├── bin/
│ └── wt # Git worktree helper
├── config/
│ ├── gh/ # GitHub CLI config (copied, not symlinked)
│ ├── git/ # Git global ignore
│ └── kitty/ # Kitty terminal theme and config
├── home/
│ ├── .gitconfig.template # Git config with placeholder name/email
│ ├── .p10k.zsh # Powerlevel10k prompt config
│ ├── .vimrc # Vim config
│ ├── .zprofile # Login shell setup (Homebrew, pyenv, PATH)
│ └── .zshrc # Interactive shell config (Oh My Zsh, plugins)
├── setup.sh
└── README.md
- Run
p10k configureto reconfigure the prompt - Set Kitty (or your terminal) font to Hack Nerd Font for proper icons
- The
wtcommand is available after restart -- runwt --helpfor usage