This is a chezmoi-managed dotfiles repository for macOS.
dot_*files/folders → installed to~/.{name}(e.g.,dot_config→~/.config)private_*→ files with restricted permissionsrun_once_*→ scripts that run once during setuprun_onchange_*→ scripts that run when their content changes*.tmpl→ chezmoi templates (use{{ }}for variables)Brewfile→ Homebrew packages to install
- chezmoi: Dotfile manager (source of truth is this repo, target is
~) - nushell: Primary shell (zsh kept as login shell for compatibility)
- Ghostty: Terminal emulator
- Zed: Primary editor
- Hammerspoon: Keyboard shortcuts and automation (Lua config)
- oh-my-posh: Prompt theme engine
Use conventional commits: feat, fix, docs, refactor, chore
Include scope when relevant: feat(zed): add new keybinding
Major tool/approach decisions are documented in README.md under "Project decision log".
Use /decision command to add new entries.
Format:
### {number} {Title}
* **Status**: ✅ Adopted | ⛔ Deprecated by [X] | ⬆️ Supersedes [X]
* **Decision**: I will...
* **Context**: Why, what alternatives considered
* **Consequences**: What follows from this- Add to
Brewfileif installable via Homebrew - Add config to appropriate
dot_config/{tool}/directory - Use
.tmplextension if config needs secrets (via 1Password:{{ onepasswordDetailsFields ... }}) - Document the decision in the decision log if it's a significant choice
.DS_Storefiles (already in.gitignore)- Secrets should use chezmoi templates with 1Password, never commit plaintext
README.mdandtodo.mdare not deployed (listed in.chezmoiignore)
chezmoi diff # Preview what would change
chezmoi apply # Apply changes to home directory