Personal macOS setup for shell, terminal, window management, and CLI tooling.
.zshrc: oh-my-zsh, aliases,nvm,pyenv,starship,thefuck.tmux.conf: custom keybinds, TPM plugins,tmux-gruvboxtheme.gitconfig+themes.gitconfig: git aliases and delta theme presetsstarship.toml: prompt config (includesjj-starshipcustom module)yabai/yabairc+skhd/skhdrc: tiling and keyboard shortcutsghostty/config: terminal defaults used by thealt + returnshortcutscripts/open_iterm2.sh: optional iTerm2 launcher scriptjj/config.toml: Jujutsu aliases/revsetsopencode/: local OpenCode agent/tool configpi/: global pi coding agent config (settings.json,AGENTS.md, prompts/skills/extensions/themes)
- macOS (Sonoma/Sequoia)
- Homebrew
- Need a setup/bootstrap script to setup the symlinks and install all the necessary dependencies (
brew install ...)
git clone git@github.com:khoaHyh/macOS-dots.git ~/dev/macOS-dots
cd ~/dev/macOS-dots# Homebrew (if needed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Core tools
brew install zsh git vim neovim tmux starship bat fzf direnv git-delta thefuck pyenv rbenv go chruby jq
# Window management
brew install koekeishiya/formulae/yabai koekeishiya/formulae/skhd koekeishiya/formulae/limelight
# Terminal apps
brew install --cask ghostty iterm2
# zsh plugin used by .zshrc
brew install zsh-autosuggestions
# Tmux plugin manager
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Shell bootstrap tools
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bashmkdir -p ~/.config/yabai ~/.config/skhd ~/.config/scripts ~/.pi
ln -sf ~/dev/macOS-dots/.zshrc ~/.zshrc
ln -sf ~/dev/macOS-dots/.tmux.conf ~/.tmux.conf
ln -sf ~/dev/macOS-dots/.gitconfig ~/.gitconfig
ln -sf ~/dev/macOS-dots/starship.toml ~/.config/starship.toml
ln -sf ~/dev/macOS-dots/yabai/yabairc ~/.config/yabai/yabairc
ln -sf ~/dev/macOS-dots/skhd/skhdrc ~/.config/skhd/skhdrc
ln -sf ~/dev/macOS-dots/scripts/open_iterm2.sh ~/.config/scripts/open_iterm2.sh
[ -d ~/.pi/agent ] && [ ! -L ~/.pi/agent ] && mv ~/.pi/agent ~/.pi/agent.backup.$(date +%Y%m%d-%H%M%S)
ln -sfn ~/dev/macOS-dots/pi ~/.pi/agent
chmod +x ~/.config/scripts/open_iterm2.shbrew services start yabai
brew services start skhd
exec zshOpen tmux and press prefix + I to install plugins.
| Shortcut | Action |
|---|---|
alt + return |
Open Ghostty |
alt + h/j/k/l |
Focus window |
shift + alt + h/j/k/l |
Move window |
lctrl + alt + h/j/k/l |
Resize window |
shift + alt + space |
Toggle float |
ctrl + alt + cmd + r |
Restart yabai service |
| Shortcut | Action |
|---|---|
C-a |
Prefix |
Prefix + - |
Split horizontal |
Prefix + _ |
Split vertical |
Prefix + h/j/k/l |
Navigate panes |
Prefix + H/J/K/L |
Resize pane |
Prefix + r |
Reload config |
ls -l ~/.zshrc ~/.tmux.conf ~/.gitconfig ~/.config/starship.toml ~/.config/yabai/yabairc ~/.config/skhd/skhdrc
ls -ld ~/.pi/agent
brew services list | grep -E 'yabai|skhd'
ls -la ~/.tmux/plugins/tpmskhdrccurrently opens Ghostty (alt + return).open_iterm2.shis optional and can be bound if you prefer iTerm2..tmux.confcurrently usesegel/tmux-gruvbox; Catppuccin lines are commented out.~/.pi/agent -> ~/dev/macOS-dots/pikeeps pi config in this repo; runtime files (auth.json, sessions, package installs) are gitignored.- Yabai may require SIP adjustments for full functionality: https://github.com/koekeishiya/yabai/wiki/Disabling-System-Integrity-Protection
cd ~/dev/macOS-dots
git pull