anaclumos/mac

mac

Personal dotfiles and configuration for macOS + Zsh.

Tooling is managed with proto where possible.

Setup

# Clone (path is hardcoded in zsh config)
git clone <repo-url> ~/Developer/configs

# Symlink zsh
for f in .zshenv .zprofile .zshrc .zlogin; do
  ln -sf ~/Developer/configs/zsh/$f ~/$f
done

# Symlink karabiner
mkdir -p ~/.config/karabiner/assets/complex_modifications
ln -sf ~/Developer/configs/karabiner/assets/complex_modifications/config.json \
       ~/.config/karabiner/assets/complex_modifications/config.json

Layout

zsh/
├── .zshenv           # Base env for all zsh processes (PATH, exports)
├── .zprofile         # Login shell: Homebrew, OrbStack, GCloud, lib/ helpers
├── .zshrc            # Interactive shell: Oh My Zsh, aliases, functions
├── .zlogin           # Post-login hook (empty)
├── lib/
│   ├── secrets.zsh           # Sources ~/.ssh/.secrets.env
│   └── python-venv-guard.zsh # Blocks global pip installs via uv
└── rc/
    ├── aliases.zsh       # Shell aliases
    ├── functions.zsh     # ai() — Gemini-powered git commit
    └── integrations.zsh  # Atuin, GCloud completions

karabiner/
└── assets/complex_modifications/config.json  # Keyboard remaps

Dependencies

Required: proto, Homebrew, Oh My Zsh, Atuin, uv, trash-cli, Gemini CLI, Karabiner-Elements

Optional: OrbStack, Google Cloud SDK

Secrets

Keep API keys in ~/.ssh/.secrets.env (auto-sourced if present, not tracked by git).