managed by chezmoi
macos
brew install chezmoi && chezmoi init --apply brendanleeslinux
sh -c "$(curl -fsLS get.chezmoi.io/lb)" -- init --apply brendanleeson first run you'll be prompted to set your machine role. see scoping to skip prompts or provision via ansible.
.chezmoi.toml.tmpl # template config — sets role flags (personal/work/homelab/ephemeral)
.chezmoiexternal.toml.tmpl # external sources (zsh plugins, nvim config, claude config, fonts)
.chezmoidata/ # data files (defaults, themes, packages); local.yml is host-local + gitignored
.chezmoiscripts/
run_once_before_* # bootstrap: install chezmoi deps, mise
run_after_* # post-apply: install tools, tmux plugins
darwin/run_onchange_* # brew taps, packages, casks, mas, uv
.chezmoitemplates/ # shared template partials
dot_zshrc.tmpl # zsh config
dot_config/zsh/ # aliases.zsh.tmpl + exact_aliases.d/ (per-tool alias files)
dot_config/ # xdg config (git, mise, starship, ghostty, …)
dot_local/bin/ # user scripts (theme switcher, dpedit, …)
role flags gate which config and packages are applied per machine type.
- usage — updating, re-installing, github token
- scoping — machine roles, skipping prompts, ansible
- themes — switching theme, adding new themes
- file tracking — adding dotfiles to track
- testing — ci pipeline and branch testing
- inspiration — reference repos and tools