@sebastienrousseau/dotfiles 0.2.519 → 0.2.521

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/CHANGELOG.md +200 -0
  2. package/LICENSE-APACHE +190 -0
  3. package/{LICENSE → LICENSE-MIT} +1 -1
  4. package/README.md +1172 -166
  5. package/install.sh +77 -11
  6. package/package.json +8 -8
  7. package/tools/README.md +49 -0
  8. package/tools/ci/install-chezmoi-verified.sh +68 -0
  9. package/docs/.vitepress/reports/localization-readability-audit.md +0 -73
  10. package/docs/AI.md +0 -179
  11. package/docs/CNAME +0 -1
  12. package/docs/CONFIG_STRATEGY.md +0 -124
  13. package/docs/COPYRIGHT +0 -7
  14. package/docs/GOVERNANCE.md +0 -98
  15. package/docs/MAINTAINERS.md +0 -41
  16. package/docs/NAMING_CONVENTIONS.md +0 -102
  17. package/docs/OPENCODE.md +0 -127
  18. package/docs/README.md +0 -84
  19. package/docs/STRUCTURE.md +0 -102
  20. package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -118
  21. package/docs/adr/ADR-002-shell-performance.md +0 -130
  22. package/docs/adr/ADR-003-security-first.md +0 -158
  23. package/docs/adr/ADR-004-cli-architecture.md +0 -171
  24. package/docs/adr/ADR-005-chezmoi-choice.md +0 -99
  25. package/docs/adr/ADR-006-shell-selection.md +0 -124
  26. package/docs/adr/ADR-007-multi-shell-parity.md +0 -62
  27. package/docs/adr/ADR-008-alias-system-architecture.md +0 -95
  28. package/docs/adr/ADR-009-wallpaper-driven-theming.md +0 -131
  29. package/docs/adr/ADR-010-starship-transient-prompt.md +0 -144
  30. package/docs/adr/ADR-011-nushell-tier3-keep.md +0 -144
  31. package/docs/adr/ADR-012-ai-fleet-local-proxy.md +0 -79
  32. package/docs/adr/README.md +0 -40
  33. package/docs/architecture/AI_COST_OPTIMIZATION.md +0 -144
  34. package/docs/architecture/ARCHITECTURE.md +0 -117
  35. package/docs/architecture/INTEROP.md +0 -44
  36. package/docs/architecture/REPO_LAYOUT.md +0 -241
  37. package/docs/architecture/WALKTHROUGH.md +0 -86
  38. package/docs/architecture/fleet-deployment.md +0 -77
  39. package/docs/archive/EUXIS_2026_REVIEW.md +0 -127
  40. package/docs/archive/LEGACY_ROADMAP.md +0 -6
  41. package/docs/archive/MILESTONE_v0.2.493.md +0 -47
  42. package/docs/archive/PLAN.md +0 -199
  43. package/docs/archive/REPO_AUDIT.md +0 -31
  44. package/docs/articles/.pages +0 -6
  45. package/docs/articles/2026-07-05-custom-mkdocs-material-dark-theme.md +0 -216
  46. package/docs/articles/2026-07-05-fish-startup-abbr.md +0 -153
  47. package/docs/articles/2026-07-05-master-to-main-rename-runbook.md +0 -128
  48. package/docs/articles/index.md +0 -36
  49. package/docs/guides/INSTALL.md +0 -144
  50. package/docs/guides/NEOVIM_IDE_GUIDE.md +0 -61
  51. package/docs/guides/THEMING.md +0 -230
  52. package/docs/guides/TROUBLESHOOTING.md +0 -176
  53. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +0 -792
  54. package/docs/index.md +0 -132
  55. package/docs/interop/A2A.md +0 -39
  56. package/docs/interop/POWERSHELL.md +0 -102
  57. package/docs/manual/00-introduction.md +0 -89
  58. package/docs/manual/01-concepts/01-architecture.md +0 -138
  59. package/docs/manual/01-concepts/02-trust-model.md +0 -183
  60. package/docs/manual/01-concepts/03-theme-engine.md +0 -186
  61. package/docs/manual/01-concepts/04-fleet.md +0 -148
  62. package/docs/manual/01-concepts/05-self-healing.md +0 -204
  63. package/docs/manual/02-tutorials/01-first-install.md +0 -197
  64. package/docs/manual/02-tutorials/02-add-wallpaper.md +0 -216
  65. package/docs/manual/02-tutorials/03-create-profile.md +0 -244
  66. package/docs/manual/02-tutorials/04-encrypt-secret.md +0 -281
  67. package/docs/manual/02-tutorials/05-deploy-fleet.md +0 -283
  68. package/docs/manual/03-reference/01-dot-cli.md +0 -450
  69. package/docs/manual/03-reference/02-config-files.md +0 -265
  70. package/docs/manual/03-reference/03-environment.md +0 -124
  71. package/docs/manual/03-reference/04-templates.md +0 -190
  72. package/docs/manual/03-reference/05-feature-flags.md +0 -187
  73. package/docs/manual/04-cookbook/01-recipes.md +0 -285
  74. package/docs/manual/04-cookbook/02-troubleshooting.md +0 -351
  75. package/docs/manual/04-cookbook/03-faq.md +0 -175
  76. package/docs/manual/05-appendices/A-platform-matrix.md +0 -101
  77. package/docs/manual/05-appendices/B-security-checklist.md +0 -85
  78. package/docs/manual/05-appendices/C-glossary.md +0 -40
  79. package/docs/manual/05-appendices/D-bibliography.md +0 -58
  80. package/docs/manual/05-appendices/E-license.md +0 -38
  81. package/docs/manual/_toc.yml +0 -58
  82. package/docs/manual/command-index.md +0 -155
  83. package/docs/manual/concept-index.md +0 -168
  84. package/docs/manual/index.md +0 -66
  85. package/docs/operations/ARCHITECTURE_ROADMAP.md +0 -7
  86. package/docs/operations/ATTESTATION.md +0 -44
  87. package/docs/operations/CI_CADENCE.md +0 -107
  88. package/docs/operations/CI_COMPOSITES.md +0 -156
  89. package/docs/operations/COMPLETIONS.md +0 -123
  90. package/docs/operations/COVERAGE.md +0 -204
  91. package/docs/operations/DRIFT.md +0 -107
  92. package/docs/operations/HARD_AUDIT_2026.md +0 -631
  93. package/docs/operations/MAINTENANCE.md +0 -63
  94. package/docs/operations/MANIFEST.md +0 -127
  95. package/docs/operations/MIGRATION.md +0 -109
  96. package/docs/operations/OPERATIONS.md +0 -188
  97. package/docs/operations/PERFORMANCE.md +0 -133
  98. package/docs/operations/REGISTRY.md +0 -90
  99. package/docs/operations/RELEASE_PIPELINE.md +0 -128
  100. package/docs/operations/RELIABILITY.md +0 -122
  101. package/docs/operations/RFC_v0_2_503_reorganization.md +0 -280
  102. package/docs/operations/ROADMAP.md +0 -10
  103. package/docs/operations/ROADMAP_2026.md +0 -7
  104. package/docs/operations/ROADMAP_V0_2_503.md +0 -10
  105. package/docs/operations/TESTING.md +0 -216
  106. package/docs/operations/TRACEABILITY.md +0 -43
  107. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +0 -65
  108. package/docs/operations/VERSION_SYNC.md +0 -393
  109. package/docs/reference/ALIASES.md +0 -131
  110. package/docs/reference/ALIASES_CHEATSHEET.md +0 -32
  111. package/docs/reference/ALIASES_DEPRECATIONS.md +0 -13
  112. package/docs/reference/FEATURES.md +0 -66
  113. package/docs/reference/FONTS.md +0 -112
  114. package/docs/reference/POWERSHELL_PARITY.md +0 -82
  115. package/docs/reference/PROFILES.md +0 -69
  116. package/docs/reference/SCREENSHOTS.md +0 -121
  117. package/docs/reference/SCRIPTS.md +0 -71
  118. package/docs/reference/SUPPORT_MATRIX.md +0 -80
  119. package/docs/reference/THEMES.md +0 -117
  120. package/docs/reference/TOOLS.md +0 -110
  121. package/docs/reference/UTILS.md +0 -242
  122. package/docs/registry.json +0 -6
  123. package/docs/schema/dot-env-v1.json +0 -110
  124. package/docs/schema/dot-registry-v1.json +0 -33
  125. package/docs/security/AI_ACT_COMPLIANCE.md +0 -94
  126. package/docs/security/AUDIT_BYPASS.md +0 -103
  127. package/docs/security/AUTOMATION_SECRETS.md +0 -26
  128. package/docs/security/CI_EGRESS_ALLOWLIST.md +0 -127
  129. package/docs/security/CI_PINNING.md +0 -129
  130. package/docs/security/COMMIT_SIGNING.md +0 -138
  131. package/docs/security/COMPLIANCE.md +0 -458
  132. package/docs/security/DEPS_DEV_EXCEPTIONS.md +0 -86
  133. package/docs/security/DISCLOSURE.md +0 -130
  134. package/docs/security/ENCRYPTION.md +0 -57
  135. package/docs/security/FMEA.md +0 -159
  136. package/docs/security/FUZZING.md +0 -114
  137. package/docs/security/HISTORY_FILTERING.md +0 -132
  138. package/docs/security/INCIDENT_RESPONSE.md +0 -579
  139. package/docs/security/INSTALL_VERIFICATION.md +0 -122
  140. package/docs/security/KEYS.md +0 -49
  141. package/docs/security/KEY_ROTATION.md +0 -303
  142. package/docs/security/MCP_POLICY.md +0 -78
  143. package/docs/security/POLICY_RELEASES.md +0 -37
  144. package/docs/security/README.md +0 -28
  145. package/docs/security/SCORECARD.md +0 -195
  146. package/docs/security/SECRETS.md +0 -158
  147. package/docs/security/SECURITY.md +0 -45
  148. package/docs/security/SECURITY_CHECKLIST.md +0 -55
  149. package/docs/security/SHELL_EXEMPTIONS.md +0 -145
  150. package/docs/security/SOUP_REGISTER.md +0 -36
  151. package/docs/security/THREAT_MODEL.md +0 -130
  152. package/docs/security/VERIFICATION_VALIDATION.md +0 -228
  153. package/docs/security/VERIFY_RELEASE.md +0 -201
  154. package/docs/security/security-pubkey.asc +0 -15
  155. package/docs/stylesheets/extra.css +0 -444
  156. package/docs/themes/README.md +0 -10
  157. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +0 -30
  158. package/docs/themes/hero-shot.svg +0 -78
  159. package/scripts/README.md +0 -123
  160. package/scripts/ci/check-copyright-headers.sh +0 -8
  161. package/scripts/ci/check-shell-preamble.sh +0 -8
  162. package/scripts/ci/guard-gitleaks-checkout.sh +0 -8
  163. package/scripts/demo/record.sh +0 -43
  164. package/scripts/diagnostics/a2a-conformance.sh +0 -163
  165. package/scripts/diagnostics/alias-governance.sh +0 -138
  166. package/scripts/diagnostics/aliases-cheatsheet.sh +0 -74
  167. package/scripts/diagnostics/aliases-manifest.sh +0 -77
  168. package/scripts/diagnostics/benchmark.sh +0 -408
  169. package/scripts/diagnostics/conflicts.sh +0 -73
  170. package/scripts/diagnostics/doctor-unified.sh +0 -39
  171. package/scripts/diagnostics/doctor.sh +0 -751
  172. package/scripts/diagnostics/drift-dashboard.sh +0 -202
  173. package/scripts/diagnostics/health.sh +0 -623
  174. package/scripts/diagnostics/history-analysis.sh +0 -86
  175. package/scripts/diagnostics/mcp-doctor.sh +0 -582
  176. package/scripts/diagnostics/perf.sh +0 -453
  177. package/scripts/diagnostics/scorecard.sh +0 -119
  178. package/scripts/diagnostics/secret-governance.sh +0 -65
  179. package/scripts/diagnostics/security-score.sh +0 -467
  180. package/scripts/diagnostics/smoke-test.sh +0 -88
  181. package/scripts/diagnostics/snapshot.sh +0 -90
  182. package/scripts/diagnostics/verify.sh +0 -108
  183. package/scripts/diagnostics/verify_state.sh +0 -73
  184. package/scripts/diagnostics/version-locks.sh +0 -94
  185. package/scripts/diagnostics/workstation-attestation.sh +0 -187
  186. package/scripts/dot/commands/agent.sh +0 -485
  187. package/scripts/dot/commands/agents.sh +0 -336
  188. package/scripts/dot/commands/ai.sh +0 -587
  189. package/scripts/dot/commands/aliases.sh +0 -277
  190. package/scripts/dot/commands/appearance.sh +0 -110
  191. package/scripts/dot/commands/completion.sh +0 -134
  192. package/scripts/dot/commands/core.sh +0 -217
  193. package/scripts/dot/commands/diagnostics.sh +0 -265
  194. package/scripts/dot/commands/env-emit.sh +0 -203
  195. package/scripts/dot/commands/fleet.sh +0 -688
  196. package/scripts/dot/commands/init.sh +0 -185
  197. package/scripts/dot/commands/lint.sh +0 -208
  198. package/scripts/dot/commands/manual.sh +0 -169
  199. package/scripts/dot/commands/meta.sh +0 -333
  200. package/scripts/dot/commands/patterns.sh +0 -55
  201. package/scripts/dot/commands/registry.sh +0 -419
  202. package/scripts/dot/commands/restore.sh +0 -232
  203. package/scripts/dot/commands/secrets.sh +0 -296
  204. package/scripts/dot/commands/security.sh +0 -102
  205. package/scripts/dot/commands/tools.sh +0 -556
  206. package/scripts/dot/data/alias-deprecations.tsv +0 -2
  207. package/scripts/dot/powershell/Dot.psm1 +0 -319
  208. package/scripts/fonts/install-nerd-fonts.sh +0 -75
  209. package/scripts/fonts/patch-fonts.sh +0 -36
  210. package/scripts/git-hooks/install.sh +0 -12
  211. package/scripts/git-hooks/pre-commit +0 -12
  212. package/scripts/git-hooks/pre-commit-audit.sh +0 -146
  213. package/scripts/git-hooks/pre-push +0 -105
  214. package/scripts/git-hooks/prepare-commit-msg +0 -29
  215. package/scripts/lib/secrets_provider.sh +0 -185
  216. package/scripts/ops/ai-setup.sh +0 -71
  217. package/scripts/ops/bundle.sh +0 -104
  218. package/scripts/ops/chaos.sh +0 -50
  219. package/scripts/ops/chezmoi-apply.sh +0 -333
  220. package/scripts/ops/chezmoi-diff.sh +0 -16
  221. package/scripts/ops/chezmoi-remove.sh +0 -46
  222. package/scripts/ops/chezmoi-update.sh +0 -63
  223. package/scripts/ops/heal-chezmoi.sh +0 -87
  224. package/scripts/ops/heal-system.sh +0 -129
  225. package/scripts/ops/heal-tools.sh +0 -297
  226. package/scripts/ops/heal.sh +0 -223
  227. package/scripts/ops/post-apply-repair.sh +0 -107
  228. package/scripts/ops/prewarm.sh +0 -128
  229. package/scripts/ops/release.sh +0 -262
  230. package/scripts/ops/rollback.sh +0 -604
  231. package/scripts/ops/setup.sh +0 -138
  232. package/scripts/ops/teleport.sh +0 -34
  233. package/scripts/qa/check-version-consistency.sh +0 -124
  234. package/scripts/qa/coverage-baseline.sh +0 -61
  235. package/scripts/qa/docs-coverage.sh +0 -112
  236. package/scripts/qa/examples-coverage.sh +0 -94
  237. package/scripts/qa/powershell-contract.ps1 +0 -95
  238. package/scripts/qa/reliability-audit.sh +0 -139
  239. package/scripts/qa/scorecard-snapshot.sh +0 -128
  240. package/scripts/qa/traceability-coverage.sh +0 -117
  241. package/scripts/qa/validate-examples.sh +0 -27
  242. package/scripts/qa/wsl-contract.sh +0 -12
  243. package/scripts/secrets/age-init.sh +0 -82
  244. package/scripts/secrets/create-secrets-file.sh +0 -46
  245. package/scripts/secrets/encrypt-ssh-key.sh +0 -44
  246. package/scripts/security/backup.sh +0 -58
  247. package/scripts/security/check-disclosure-key-expiry.sh +0 -111
  248. package/scripts/security/dns-doh.sh +0 -52
  249. package/scripts/security/encryption-check.sh +0 -55
  250. package/scripts/security/enforce-policies.sh +0 -335
  251. package/scripts/security/firewall.sh +0 -91
  252. package/scripts/security/lock-configs.sh +0 -67
  253. package/scripts/security/lock-screen.sh +0 -56
  254. package/scripts/security/manage-secrets.sh +0 -429
  255. package/scripts/security/ssh-cert.sh +0 -204
  256. package/scripts/security/telemetry-kill.sh +0 -51
  257. package/scripts/security/usb-safety.sh +0 -52
  258. package/scripts/theme/apply-gnome-theme.sh +0 -333
  259. package/scripts/theme/extract-heic-frames.sh +0 -115
  260. package/scripts/theme/extract-theme.py +0 -742
  261. package/scripts/theme/install-boot-logo.sh +0 -63
  262. package/scripts/theme/install-catppuccin-themes.sh +0 -371
  263. package/scripts/theme/install-cursors.sh +0 -26
  264. package/scripts/theme/install-file-icons.sh +0 -27
  265. package/scripts/theme/install-grub-theme.sh +0 -62
  266. package/scripts/theme/install-lock-icon.sh +0 -31
  267. package/scripts/theme/merge-wallpaper.sh +0 -146
  268. package/scripts/theme/rebuild-themes.sh +0 -544
  269. package/scripts/theme/switch.sh +0 -449
  270. package/scripts/theme/wallpaper-rotate.sh +0 -137
  271. package/scripts/theme/wallpaper-sync.sh +0 -690
  272. package/scripts/tools/cmatrix.sh +0 -22
  273. package/scripts/tools/detect-collisions.py +0 -103
  274. package/scripts/tools/emoji-picker.sh +0 -49
  275. package/scripts/tools/figlet-banner.sh +0 -19
  276. package/scripts/tools/log-rotate.sh +0 -31
  277. package/scripts/tools/lolcat-wrap.sh +0 -20
  278. package/scripts/tools/pipes.sh +0 -49
  279. package/scripts/tuning/linux.sh +0 -186
  280. package/scripts/tuning/macos.sh +0 -56
  281. package/scripts/uninstall.sh +0 -86
  282. package/scripts/version-sync.sh +0 -654
  283. package/templates/chezmoi-data/geekom-a9.toml.example +0 -21
  284. package/templates/chezmoi-data/mac-m1.toml.example +0 -16
  285. package/templates/chezmoi-data/mac-t2-linux.toml.example +0 -21
  286. package/templates/chezmoi-data/surface-pro-7p.toml.example +0 -21
  287. package/templates/projects/go/.github/workflows/ci.yml +0 -31
  288. package/templates/projects/go/README.md +0 -7
  289. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +0 -8
  290. package/templates/projects/go/go.mod +0 -3
  291. package/templates/projects/go/go.sum +0 -0
  292. package/templates/projects/molecule/README.md +0 -7
  293. package/templates/projects/molecule/converge.yml +0 -7
  294. package/templates/projects/molecule/molecule.yml +0 -16
  295. package/templates/projects/node/.github/workflows/ci.yml +0 -30
  296. package/templates/projects/node/README.md +0 -7
  297. package/templates/projects/node/package-lock.json +0 -12
  298. package/templates/projects/node/package.json +0 -10
  299. package/templates/projects/node/src/index.js +0 -3
  300. package/templates/projects/packer/README.md +0 -15
  301. package/templates/projects/packer/main.pkr.hcl +0 -15
  302. package/templates/projects/python/.github/workflows/ci.yml +0 -34
  303. package/templates/projects/python/README.md +0 -7
  304. package/templates/projects/python/pyproject.toml +0 -25
  305. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +0 -2
  306. package/templates/projects/python/tests/test_basic.py +0 -3
@@ -1,124 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
-
5
- # Reference: Environment Variables
6
-
7
- All environment variables that affect `.dotfiles` behaviour.
8
-
9
- ## User-Settable
10
-
11
- Variables you can set in your shell to change behaviour.
12
-
13
- | Variable | Default | Effect |
14
- |:---|:---|:---|
15
- | `DOTFILES_VERBOSE` | unset | Verbose output from `dot` commands |
16
- | `DOTFILES_NONINTERACTIVE` | unset | Skip interactive prompts (for CI) |
17
- | `DOTFILES_SILENT` | unset | Suppress non-error output |
18
- | `DOTFILES_DEBUG` | unset | Print shell-init timing to stderr |
19
- | `DOTFILES_SOURCE_DIR` | `~/.dotfiles` | Override the source directory |
20
- | `DOTFILES_WALLPAPER_DIR` | `~/Pictures/Wallpapers` | Custom wallpaper directory |
21
- | `DOTFILES_CACHE_DIR` | `~/.cache/dotfiles` | Override cache location |
22
- | `DOTFILES_STATE_DIR` | `~/.local/state/dotfiles` | Override state directory |
23
- | `DOTFILES_TUNING` | `0` | Enable OS tuning (`dot tune`) |
24
- | `EDITOR` | `nvim` | Editor used by `dot edit` and `sops` |
25
- | `PAGER` | `less` | Pager used by `dot manual text` |
26
-
27
- ## Auto-Populated
28
-
29
- Variables the dotfiles set in your shell for tool consumption.
30
-
31
- | Variable | Value | Source |
32
- |:---|:---|:---|
33
- | `XDG_CONFIG_HOME` | `~/.config` | `dot_zshenv` / `dot_config/fish/conf.d/env.fish.tmpl` |
34
- | `XDG_CACHE_HOME` | `~/.cache` | ditto |
35
- | `XDG_DATA_HOME` | `~/.local/share` | ditto |
36
- | `XDG_STATE_HOME` | `~/.local/state` | ditto |
37
- | `PATH` | managed order | `dot_config/shell/00-core-paths.sh.tmpl` |
38
- | `BUN_INSTALL` | `~/.bun` | `env.fish.tmpl` |
39
- | `PIPX_HOME` | `~/.local/share/pipx` | ditto |
40
- | `PIPX_BIN_DIR` | `~/.local/bin` | ditto |
41
- | `BUILDS_TMPDIR` | `/tmp/builds` | `dot_zshenv` (created on shell init) |
42
- | `CARGO_TARGET_DIR` | (from `~/.cargo/config.toml`) | `target-dir = "/tmp/builds/cargo"` |
43
- | `GOCACHE` | `/tmp/builds/go-cache` | `mise [env]` |
44
- | `GOTMPDIR` | `/tmp/builds/go-tmp` | `mise [env]` |
45
- | `PIP_CACHE_DIR` | `/tmp/builds/pip-cache` | `mise [env]` |
46
- | `UV_CACHE_DIR` | `/tmp/builds/uv-cache` | `mise [env]` |
47
- | `ZIG_LOCAL_CACHE_DIR` | `/tmp/builds/zig-cache` | `mise [env]` |
48
- | `ZIG_GLOBAL_CACHE_DIR` | `/tmp/builds/zig-global-cache` | `mise [env]` |
49
- | `HOMEBREW_PREFIX` | `/opt/homebrew` or `/usr/local` | `dot_zshenv` (macOS) |
50
- | `MANPATH` | homebrew-adjusted | ditto |
51
- | `MISE_EXPERIMENTAL` | `1` | `~/.config/mise/config.toml` |
52
- | `GITHUB_TOKEN` | from `gh auth token` | `~/.config/mise/config.toml` |
53
-
54
- ## Read by Tools
55
-
56
- Variables set by upstream tools and respected by `.dotfiles`.
57
-
58
- | Variable | Used for |
59
- |:---|:---|
60
- | `SHELL` | Detect default shell |
61
- | `TERM` | Terminal capabilities (e.g. `xterm-256color`) |
62
- | `COLORTERM` | True-color detection (`truecolor`) |
63
- | `LANG` / `LC_ALL` | Locale (must be UTF-8) |
64
- | `HOME` | User home directory |
65
- | `USER` | Username |
66
- | `SSH_AUTH_SOCK` | ssh-agent socket |
67
- | `GPG_TTY` | GPG pinentry TTY |
68
-
69
- ## CI-Specific
70
-
71
- Variables relevant in GitHub Actions.
72
-
73
- | Variable | Purpose |
74
- |:---|:---|
75
- | `CI` | Set to `true` in CI; disables prompts |
76
- | `GITHUB_ACTIONS` | GHA-specific; enables step summary output |
77
- | `CHEZMOI_VERSION` | Pinned chezmoi version for CI |
78
- | `COVERAGE_THRESHOLD` | Executable module-mapping threshold (100 in enforced CI; not line coverage) |
79
- | `DOTFILES_TEST_MODE` | Skip network-dependent tests |
80
-
81
- ## Secret-Related
82
-
83
- | Variable | Purpose |
84
- |:---|:---|
85
- | `SOPS_AGE_KEY_FILE` | Override `~/.config/age/keys.txt` path |
86
- | `SOPS_AGE_RECIPIENTS` | Override recipients for new encryption |
87
- | `CHEZMOI_AGE_IDENTITY` | Override age identity for chezmoi decrypt |
88
-
89
- > Warning: never set these to values stored in plaintext config. Use a password manager or ephemeral injection.
90
-
91
- ## Startup Order
92
-
93
- Shell-loaded variables follow this precedence (later wins):
94
-
95
- 1. System defaults (`/etc/environment`, `/etc/profile`)
96
- 2. Homebrew shellenv (macOS)
97
- 3. `~/.zshenv` (earliest user-level file; sets XDG + PATH bootstrap)
98
- 4. `~/.zprofile` or `~/.config/fish/conf.d/*.fish`
99
- 5. `~/.zshrc` or `~/.config/fish/config.fish`
100
- 6. `mise activate` — injects tool-specific env
101
- 7. Per-project `.envrc` via direnv (opt-in)
102
-
103
- To debug: `DOTFILES_DEBUG=1 zsh -i -c exit` prints timing for each stage.
104
-
105
- ## Unsetting
106
-
107
- To clean up environment pollution:
108
-
109
- ```sh
110
- # Show current dotfiles-set vars
111
- env | grep -E '^(DOTFILES_|XDG_|BUILDS_)'
112
-
113
- # Unset one
114
- unset DOTFILES_DEBUG
115
-
116
- # Reset to defaults (restart shell)
117
- exec $SHELL -l
118
- ```
119
-
120
- ## See Also
121
-
122
- - [Configuration Files](02-config-files.md)
123
- - [Feature Flags](05-feature-flags.md)
124
- - [First Install](../02-tutorials/01-first-install.md)
@@ -1,190 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
- {% raw %}
5
-
6
- # Reference: Template Variables
7
-
8
- Every variable available to chezmoi templates (`.tmpl` files).
9
-
10
- ## From `.chezmoidata.toml`
11
-
12
- Flat top-level keys:
13
-
14
- | Variable | Type | Example |
15
- |:---|:---|:---|
16
- | `.dotfiles_version` | string | `"0.2.501"` |
17
- | `.theme` | string | `"tahoe-dark"` |
18
- | `.machine` | string | `"macbook-t2"` |
19
- | `.profile` | string | `"laptop"` |
20
- | `.default_shell` | string | `"fish"` |
21
- | `.terminal_font_family` | string | `"JetBrainsMono Nerd Font"` |
22
- | `.terminal_font_size` | int | `12` |
23
- | `.name` | string | `"Your Name"` |
24
- | `.email` | string | `"you@example.com"` |
25
-
26
- ## From `.chezmoidata/themes.toml`
27
-
28
- ```go
29
- {{- $t := index .themes .theme }}
30
- {{ $t.mode }} // "dark" or "light"
31
- {{ $t.family }} // "tahoe"
32
- {{ $t.macos_accent }} // 4 (integer)
33
- {{ $t.term.bg }} // "#121430"
34
- {{ $t.term.fg }} // "#d4d8ec"
35
- {{ $t.term.c0 }} .. {{ $t.term.c15 }} // ANSI 0-15
36
- {{ $t.ui.accent }} // "#3951b1"
37
- {{ $t.ui.accent_text }} // "#ffffff"
38
- {{ $t.ui.panel }}
39
- {{ $t.ui.border }}
40
- {{ $t.app.nvim }} // "catppuccin"
41
- {{ $t.app.starship_palette }}
42
- ```
43
-
44
- ## From `.chezmoidata/hardware.toml`
45
-
46
- ```go
47
- {{- $hw := index .hardware .machine }}
48
- {{ $hw.display_scale }} // 2.0
49
- {{ $hw.kbd_layout }} // "qwerty"
50
- {{ $hw.modifier_mode }} // "left-cmd-control"
51
- {{ $hw.perf_profile }} // "laptop"
52
- {{ $hw.wm }} // "aerospace"
53
- {{ $hw.features.touchid }} // bool
54
- ```
55
-
56
- ## From Feature Flags
57
-
58
- ```go
59
- {{- $f := mergeOverwrite .features $hw.features }}
60
- {{ if $f.dms }}
61
- # Dank Material Shell-specific config
62
- {{ end }}
63
-
64
- {{ if $f.niri }}
65
- # Niri WM config
66
- {{ end }}
67
- ```
68
-
69
- ## Built-in Chezmoi Variables
70
-
71
- ```go
72
- {{ .chezmoi.os }} // "darwin" | "linux" | "windows"
73
- {{ .chezmoi.arch }} // "amd64" | "arm64"
74
- {{ .chezmoi.kernel }} // "Darwin" | "Linux"
75
- {{ .chezmoi.kernel.ostype }} // "darwin24" etc
76
- {{ .chezmoi.hostname }} // host machine hostname
77
- {{ .chezmoi.username }} // current user
78
- {{ .chezmoi.homeDir }} // $HOME
79
- {{ .chezmoi.sourceDir }} // ~/.dotfiles
80
- {{ .chezmoi.workingTree }} // git working tree root
81
- {{ .chezmoi.executable }} // chezmoi binary path
82
- {{ .chezmoi.osRelease }} // Linux /etc/os-release data
83
- ```
84
-
85
- ## Built-in Chezmoi Functions
86
-
87
- ```go
88
- {{ exec "command" | trim }}
89
- {{ output "hostname" }}
90
- {{ include "path/to/file" }}
91
- {{ decrypt "path/to/file.age" }}
92
- {{ sopsDecrypt "path/to/file.sops.yaml" | fromYaml }}
93
- {{ joinPath "a" "b" }}
94
- {{ stat "/path" }}
95
- {{ ioreg ".." ".." }} // macOS only
96
- {{ lookPath "command" }} // returns path or empty
97
- ```
98
-
99
- ## Helper Templates (in `.chezmoitemplates/`)
100
-
101
- Reusable partials included via:
102
-
103
- ```go
104
- {{ template "paths/00-default.paths.sh" . }}
105
- {{ template "aliases/cd.aliases.sh" . }}
106
- {{ template "functions/cdls.sh" . }}
107
- ```
108
-
109
- Available partials:
110
-
111
- - `paths/00-default.paths.sh` — canonical PATH construction
112
- - `paths/05-pipx.paths.sh` — pipx + ~/.local/bin
113
- - `paths/99-custom.paths.sh` — user-appended paths
114
- - `aliases/*.aliases.sh` — per-domain alias sets
115
- - `functions/*.sh` — reusable shell functions
116
-
117
- ## Example: Using Theme in Ghostty Config
118
-
119
- ```go
120
- {{- /* dot_config/ghostty/config.tmpl */ -}}
121
- {{- $t := index .themes .theme -}}
122
-
123
- font-family = "{{ .terminal_font_family }}"
124
- font-size = {{ .terminal_font_size }}
125
-
126
- background = {{ $t.term.bg }}
127
- foreground = {{ $t.term.fg }}
128
- cursor-color = {{ $t.term.cursor }}
129
-
130
- palette = 0={{ $t.term.c0 }}
131
- palette = 1={{ $t.term.c1 }}
132
- palette = 2={{ $t.term.c2 }}
133
- # ... through 15
134
-
135
- {{- if eq .chezmoi.os "darwin" }}
136
- macos-titlebar-style = transparent
137
- {{- end }}
138
- ```
139
-
140
- ## Example: Platform × Preset
141
-
142
- ```go
143
- {{- $hw := index .hardware .machine -}}
144
-
145
- {{- if and (eq .chezmoi.os "darwin") (eq $hw.wm "aerospace") }}
146
- # macOS AeroSpace config
147
- include = ["aerospace-macos.toml"]
148
- {{- else if and (eq .chezmoi.os "linux") (eq $hw.wm "niri") }}
149
- # Linux Niri config
150
- include = ["niri.kdl"]
151
- {{- end }}
152
-
153
- # DPI-aware sizing
154
- font-size = {{ mul 8 $hw.display_scale | int }}
155
- ```
156
-
157
- ## Template Testing
158
-
159
- Render a template without applying:
160
-
161
- ```sh
162
- chezmoi execute-template < dot_config/ghostty/config.tmpl
163
- ```
164
-
165
- Or test an expression:
166
-
167
- ```sh
168
- chezmoi execute-template '{{ .chezmoi.os }}'
169
- # darwin
170
-
171
- chezmoi execute-template '{{- $t := index .themes .theme -}}{{ $t.term.bg }}'
172
- # #121430
173
- ```
174
-
175
- ## Validation in CI
176
-
177
- Every push to main runs:
178
-
179
- ```sh
180
- chezmoi apply --dry-run
181
- ```
182
-
183
- If any template fails to render, the build breaks before merge.
184
-
185
- ## See Also
186
-
187
- - [Chezmoi template reference](https://www.chezmoi.io/reference/templates/)
188
- - [Configuration Files](02-config-files.md)
189
- - [Create a Profile tutorial](../02-tutorials/03-create-profile.md)
190
- {% endraw %}
@@ -1,187 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
- {% raw %}
5
-
6
- # Reference: Feature Flags
7
-
8
- Feature flags toggle optional subsystems. Set in `.chezmoidata.toml`, override per-preset in `.chezmoidata/hardware.toml`.
9
-
10
- ## Global Flags (`.chezmoidata.toml`)
11
-
12
- ```toml
13
- [features]
14
- alias_wrapper = false # Wrap selected aliases with safer defaults
15
- dms = true # Dank Material Shell (Niri desktop)
16
- zellij = false # Zellij terminal multiplexer config
17
- linux_desktop = false # Linux-specific desktop configs
18
- niri = false # Niri window manager
19
- waybar = false # Waybar status bar
20
- fuzzel = false # Fuzzel application launcher (Wayland)
21
- mako = false # Mako notification daemon (Wayland)
22
- foot = false # Foot terminal emulator (Wayland)
23
- kanshi = false # Kanshi monitor profile manager (Wayland)
24
- touch = false # Touchscreen-friendly tweaks (Surface, etc.)
25
- t2 = false # Apple T2 hardware-specific tweaks
26
- surface = false # Microsoft Surface hardware-specific tweaks
27
- ```
28
-
29
- ## Per-Preset Overrides (`.chezmoidata/hardware.toml`)
30
-
31
- ```toml
32
- [hardware.surface-pro.features]
33
- niri = true
34
- waybar = true
35
- dms = true # overrides .chezmoidata.toml default
36
- ```
37
-
38
- The effective value is `mergeOverwrite` of global + preset features.
39
-
40
- ## Flag Catalogue
41
-
42
- ### `dms` — Dank Material Shell
43
-
44
- When `true`:
45
-
46
- - Configures DMS IPC for theme sync
47
- - Enables Quickshell templates
48
- - Sets up per-monitor wallpaper via `dms ipc wallpaper`
49
-
50
- Requires: Niri + Quickshell + DMS installed.
51
-
52
- ### `linux_desktop` — Linux Desktop Configs
53
-
54
- When `true`:
55
-
56
- - Enables GTK 3/4 theme generation from `themes.toml`
57
- - Configures `gsettings color-scheme` behaviour
58
- - Generates desktop file entries for installed tools
59
-
60
- No effect on macOS.
61
-
62
- ### `niri` — Niri Window Manager
63
-
64
- When `true`:
65
-
66
- - Generates `~/.config/niri/config.kdl`
67
- - Enables Niri keybindings from `keybinds.toml`
68
- - Configures workspace rules per preset
69
-
70
- Requires: Niri installed.
71
-
72
- ### `waybar` — Waybar Status Bar
73
-
74
- When `true`:
75
-
76
- - Generates `~/.config/waybar/config.jsonc` + `style.css`
77
- - Hooks into theme switching via `dot-theme-sync`
78
-
79
- Requires: Waybar installed.
80
-
81
- ### `alias_wrapper` — Safer Alias Defaults
82
-
83
- When `true`, opt-in wrappers replace selected aliases with confirmation-prompt
84
- variants (e.g., `rm -i`, `mv -i`). Default `false` for power-user ergonomics.
85
-
86
- ### `zellij` — Zellij Terminal Multiplexer
87
-
88
- When `true`:
89
-
90
- - Generates `~/.config/zellij/config.kdl` from the active theme
91
- - Wires the `dot mux` alias to launch a profile-aware session
92
-
93
- Requires: Zellij installed.
94
-
95
- ### `fuzzel` — Fuzzel Application Launcher (Wayland)
96
-
97
- When `true`, generates `~/.config/fuzzel/fuzzel.ini` using the active theme.
98
- Requires: Fuzzel installed (Wayland-only). No effect on macOS.
99
-
100
- ### `mako` — Mako Notification Daemon (Wayland)
101
-
102
- When `true`, generates `~/.config/mako/config` with theme-derived colors.
103
- Requires: Mako installed (Wayland-only). No effect on macOS.
104
-
105
- ### `foot` — Foot Terminal Emulator (Wayland)
106
-
107
- When `true`, generates `~/.config/foot/foot.ini` from `themes.toml`.
108
- Requires: Foot installed (Wayland-only). No effect on macOS.
109
-
110
- ### `kanshi` — Kanshi Monitor Profile Manager (Wayland)
111
-
112
- When `true`, generates `~/.config/kanshi/config` with per-host monitor layouts.
113
- Requires: Kanshi installed (Wayland-only). No effect on macOS.
114
-
115
- ### `touch` — Touchscreen-Friendly Tweaks
116
-
117
- When `true`, enables larger UI scaling and touch-friendly input mappings.
118
- Typically combined with `surface` for Microsoft Surface devices.
119
-
120
- ### `t2` — Apple T2 Hardware Tweaks
121
-
122
- When `true`, enables `t2linux` kernel-module hints, audio routing fixes, and
123
- Touch-Bar utilities for Intel Macs with the T2 chip on Linux. Set by the
124
- `macbook-t2` hardware preset in `.chezmoidata/hardware.toml`.
125
-
126
- ### `surface` — Microsoft Surface Hardware Tweaks
127
-
128
- When `true`, enables `linux-surface` kernel parameters, touchpad gestures, and
129
- pen-input mappings. Set by the `surface-pro` hardware preset.
130
-
131
- ## Using a Flag in a Template
132
-
133
- ```go
134
- {{- $hw := index .hardware .machine }}
135
- {{- $f := mergeOverwrite .features $hw.features }}
136
-
137
- {{ if $f.niri }}
138
- # Niri-specific config
139
- {{ end }}
140
- ```
141
-
142
- ## Checking Active Flags
143
-
144
- ```sh
145
- chezmoi execute-template '{{- $hw := index .hardware .machine -}}{{- $f := mergeOverwrite .features $hw.features -}}{{ $f | toToml }}'
146
- ```
147
-
148
- ## Adding a New Flag
149
-
150
- 1. Add to `.chezmoidata.toml`:
151
-
152
- ```toml
153
- [features]
154
- my_new_flag = false
155
- ```
156
-
157
- 2. (Optional) Set per preset:
158
-
159
- ```toml
160
- [hardware.macbook-t2.features]
161
- my_new_flag = true
162
- ```
163
-
164
- 3. Use in templates:
165
-
166
- ```go
167
- {{ if $f.my_new_flag }}
168
- # conditional config
169
- {{ end }}
170
- ```
171
-
172
- 4. Document here with the flag's purpose and requirements
173
-
174
- ## Flag Deprecation
175
-
176
- Flags can be deprecated without breaking existing hosts. The deprecation process:
177
-
178
- 1. Mark the flag as deprecated in this document
179
- 2. Leave the flag evaluation in place for one release
180
- 3. In the subsequent release, remove the template branches and the flag definition
181
- 4. Users who had the flag set will see it ignored — no errors
182
-
183
- ## See Also
184
-
185
- - [Configuration Files](02-config-files.md)
186
- - [Create a Profile](../02-tutorials/03-create-profile.md)
187
- {% endraw %}