managed by chezmoi
macos
brew install chezmoi && chezmoi init --apply brendanleeslinux
sh -c "$(curl -fsLS get.chezmoi.io/lb)" -- init --apply brendanleeswindows
winget install -e --id twpayne.chezmoi --accept-source-agreements --accept-package-agreements
chezmoi init --apply brendanleeson first run you'll be prompted to set machine role. these role flags gate which config and packages are applied.
personal | work | homelab
chezmoi will detect the system environment automatically, and configure things accordingly based on the relevant machine role.
darwin | windows| linux
see scoping for non-interactive options via env vars, ansible.
.chezmoiroot # points chezmoi at home/
home/ # deployable chezmoi source state
.chezmoi.toml.tmpl # role and environment config
.chezmoiexternal.toml.tmpl # plugins, harness configs, fonts
.chezmoidata/ # defaults, themes, package data
.chezmoiscripts/ # bootstrap and post-apply automation
.chezmoitemplates/ # shared template partials
dot_config/ # XDG configuration
dot_local/bin/ # user scripts
agents/ # ~/.agents config
tests/ # repo-only tests
docs/ # repo-only documentation
- secrets - token and secrets (backed by bitwarden)
- ssh - reproducable ssh config and keys (from bitwarden manifest file)
- scoping - define machine roles, non-interactive options
- themes - global theming, how to switch and add new
- testing - ci pipeline and branch testing
- zsh performance - documentation of small zsh/starship performance tweaks