Cross-platform dotfiles managed with chezmoi. The repo focuses on a consistent shell + Git setup, repeatable package installs, and secret-backed templates via Bitwarden.
Note
This repo is designed to be applied with chezmoi. Most files under home/ are templates (*.tmpl) and will be rendered into your $HOME.
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply FSLEFDuring init, chezmoi prompts for machine flags (personal/work/dev/docker) and a Git email (see home/.chezmoi.toml.tmpl).
# Preview changes
chezmoi diff
# Apply changes
chezmoi apply
# Pull latest + re-apply
chezmoi updateTip
Prefer chezmoi diff before chezmoi apply when you changed templates or secret values.
- Bash: home/dot_bashrc
- Zsh: home/dot_zshrc.tmpl
- XDG-style Zsh entrypoints: home/dot_config/zsh (these map to
~/.config/zsh/via chezmoi'sdot_attribute, and simply source the main~/.zshenvand~/.zshrcwhen you useZDOTDIR)
- Global config template: home/dot_config/git/config.tmpl
- Global ignore: home/dot_config/git/ignore_global
- Allowed signers (SSH signing): home/dot_config/git/allowed_signers.tmpl
- Starship config: home/dot_config/starship/starship.toml.tmpl
Aliases are defined in TOML and rendered into a shell script:
- Source of truth: home/.chezmoidata/aliases.toml
- Rendered aliases script: home/dot_config/shell/aliases.sh.tmpl
- Cross-shell alias loader: home/bin/aliases/load-aliases.sh.tmpl
Package lists are centralized in:
This includes Homebrew formulae/casks and Mac App Store apps (via mas), with lists split by machine type (common/personal/work/dev/docker).
- Defaults script template: home/bin/platform/darwin/executable_osx-defaults.sh.tmpl
- iTerm2 assets (plist + profiles): home/.assets/iterm2
- iTerm2 symlink template: home/dot_config/applications/symlink_iterm2.tmpl
- LinearMouse config: home/dot_config/linearmouse/linearmouse.json.tmpl
Templates can pull secrets from Bitwarden via chezmoi's Bitwarden integration.
- Bitwarden item IDs live in: home/.chezmoidata/bitwarden.toml
bw login <your-email>
# If prompted when applying templates, unlock your vault:
bw unlockThis repo can also fetch additional repositories via chezmoi externals, with the list coming from Bitwarden notes:
- Externals template: home/.chezmoiexternal.toml.tmpl
- Templates under
home/use standard chezmoi naming conventions (dot_,private_,executable_,symlink_). - See the helper agent doc for deeper template patterns: .github/agents/ChezMoi.agent.md
Inspired by: twpayne / natelandau / renemarc