@sebastienrousseau/dotfiles 0.2.499 → 0.2.500

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 (538) hide show
  1. package/CHANGELOG.md +375 -0
  2. package/LICENSE +1283 -0
  3. package/README.md +284 -0
  4. package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
  5. package/docs/AI.md +102 -0
  6. package/docs/COPYRIGHT +4 -3
  7. package/docs/NAMING_CONVENTIONS.md +95 -0
  8. package/docs/README.md +78 -0
  9. package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
  10. package/docs/adr/ADR-002-shell-performance.md +121 -0
  11. package/docs/adr/ADR-003-security-first.md +140 -0
  12. package/docs/adr/ADR-004-cli-architecture.md +157 -0
  13. package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
  14. package/docs/adr/ADR-006-shell-selection.md +115 -0
  15. package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
  16. package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
  17. package/docs/adr/README.md +32 -0
  18. package/docs/architecture/ARCHITECTURE.md +113 -0
  19. package/docs/architecture/INTEROP.md +36 -0
  20. package/docs/architecture/REPO_LAYOUT.md +237 -0
  21. package/docs/architecture/WALKTHROUGH.md +82 -0
  22. package/docs/architecture/fleet-deployment.md +73 -0
  23. package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
  24. package/docs/archive/LEGACY_ROADMAP.md +142 -0
  25. package/docs/archive/MILESTONE_v0.2.493.md +43 -0
  26. package/docs/{PLAN.md → archive/PLAN.md} +4 -4
  27. package/docs/archive/REPO_AUDIT.md +23 -0
  28. package/docs/guides/INSTALL.md +140 -0
  29. package/docs/guides/NEOVIM_IDE_GUIDE.md +52 -0
  30. package/docs/guides/THEMING.md +222 -0
  31. package/docs/guides/TROUBLESHOOTING.md +148 -0
  32. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +723 -0
  33. package/docs/index.md +39 -0
  34. package/docs/interop/A2A.md +32 -0
  35. package/docs/manual/00-introduction.md +85 -0
  36. package/docs/manual/01-concepts/01-architecture.md +134 -0
  37. package/docs/manual/01-concepts/02-trust-model.md +178 -0
  38. package/docs/manual/01-concepts/03-theme-engine.md +182 -0
  39. package/docs/manual/01-concepts/04-fleet.md +142 -0
  40. package/docs/manual/01-concepts/05-self-healing.md +197 -0
  41. package/docs/manual/02-tutorials/01-first-install.md +192 -0
  42. package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
  43. package/docs/manual/02-tutorials/03-create-profile.md +238 -0
  44. package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
  45. package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
  46. package/docs/manual/03-reference/01-dot-cli.md +413 -0
  47. package/docs/manual/03-reference/02-config-files.md +259 -0
  48. package/docs/manual/03-reference/03-environment.md +120 -0
  49. package/docs/manual/03-reference/04-templates.md +184 -0
  50. package/docs/manual/03-reference/05-feature-flags.md +118 -0
  51. package/docs/manual/04-cookbook/01-recipes.md +281 -0
  52. package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
  53. package/docs/manual/04-cookbook/03-faq.md +167 -0
  54. package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
  55. package/docs/manual/05-appendices/B-security-checklist.md +78 -0
  56. package/docs/manual/05-appendices/C-glossary.md +36 -0
  57. package/docs/manual/05-appendices/D-bibliography.md +54 -0
  58. package/docs/manual/05-appendices/E-license.md +34 -0
  59. package/docs/manual/_toc.yml +58 -0
  60. package/docs/manual/command-index.md +58 -0
  61. package/docs/manual/concept-index.md +164 -0
  62. package/docs/operations/ATTESTATION.md +39 -0
  63. package/docs/operations/MAINTENANCE.md +59 -0
  64. package/docs/operations/MIGRATION.md +101 -0
  65. package/docs/operations/OPERATIONS.md +164 -0
  66. package/docs/operations/RELIABILITY.md +116 -0
  67. package/docs/{ROADMAP.md → operations/ROADMAP.md} +22 -22
  68. package/docs/operations/TESTING.md +195 -0
  69. package/docs/operations/TRACEABILITY.md +31 -0
  70. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
  71. package/docs/operations/VERSION_SYNC.md +344 -0
  72. package/docs/reference/ALIASES.md +124 -0
  73. package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
  74. package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
  75. package/docs/reference/FEATURES.md +62 -0
  76. package/docs/reference/FONTS.md +108 -0
  77. package/docs/reference/PROFILES.md +65 -0
  78. package/docs/reference/SCREENSHOTS.md +117 -0
  79. package/docs/reference/SCRIPTS.md +67 -0
  80. package/docs/reference/SUPPORT_MATRIX.md +74 -0
  81. package/docs/reference/THEMES.md +113 -0
  82. package/docs/reference/TOOLS.md +105 -0
  83. package/docs/reference/UTILS.md +151 -0
  84. package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
  85. package/docs/security/AUTOMATION_SECRETS.md +22 -0
  86. package/docs/security/COMPLIANCE.md +453 -0
  87. package/docs/security/ENCRYPTION.md +52 -0
  88. package/docs/security/FMEA.md +155 -0
  89. package/docs/security/INCIDENT_RESPONSE.md +575 -0
  90. package/docs/security/KEYS.md +45 -0
  91. package/docs/security/KEY_ROTATION.md +219 -0
  92. package/docs/security/MCP_POLICY.md +69 -0
  93. package/docs/security/POLICY_RELEASES.md +33 -0
  94. package/docs/security/README.md +24 -0
  95. package/docs/security/SECRETS.md +146 -0
  96. package/docs/security/SECURITY.md +41 -0
  97. package/docs/security/SECURITY_CHECKLIST.md +44 -0
  98. package/docs/security/SOUP_REGISTER.md +32 -0
  99. package/docs/security/THREAT_MODEL.md +120 -0
  100. package/docs/security/VERIFICATION_VALIDATION.md +224 -0
  101. package/docs/themes/README.md +6 -0
  102. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
  103. package/docs/themes/hero-shot.svg +78 -0
  104. package/dot_config/.module-manifest.json +69 -0
  105. package/dot_config/ai/identity.md +20 -0
  106. package/dot_config/ai/patterns/architect.md +14 -0
  107. package/dot_config/ai/patterns/hardener.md +13 -0
  108. package/dot_config/ai/patterns/refactor.md +13 -0
  109. package/dot_config/aider/aider.conf.yml +32 -0
  110. package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
  111. package/dot_config/ansible/ansible.cfg +11 -0
  112. package/dot_config/atuin/config.toml +40 -0
  113. package/dot_config/bat/config +23 -0
  114. package/dot_config/brave-flags.conf.tmpl +7 -0
  115. package/dot_config/btop/btop.conf +16 -0
  116. package/dot_config/btop/themes/tokyonight.theme +34 -0
  117. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  118. package/dot_config/claude/mcp_servers.json +20 -0
  119. package/dot_config/containers/containers.conf +14 -0
  120. package/dot_config/curl/dot_curlrc +18 -0
  121. package/dot_config/dlv/config.yml +39 -0
  122. package/dot_config/docker/config.json +15 -0
  123. package/dot_config/dotfiles/agent-card.json +29 -0
  124. package/dot_config/dotfiles/agent-profiles.json +92 -0
  125. package/dot_config/dotfiles/boot/README.md +11 -0
  126. package/dot_config/dotfiles/grub/README.md +11 -0
  127. package/dot_config/dotfiles/lock/README.md +11 -0
  128. package/dot_config/dotfiles/mcp-lock.json +33 -0
  129. package/dot_config/dotfiles/mcp-policy.json +52 -0
  130. package/dot_config/dotfiles/mcp-registry.json +47 -0
  131. package/dot_config/dotfiles/model-registry.json +20 -0
  132. package/dot_config/dotfiles/policy-bundles.json +38 -0
  133. package/dot_config/dotfiles/prompt-registry.json +16 -0
  134. package/dot_config/dotfiles/versions.env +18 -0
  135. package/dot_config/duf/duf.conf +6 -0
  136. package/dot_config/duti/defaults.duti +5 -0
  137. package/dot_config/emoji/emoji.txt +34 -0
  138. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  139. package/dot_config/environment.d/90-wayland.conf +19 -0
  140. package/dot_config/fastfetch/config.jsonc +28 -0
  141. package/dot_config/firefox/user.js.tmpl +58 -0
  142. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  143. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  144. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  145. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  146. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  147. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  148. package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
  149. package/dot_config/fish/config.fish.tmpl +44 -0
  150. package/dot_config/fish/fish_plugins +1 -0
  151. package/dot_config/fish/functions/_.fish +3 -0
  152. package/dot_config/fish/functions/_cached_eval.fish +58 -0
  153. package/dot_config/fish/functions/als.fish +46 -0
  154. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  155. package/dot_config/fish/functions/c.fish +3 -0
  156. package/dot_config/fish/functions/cat.fish +9 -0
  157. package/dot_config/fish/functions/d.fish +7 -0
  158. package/dot_config/fish/functions/dot.fish +34 -0
  159. package/dot_config/fish/functions/h.fish +3 -0
  160. package/dot_config/fish/functions/l.fish +7 -0
  161. package/dot_config/fish/functions/la.fish +7 -0
  162. package/dot_config/fish/functions/ll.fish +7 -0
  163. package/dot_config/fish/functions/log_error.fish +13 -0
  164. package/dot_config/fish/functions/log_info.fish +13 -0
  165. package/dot_config/fish/functions/lr.fish +7 -0
  166. package/dot_config/fish/functions/lra.fish +7 -0
  167. package/dot_config/fish/functions/ls.fish +7 -0
  168. package/dot_config/fish/functions/lt.fish +7 -0
  169. package/dot_config/fish/functions/lta.fish +7 -0
  170. package/dot_config/fish/functions/notify-run.fish +11 -0
  171. package/dot_config/fish/functions/q.fish +3 -0
  172. package/dot_config/fish/functions/silent-run.fish +7 -0
  173. package/dot_config/fish/functions/yy.fish +8 -0
  174. package/dot_config/flatpak/flatpak.list +4 -0
  175. package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
  176. package/dot_config/foot/foot.ini.tmpl +33 -0
  177. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  178. package/dot_config/fzf/fzf.zsh +48 -0
  179. package/dot_config/gem/gemrc +9 -0
  180. package/dot_config/gh/config.yml +12 -0
  181. package/dot_config/ghostty/config.tmpl +165 -0
  182. package/dot_config/git/allowed_signers.tmpl +18 -0
  183. package/dot_config/git/attributes +12 -0
  184. package/dot_config/git/commit-template +10 -0
  185. package/dot_config/git/ignore +27 -0
  186. package/dot_config/gnupg/gpg-agent.conf +11 -0
  187. package/dot_config/go/golangci.yml +118 -0
  188. package/dot_config/go/gopls.json +30 -0
  189. package/dot_config/goose/config.yaml +29 -0
  190. package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
  191. package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
  192. package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
  193. package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
  194. package/dot_config/htop/htoprc +20 -0
  195. package/dot_config/inputrc +2 -0
  196. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  197. package/dot_config/just/justfile +122 -0
  198. package/dot_config/k9s/config.yaml +65 -0
  199. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  200. package/dot_config/kanshi/config.tmpl +22 -0
  201. package/dot_config/karabiner/karabiner.json +14 -0
  202. package/dot_config/kitty/kitty.conf.tmpl +53 -0
  203. package/dot_config/lazydocker/config.yml +186 -0
  204. package/dot_config/lazygit/config.yml +35 -0
  205. package/dot_config/mako/config +47 -0
  206. package/dot_config/mas/masapps.txt +5 -0
  207. package/dot_config/micro/settings.json +3 -0
  208. package/dot_config/mimeapps.list +77 -0
  209. package/dot_config/minikube/config.json +13 -0
  210. package/dot_config/mise/config.toml +99 -0
  211. package/dot_config/mongosh/mongoshrc.js +68 -0
  212. package/dot_config/mpv/input.conf +47 -0
  213. package/dot_config/mpv/mpv.conf +47 -0
  214. package/dot_config/mycli/myclirc +67 -0
  215. package/dot_config/nano/nanorc +28 -0
  216. package/dot_config/ncdu/config +12 -0
  217. package/dot_config/niri/config.kdl.tmpl +327 -0
  218. package/dot_config/nushell/aliases.nu +18 -0
  219. package/dot_config/nushell/completions.nu.tmpl +52 -0
  220. package/dot_config/nushell/config.nu.tmpl +86 -0
  221. package/dot_config/nushell/env.nu.tmpl +94 -0
  222. package/dot_config/nushell/functions.nu.tmpl +17 -0
  223. package/dot_config/nvim/init.lua +18 -0
  224. package/dot_config/nvim/lazy-lock.json +58 -0
  225. package/dot_config/nvim/lua/config/autocmds.lua +107 -0
  226. package/dot_config/nvim/lua/config/keymaps.lua +92 -0
  227. package/dot_config/nvim/lua/config/lazy.lua +44 -0
  228. package/dot_config/nvim/lua/config/options.lua +49 -0
  229. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  230. package/dot_config/nvim/lua/plugins/coding.lua +216 -0
  231. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  232. package/dot_config/nvim/lua/plugins/dap.lua +412 -0
  233. package/dot_config/nvim/lua/plugins/editor.lua +55 -0
  234. package/dot_config/nvim/lua/plugins/git.lua +10 -0
  235. package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
  236. package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
  237. package/dot_config/nvim/lua/plugins/rust.lua +34 -0
  238. package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
  239. package/dot_config/nvim/lua/plugins/ui.lua +509 -0
  240. package/dot_config/paru/paru.conf +10 -0
  241. package/dot_config/pip/pip.conf.tmpl +32 -0
  242. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  243. package/dot_config/pueue/pueue.yml +34 -0
  244. package/dot_config/pypoetry/config.toml +6 -0
  245. package/dot_config/pyrightconfig.json +5 -0
  246. package/dot_config/raycast/README.md +13 -0
  247. package/dot_config/redis/redisclirc +41 -0
  248. package/dot_config/ripgrep/ripgreprc +21 -0
  249. package/dot_config/shell/00-core-paths.sh.tmpl +133 -0
  250. package/dot_config/shell/05-core-safety.sh +47 -0
  251. package/dot_config/shell/10-secrets.sh +40 -0
  252. package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
  253. package/dot_config/shell/40-ls-colors.sh +48 -0
  254. package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
  255. package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
  256. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
  257. package/dot_config/shell/90-ux-aliases.sh.tmpl +120 -0
  258. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +54 -0
  259. package/dot_config/shell/Brewfile +207 -0
  260. package/dot_config/shell/Brewfile.cask +92 -0
  261. package/dot_config/shell/Brewfile.cli +127 -0
  262. package/dot_config/shell/README.md +267 -0
  263. package/dot_config/shell/als_data.txt.tmpl +65 -0
  264. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  265. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  266. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  267. package/dot_config/sops/dot_sops.yaml +23 -0
  268. package/dot_config/starship.toml.tmpl +202 -0
  269. package/dot_config/swaylock/config +43 -0
  270. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  271. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  272. package/dot_config/systemd/user/pueued.service +12 -0
  273. package/dot_config/systemd/user/ssh-agent.service +12 -0
  274. package/dot_config/task/Taskfile.yml +86 -0
  275. package/dot_config/tflint/tflint.hcl +9 -0
  276. package/dot_config/tmux/tmux.conf.tmpl +223 -0
  277. package/dot_config/topgrade.toml.tmpl +54 -0
  278. package/dot_config/user-dirs.dirs +9 -0
  279. package/dot_config/vscode/extensions.txt +11 -0
  280. package/dot_config/vscode/settings.json.tmpl +82 -0
  281. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  282. package/dot_config/waybar/style.css.tmpl +211 -0
  283. package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
  284. package/dot_config/wget/wgetrc +12 -0
  285. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  286. package/dot_config/yarn/yarnrc.yml +36 -0
  287. package/dot_config/yazi/keymap.toml +67 -0
  288. package/dot_config/yazi/theme.toml +102 -0
  289. package/dot_config/yazi/yazi.toml +40 -0
  290. package/dot_config/zathura/zathurarc +52 -0
  291. package/dot_config/zellij/config.kdl.tmpl +79 -0
  292. package/dot_config/zsh/dot_zprofile +7 -0
  293. package/dot_config/zsh/dot_zshenv +5 -0
  294. package/dot_config/zsh/dot_zshrc.tmpl +498 -0
  295. package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
  296. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
  297. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  298. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  299. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +194 -0
  300. package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
  301. package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
  302. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  303. package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
  304. package/dot_local/bin/executable_ai-update +195 -0
  305. package/dot_local/bin/executable_ai_core +152 -0
  306. package/dot_local/bin/executable_antigravity +11 -0
  307. package/dot_local/bin/executable_b64 +84 -0
  308. package/dot_local/bin/executable_bm +77 -0
  309. package/dot_local/bin/executable_cb +39 -0
  310. package/dot_local/bin/executable_dot +589 -0
  311. package/dot_local/bin/executable_dot-ai +36 -0
  312. package/dot_local/bin/executable_dot-bootstrap +77 -0
  313. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  314. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  315. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  316. package/dot_local/bin/executable_dot-theme-sync +952 -0
  317. package/dot_local/bin/executable_dot_completion +57 -0
  318. package/dot_local/bin/executable_dtags +28 -0
  319. package/dot_local/bin/executable_epoch +67 -0
  320. package/dot_local/bin/executable_extract +41 -0
  321. package/dot_local/bin/executable_gbd +52 -0
  322. package/dot_local/bin/executable_gd +42 -0
  323. package/dot_local/bin/executable_git-ai-commit +175 -0
  324. package/dot_local/bin/executable_git-ai-diff +169 -0
  325. package/dot_local/bin/executable_gl +101 -0
  326. package/dot_local/bin/executable_hash +161 -0
  327. package/dot_local/bin/executable_hashsum +160 -0
  328. package/dot_local/bin/executable_hex +115 -0
  329. package/dot_local/bin/executable_jsonv +78 -0
  330. package/dot_local/bin/executable_jwt +94 -0
  331. package/dot_local/bin/executable_kill-port +75 -0
  332. package/dot_local/bin/executable_lorem +118 -0
  333. package/dot_local/bin/executable_mkscript +35 -0
  334. package/dot_local/bin/executable_monitor +56 -0
  335. package/dot_local/bin/executable_myip +51 -0
  336. package/dot_local/bin/executable_notify +22 -0
  337. package/dot_local/bin/executable_open +36 -0
  338. package/dot_local/bin/executable_pw +27 -0
  339. package/dot_local/bin/executable_rec-start +46 -0
  340. package/dot_local/bin/executable_rec-stop +35 -0
  341. package/dot_local/bin/executable_regex +132 -0
  342. package/dot_local/bin/executable_start-niri +8 -0
  343. package/dot_local/bin/executable_tmux-sessionizer +314 -0
  344. package/dot_local/bin/executable_tour +175 -0
  345. package/dot_local/bin/executable_up +21 -0
  346. package/dot_local/bin/executable_update +142 -0
  347. package/dot_local/bin/executable_uuid +87 -0
  348. package/dot_local/bin/executable_win +32 -0
  349. package/dot_local/bin/executable_yamlv +57 -0
  350. package/dot_local/share/bash-completion/completions/dot +72 -0
  351. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  352. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  353. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  354. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  355. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  356. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  357. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  358. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  359. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  360. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  361. package/dot_local/share/man/man1/dot.1 +149 -0
  362. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  363. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  364. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  365. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  366. package/dot_local/share/zsh/completions/.keep +0 -0
  367. package/dot_local/share/zsh/completions/_dot +283 -0
  368. package/install.sh +342 -0
  369. package/package.json +1 -1
  370. package/scripts/ci/check-copyright-headers.sh +96 -0
  371. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  372. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  373. package/scripts/ci/validate-ci-config.sh +224 -0
  374. package/scripts/demo/record.sh +42 -0
  375. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  376. package/scripts/diagnostics/alias-governance.sh +137 -0
  377. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  378. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  379. package/scripts/diagnostics/benchmark.sh +381 -0
  380. package/scripts/diagnostics/conflicts.sh +72 -0
  381. package/scripts/diagnostics/doctor-unified.sh +38 -0
  382. package/scripts/diagnostics/doctor.sh +541 -0
  383. package/scripts/diagnostics/drift-dashboard.sh +37 -0
  384. package/scripts/diagnostics/health.sh +597 -0
  385. package/scripts/diagnostics/history-analysis.sh +85 -0
  386. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  387. package/scripts/diagnostics/perf.sh +225 -0
  388. package/scripts/diagnostics/scorecard.sh +118 -0
  389. package/scripts/diagnostics/secret-governance.sh +58 -0
  390. package/scripts/diagnostics/security-score.sh +438 -0
  391. package/scripts/diagnostics/smoke-test.sh +87 -0
  392. package/scripts/diagnostics/snapshot.sh +89 -0
  393. package/scripts/diagnostics/verify.sh +107 -0
  394. package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
  395. package/scripts/diagnostics/version-locks.sh +79 -0
  396. package/scripts/diagnostics/workstation-attestation.sh +181 -0
  397. package/scripts/docs/build-manual.sh +883 -0
  398. package/scripts/docs/check-manual.sh +213 -0
  399. package/scripts/dot/commands/agent.sh +465 -0
  400. package/scripts/dot/commands/ai.sh +416 -0
  401. package/scripts/dot/commands/aliases.sh +250 -0
  402. package/scripts/dot/commands/appearance.sh +80 -0
  403. package/scripts/dot/commands/core.sh +185 -0
  404. package/scripts/dot/commands/diagnostics.sh +229 -0
  405. package/scripts/dot/commands/fleet.sh +399 -0
  406. package/scripts/dot/commands/lint.sh +177 -0
  407. package/scripts/dot/commands/manual.sh +168 -0
  408. package/scripts/dot/commands/meta.sh +248 -0
  409. package/scripts/dot/commands/patterns.sh +54 -0
  410. package/scripts/dot/commands/restore.sh +231 -0
  411. package/scripts/dot/commands/secrets.sh +223 -0
  412. package/scripts/dot/commands/security.sh +76 -0
  413. package/scripts/dot/commands/tools.sh +469 -0
  414. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  415. package/scripts/dot/lib/bento.sh +49 -0
  416. package/scripts/dot/lib/log.sh +194 -0
  417. package/scripts/dot/lib/platform.sh +98 -0
  418. package/scripts/dot/lib/ui.sh +507 -0
  419. package/scripts/dot/lib/utils.sh +372 -0
  420. package/scripts/fonts/install-nerd-fonts.sh +68 -0
  421. package/scripts/fonts/patch-fonts.sh +35 -0
  422. package/scripts/git-hooks/install.sh +11 -0
  423. package/scripts/git-hooks/pre-commit +12 -0
  424. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  425. package/scripts/git-hooks/pre-push +29 -0
  426. package/scripts/git-hooks/prepare-commit-msg +29 -0
  427. package/scripts/lib/secrets_provider.sh +158 -0
  428. package/scripts/maintenance/check-updates.sh +131 -0
  429. package/scripts/ops/ai-setup.sh +55 -0
  430. package/scripts/ops/bundle.sh +77 -0
  431. package/scripts/ops/chaos.sh +49 -0
  432. package/scripts/ops/chezmoi-apply.sh +270 -0
  433. package/scripts/ops/chezmoi-diff.sh +15 -0
  434. package/scripts/ops/chezmoi-remove.sh +45 -0
  435. package/scripts/ops/chezmoi-update.sh +48 -0
  436. package/scripts/ops/heal-chezmoi.sh +51 -0
  437. package/scripts/ops/heal-system.sh +128 -0
  438. package/scripts/ops/heal-tools.sh +340 -0
  439. package/scripts/ops/heal.sh +222 -0
  440. package/scripts/ops/post-apply-repair.sh +106 -0
  441. package/scripts/ops/prewarm.sh +127 -0
  442. package/scripts/ops/release.sh +252 -0
  443. package/scripts/ops/rollback.sh +589 -0
  444. package/scripts/ops/setup.sh +137 -0
  445. package/scripts/ops/teleport.sh +33 -0
  446. package/scripts/qa/coverage-baseline.sh +60 -0
  447. package/scripts/qa/docs-coverage.sh +111 -0
  448. package/scripts/qa/reliability-audit.sh +138 -0
  449. package/scripts/qa/traceability-coverage.sh +116 -0
  450. package/scripts/qa/validate-examples.sh +26 -0
  451. package/scripts/qa/wsl-contract.sh +11 -0
  452. package/scripts/release/package-policy-bundles.sh +125 -0
  453. package/scripts/secrets/age-init.sh +70 -0
  454. package/scripts/secrets/create-secrets-file.sh +45 -0
  455. package/scripts/secrets/encrypt-ssh-key.sh +43 -0
  456. package/scripts/security/backup.sh +57 -0
  457. package/scripts/security/dns-doh.sh +51 -0
  458. package/scripts/security/encryption-check.sh +54 -0
  459. package/scripts/security/enforce-policies.sh +334 -0
  460. package/scripts/security/firewall.sh +90 -0
  461. package/scripts/security/lock-configs.sh +57 -0
  462. package/scripts/security/lock-screen.sh +55 -0
  463. package/scripts/security/manage-secrets.sh +428 -0
  464. package/scripts/security/ssh-cert.sh +203 -0
  465. package/scripts/security/telemetry-kill.sh +50 -0
  466. package/scripts/security/usb-safety.sh +51 -0
  467. package/scripts/theme/apply-gnome-theme.sh +328 -0
  468. package/scripts/theme/extract-theme.py +677 -0
  469. package/scripts/theme/install-boot-logo.sh +62 -0
  470. package/scripts/theme/install-catppuccin-themes.sh +370 -0
  471. package/scripts/theme/install-cursors.sh +25 -0
  472. package/scripts/theme/install-file-icons.sh +26 -0
  473. package/scripts/theme/install-grub-theme.sh +61 -0
  474. package/scripts/theme/install-lock-icon.sh +30 -0
  475. package/scripts/theme/merge-wallpaper.sh +141 -0
  476. package/scripts/theme/rebuild-themes.sh +309 -0
  477. package/scripts/theme/switch.sh +421 -0
  478. package/scripts/theme/wallpaper-rotate.sh +136 -0
  479. package/scripts/theme/wallpaper-sync.sh +397 -0
  480. package/scripts/tools/cmatrix.sh +21 -0
  481. package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
  482. package/scripts/tools/emoji-picker.sh +48 -0
  483. package/scripts/tools/figlet-banner.sh +18 -0
  484. package/scripts/tools/log-rotate.sh +30 -0
  485. package/scripts/tools/lolcat-wrap.sh +19 -0
  486. package/scripts/tools/pipes.sh +48 -0
  487. package/scripts/tuning/linux.sh +185 -0
  488. package/scripts/tuning/macos.sh +55 -0
  489. package/scripts/uninstall.sh +85 -0
  490. package/scripts/version-sync.sh +487 -0
  491. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  492. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  493. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  494. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  495. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  496. package/templates/projects/go/README.md +4 -0
  497. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  498. package/templates/projects/go/go.sum +0 -0
  499. package/templates/projects/molecule/README.md +7 -0
  500. package/templates/projects/molecule/converge.yml +7 -0
  501. package/templates/projects/molecule/molecule.yml +16 -0
  502. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  503. package/templates/projects/node/README.md +4 -0
  504. package/templates/projects/node/package-lock.json +12 -0
  505. package/templates/projects/node/src/index.js +1 -0
  506. package/templates/projects/packer/README.md +15 -0
  507. package/templates/projects/packer/main.pkr.hcl +15 -0
  508. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  509. package/templates/projects/python/README.md +4 -0
  510. package/templates/projects/python/pyproject.toml +15 -0
  511. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  512. package/templates/projects/python/tests/test_basic.py +1 -0
  513. package/docs/ARCHITECTURE.md +0 -62
  514. package/docs/COMPLIANCE.md +0 -47
  515. package/docs/OPERATIONS.md +0 -103
  516. package/docs/PR_DESCRIPTION.md +0 -150
  517. package/docs/ROADMAP_legacy.md +0 -556
  518. package/docs/SECURITY_CHECKLIST.md +0 -25
  519. package/docs/TASK.md +0 -99
  520. package/docs/WALKTHROUGH.md +0 -46
  521. package/scripts/backup.sh +0 -142
  522. package/scripts/banner.sh +0 -20
  523. package/scripts/benchmark.sh +0 -20
  524. package/scripts/build.sh +0 -41
  525. package/scripts/clean.sh +0 -31
  526. package/scripts/compile.sh +0 -54
  527. package/scripts/copy.sh +0 -108
  528. package/scripts/doctor.sh +0 -79
  529. package/scripts/dotfiles.sh +0 -63
  530. package/scripts/download.sh +0 -35
  531. package/scripts/help.sh +0 -57
  532. package/scripts/lock-configs.sh +0 -57
  533. package/scripts/package.sh +0 -46
  534. package/scripts/ssh.sh +0 -55
  535. package/scripts/teleport.sh +0 -23
  536. package/scripts/test-aliases.sh +0 -25
  537. package/scripts/test_smoke.sh +0 -88
  538. package/scripts/unpack.sh +0 -28
@@ -0,0 +1,259 @@
1
+ # Reference: Configuration Files
2
+
3
+ Every config file read or written by `.dotfiles`, with its schema and purpose.
4
+
5
+ ## Source Repository
6
+
7
+ | File | Purpose |
8
+ |:---|:---|
9
+ | `~/.dotfiles/.chezmoidata.toml` | Global defaults: theme, profile, version, features |
10
+ | `~/.dotfiles/.chezmoidata/hardware.toml` | Machine presets (MacBook T2, Surface Pro, etc.) |
11
+ | `~/.dotfiles/.chezmoidata/themes.toml` | **Generated** theme palettes — do not edit |
12
+ | `~/.dotfiles/.chezmoidata/keybinds.toml` | Modifier hierarchy matrix |
13
+ | `~/.dotfiles/mise.toml` | Pinned runtime versions for the dotfiles repo |
14
+ | `~/.dotfiles/.chezmoiignore` | Paths excluded from `chezmoi apply` |
15
+ | `~/.dotfiles/.chezmoitemplates/` | Reusable template partials |
16
+
17
+ ## User-Owned Configuration
18
+
19
+ | File | Purpose | Git-tracked? |
20
+ |:---|:---|:---:|
21
+ | `~/.config/chezmoi/chezmoi.toml` | Per-host overrides (machine, theme, shell) | No |
22
+ | `~/.config/age/keys.txt` | Age private key for decryption | No |
23
+ | `~/.config/mise/config.toml` | User runtime preferences (managed by this repo) | Via chezmoi |
24
+ | `~/.config/dotfiles/fleet.toml` | Fleet host list (optional) | No |
25
+ | `~/.ssh/allowed_signers` | SSH public keys trusted for commit verification | Via chezmoi (template) |
26
+
27
+ ## `.chezmoidata.toml` Schema
28
+
29
+ ```toml
30
+ # Version — bumped by version-sync.sh at release time
31
+ dotfiles_version = "0.2.500"
32
+
33
+ # Machine preset — override in ~/.config/chezmoi/chezmoi.toml per host
34
+ machine = ""
35
+
36
+ # Active theme — see `dot theme list`
37
+ theme = "tahoe-dark"
38
+
39
+ # Terminal defaults
40
+ terminal_font_family = "JetBrainsMono Nerd Font"
41
+ terminal_font_size = 12
42
+ default_shell = "fish" # fish | zsh | nu
43
+
44
+ # Git identity (prompt-provided via chezmoi init)
45
+ name = ""
46
+ email = ""
47
+
48
+ # Active profile
49
+ profile = "laptop" # desktop | laptop | server | codespace
50
+
51
+ # Feature flags (see 05-feature-flags.md)
52
+ [features]
53
+ dms = false
54
+ linux_desktop = false
55
+ niri = false
56
+ waybar = false
57
+
58
+ # Profiles (named collections of overrides)
59
+ [profiles.desktop]
60
+ # ...
61
+
62
+ [profiles.laptop]
63
+ # ...
64
+ ```
65
+
66
+ ## `.chezmoidata/hardware.toml` Schema
67
+
68
+ ```toml
69
+ [hardware.<preset-name>]
70
+ display_scale = 1.0 | 1.25 | 1.5 | 1.75 | 2.0
71
+ kbd_layout = "qwerty" | "colemak-dh" | "dvorak"
72
+ modifier_mode = "standard" | "left-cmd-control" | "fn-swap"
73
+ perf_profile = "desktop" | "laptop" | "low-power"
74
+ wm = "aerospace" | "niri" | "gnome" | "kde" | "none"
75
+
76
+ [hardware.<preset-name>.features]
77
+ # Per-preset feature overrides (merged on top of .chezmoidata.toml features)
78
+ <flag> = <bool>
79
+ ```
80
+
81
+ ## `.chezmoidata/themes.toml` Schema
82
+
83
+ **Generated by `dot theme rebuild` — do not edit manually.**
84
+
85
+ ```toml
86
+ [themes.<name>]
87
+ mode = "dark" | "light"
88
+ family = "<family-name>"
89
+ macos_accent = -1 .. 6 # -1=Graphite, 0=Red, 1=Orange, 2=Yellow, 3=Green, 4=Blue, 5=Purple, 6=Pink
90
+ wallpaper = "/absolute/path/to/wallpaper.heic"
91
+ source = "custom" | "system"
92
+
93
+ [themes.<name>.term]
94
+ bg, fg, cursor, cursor_text, sel_bg, sel_fg # hex RGB
95
+ c0 .. c15 # 16 ANSI colors
96
+
97
+ [themes.<name>.ui]
98
+ accent, accent_text # WCAG AAA enforced (7:1)
99
+ error, warning, success, info
100
+ panel # 1.03-2.0 contrast vs bg
101
+ border # 1.08-3.5 contrast vs bg
102
+
103
+ [themes.<name>.app]
104
+ nvim, nvim_style, lualine
105
+ gtk_theme, gtk_icon, gnome_shell, gnome_gtk
106
+ vscode, vscode_dark, vscode_light
107
+ cat_wallpaper
108
+ starship_palette
109
+ ```
110
+
111
+ See [Theme Engine concept](../01-concepts/03-theme-engine.md) for how values are derived.
112
+
113
+ ## `~/.config/chezmoi/chezmoi.toml` (Per-Host)
114
+
115
+ ```toml
116
+ sourceDir = "/Users/you/.dotfiles"
117
+
118
+ [data]
119
+ machine = "surface-pro" # selects preset from hardware.toml
120
+ theme = "dome-dark" # overrides .chezmoidata.toml default
121
+ default_shell = "fish"
122
+ terminal_font_size = 11
123
+ email = "you@example.com"
124
+ name = "Your Name"
125
+ ```
126
+
127
+ Fields here override same-named fields in `.chezmoidata.toml` at render time.
128
+
129
+ ## `~/.dotfiles/mise.toml` (Pinned Versions)
130
+
131
+ Strict versions for testing the repo itself (separate from the user's own mise config):
132
+
133
+ ```toml
134
+ [tools]
135
+ chezmoi = "2.47.1"
136
+ pandoc = "3.1.8"
137
+ shellcheck = "0.10.0"
138
+ shfmt = "3.8.0"
139
+ # ...
140
+
141
+ [env]
142
+ # Repo-level env vars
143
+ ```
144
+
145
+ ## `~/.config/mise/config.toml` (User)
146
+
147
+ Managed by this repo via chezmoi. Lists all CLI tools + language runtimes:
148
+
149
+ ```toml
150
+ [settings]
151
+ auto_install = true
152
+ activate_aggressive = true
153
+
154
+ [tools]
155
+ node = ["lts", "24", "25"]
156
+ python = ["3.12", "3.11"]
157
+ go = "latest"
158
+ rust = "latest"
159
+ # ... 60+ tools
160
+
161
+ [env]
162
+ MISE_EXPERIMENTAL = "1"
163
+ GITHUB_TOKEN = "{{exec(command='gh auth token')}}"
164
+ GOCACHE = "/tmp/builds/go-cache"
165
+ PIP_CACHE_DIR = "/tmp/builds/pip-cache"
166
+ UV_CACHE_DIR = "/tmp/builds/uv-cache"
167
+ ZIG_LOCAL_CACHE_DIR = "/tmp/builds/zig-cache"
168
+ ZIG_GLOBAL_CACHE_DIR = "/tmp/builds/zig-global-cache"
169
+ ```
170
+
171
+ ## `~/.cargo/config.toml` (Managed)
172
+
173
+ ```toml
174
+ [build]
175
+ jobs = -1
176
+ incremental = true
177
+ target-dir = "/tmp/builds/cargo"
178
+ ```
179
+
180
+ ## `~/.ssh/allowed_signers`
181
+
182
+ Template: `dot_ssh/allowed_signers.tmpl`
183
+
184
+ Lists SSH public keys authorized to sign commits in the repository:
185
+
186
+ ```
187
+ you@example.com ssh-ed25519 AAAAC3N...
188
+ teammate@example.com ssh-ed25519 AAAAC3N...
189
+ ```
190
+
191
+ ## `dot_config/dotfiles/mcp.json`
192
+
193
+ MCP policy and registry. See [MCP Policy reference](../../security/MCP_POLICY.md).
194
+
195
+ ```json
196
+ {
197
+ "policy_version": "2026-01",
198
+ "allowed_servers": ["fs", "shell", "github"],
199
+ "denied_tools": ["network.raw"],
200
+ "attestation_required": true,
201
+ "registry": {
202
+ "servers": [
203
+ {"name": "fs", "command": "...", "hash": "..."},
204
+ ...
205
+ ]
206
+ }
207
+ }
208
+ ```
209
+
210
+ ## `dot_config/dotfiles/agent-card.json`
211
+
212
+ Agent Card (MCP A2A spec):
213
+
214
+ ```json
215
+ {
216
+ "name": "dotfiles-agent",
217
+ "version": "0.2.500",
218
+ "capabilities": ["chezmoi.apply", "theme.switch", "secrets.decrypt"],
219
+ "policy_hash": "0x7f2a..."
220
+ }
221
+ ```
222
+
223
+ ## Log Files
224
+
225
+ | Path | Content | Rotation |
226
+ |:---|:---|:---|
227
+ | `~/.local/state/dotfiles/install.log` | Installer output | Never rotated |
228
+ | `~/.local/state/dotfiles/heal.log` | Heal attempts | Append-only |
229
+ | `~/.local/state/dotfiles/metrics.jsonl` | Observability events | Rotated at 10MB |
230
+ | `~/.local/state/dotfiles/mcp-violations.log` | MCP policy violations | Rotated at 10MB |
231
+ | `~/.local/state/dotfiles/attestation/*.json` | Attestation snapshots | 90-day retention |
232
+ | `~/.local/state/dotfiles/snapshots/*` | Rollback snapshots | 30-day retention |
233
+
234
+ ## Cache Files
235
+
236
+ | Path | Content | Invalidation |
237
+ |:---|:---|:---|
238
+ | `~/.cache/shell/*-init.sh` | Pre-generated shell init output | Binary mtime |
239
+ | `~/.cache/dotfiles/themes/*.toml` | Per-wallpaper theme cache | Wallpaper mtime |
240
+ | `~/.cache/dotfiles/manual/*` | Downloaded manual files | Version change |
241
+ | `~/.cache/gitstatus/*` | Starship gitstatus | Auto |
242
+
243
+ ## Verified Files
244
+
245
+ Every commit on `master` modifies tracked files only. Untracked files in the source directory (e.g. editor swap files) are ignored via `.chezmoiignore`:
246
+
247
+ ```
248
+ .DS_Store
249
+ .vscode/
250
+ *.swp
251
+ _build/
252
+ ```
253
+
254
+ ## See Also
255
+
256
+ - [Environment Reference](03-environment.md)
257
+ - [Template Variables](04-templates.md)
258
+ - [Feature Flags](05-feature-flags.md)
259
+ - [First Install Tutorial](../02-tutorials/01-first-install.md)
@@ -0,0 +1,120 @@
1
+ # Reference: Environment Variables
2
+
3
+ All environment variables that affect `.dotfiles` behaviour.
4
+
5
+ ## User-Settable
6
+
7
+ Variables you can set in your shell to change behaviour.
8
+
9
+ | Variable | Default | Effect |
10
+ |:---|:---|:---|
11
+ | `DOTFILES_VERBOSE` | unset | Verbose output from `dot` commands |
12
+ | `DOTFILES_NONINTERACTIVE` | unset | Skip interactive prompts (for CI) |
13
+ | `DOTFILES_SILENT` | unset | Suppress non-error output |
14
+ | `DOTFILES_DEBUG` | unset | Print shell-init timing to stderr |
15
+ | `DOTFILES_SOURCE_DIR` | `~/.dotfiles` | Override the source directory |
16
+ | `DOTFILES_WALLPAPER_DIR` | `~/Pictures/Wallpapers` | Custom wallpaper directory |
17
+ | `DOTFILES_CACHE_DIR` | `~/.cache/dotfiles` | Override cache location |
18
+ | `DOTFILES_STATE_DIR` | `~/.local/state/dotfiles` | Override state directory |
19
+ | `DOTFILES_TUNING` | `0` | Enable OS tuning (`dot tune`) |
20
+ | `EDITOR` | `nvim` | Editor used by `dot edit` and `sops` |
21
+ | `PAGER` | `less` | Pager used by `dot manual text` |
22
+
23
+ ## Auto-Populated
24
+
25
+ Variables the dotfiles set in your shell for tool consumption.
26
+
27
+ | Variable | Value | Source |
28
+ |:---|:---|:---|
29
+ | `XDG_CONFIG_HOME` | `~/.config` | `dot_zshenv` / `dot_config/fish/conf.d/env.fish.tmpl` |
30
+ | `XDG_CACHE_HOME` | `~/.cache` | ditto |
31
+ | `XDG_DATA_HOME` | `~/.local/share` | ditto |
32
+ | `XDG_STATE_HOME` | `~/.local/state` | ditto |
33
+ | `PATH` | managed order | `dot_config/shell/00-core-paths.sh.tmpl` |
34
+ | `BUN_INSTALL` | `~/.bun` | `env.fish.tmpl` |
35
+ | `PIPX_HOME` | `~/.local/share/pipx` | ditto |
36
+ | `PIPX_BIN_DIR` | `~/.local/bin` | ditto |
37
+ | `BUILDS_TMPDIR` | `/tmp/builds` | `dot_zshenv` (created on shell init) |
38
+ | `CARGO_TARGET_DIR` | (from `~/.cargo/config.toml`) | `target-dir = "/tmp/builds/cargo"` |
39
+ | `GOCACHE` | `/tmp/builds/go-cache` | `mise [env]` |
40
+ | `GOTMPDIR` | `/tmp/builds/go-tmp` | `mise [env]` |
41
+ | `PIP_CACHE_DIR` | `/tmp/builds/pip-cache` | `mise [env]` |
42
+ | `UV_CACHE_DIR` | `/tmp/builds/uv-cache` | `mise [env]` |
43
+ | `ZIG_LOCAL_CACHE_DIR` | `/tmp/builds/zig-cache` | `mise [env]` |
44
+ | `ZIG_GLOBAL_CACHE_DIR` | `/tmp/builds/zig-global-cache` | `mise [env]` |
45
+ | `HOMEBREW_PREFIX` | `/opt/homebrew` or `/usr/local` | `dot_zshenv` (macOS) |
46
+ | `MANPATH` | homebrew-adjusted | ditto |
47
+ | `MISE_EXPERIMENTAL` | `1` | `~/.config/mise/config.toml` |
48
+ | `GITHUB_TOKEN` | from `gh auth token` | `~/.config/mise/config.toml` |
49
+
50
+ ## Read by Tools
51
+
52
+ Variables set by upstream tools and respected by `.dotfiles`.
53
+
54
+ | Variable | Used for |
55
+ |:---|:---|
56
+ | `SHELL` | Detect default shell |
57
+ | `TERM` | Terminal capabilities (e.g. `xterm-256color`) |
58
+ | `COLORTERM` | True-color detection (`truecolor`) |
59
+ | `LANG` / `LC_ALL` | Locale (must be UTF-8) |
60
+ | `HOME` | User home directory |
61
+ | `USER` | Username |
62
+ | `SSH_AUTH_SOCK` | ssh-agent socket |
63
+ | `GPG_TTY` | GPG pinentry TTY |
64
+
65
+ ## CI-Specific
66
+
67
+ Variables relevant in GitHub Actions.
68
+
69
+ | Variable | Purpose |
70
+ |:---|:---|
71
+ | `CI` | Set to `true` in CI; disables prompts |
72
+ | `GITHUB_ACTIONS` | GHA-specific; enables step summary output |
73
+ | `CHEZMOI_VERSION` | Pinned chezmoi version for CI |
74
+ | `COVERAGE_THRESHOLD` | Test coverage threshold (100 in enforced CI) |
75
+ | `DOTFILES_TEST_MODE` | Skip network-dependent tests |
76
+
77
+ ## Secret-Related
78
+
79
+ | Variable | Purpose |
80
+ |:---|:---|
81
+ | `SOPS_AGE_KEY_FILE` | Override `~/.config/age/keys.txt` path |
82
+ | `SOPS_AGE_RECIPIENTS` | Override recipients for new encryption |
83
+ | `CHEZMOI_AGE_IDENTITY` | Override age identity for chezmoi decrypt |
84
+
85
+ > Warning: never set these to values stored in plaintext config. Use a password manager or ephemeral injection.
86
+
87
+ ## Startup Order
88
+
89
+ Shell-loaded variables follow this precedence (later wins):
90
+
91
+ 1. System defaults (`/etc/environment`, `/etc/profile`)
92
+ 2. Homebrew shellenv (macOS)
93
+ 3. `~/.zshenv` (earliest user-level file; sets XDG + PATH bootstrap)
94
+ 4. `~/.zprofile` or `~/.config/fish/conf.d/*.fish`
95
+ 5. `~/.zshrc` or `~/.config/fish/config.fish`
96
+ 6. `mise activate` — injects tool-specific env
97
+ 7. Per-project `.envrc` via direnv (opt-in)
98
+
99
+ To debug: `DOTFILES_DEBUG=1 zsh -i -c exit` prints timing for each stage.
100
+
101
+ ## Unsetting
102
+
103
+ To clean up environment pollution:
104
+
105
+ ```sh
106
+ # Show current dotfiles-set vars
107
+ env | grep -E '^(DOTFILES_|XDG_|BUILDS_)'
108
+
109
+ # Unset one
110
+ unset DOTFILES_DEBUG
111
+
112
+ # Reset to defaults (restart shell)
113
+ exec $SHELL -l
114
+ ```
115
+
116
+ ## See Also
117
+
118
+ - [Configuration Files](02-config-files.md)
119
+ - [Feature Flags](05-feature-flags.md)
120
+ - [First Install](../02-tutorials/01-first-install.md)
@@ -0,0 +1,184 @@
1
+ # Reference: Template Variables
2
+
3
+ Every variable available to chezmoi templates (`.tmpl` files).
4
+
5
+ ## From `.chezmoidata.toml`
6
+
7
+ Flat top-level keys:
8
+
9
+ | Variable | Type | Example |
10
+ |:---|:---|:---|
11
+ | `.dotfiles_version` | string | `"0.2.500"` |
12
+ | `.theme` | string | `"tahoe-dark"` |
13
+ | `.machine` | string | `"macbook-t2"` |
14
+ | `.profile` | string | `"laptop"` |
15
+ | `.default_shell` | string | `"fish"` |
16
+ | `.terminal_font_family` | string | `"JetBrainsMono Nerd Font"` |
17
+ | `.terminal_font_size` | int | `12` |
18
+ | `.name` | string | `"Your Name"` |
19
+ | `.email` | string | `"you@example.com"` |
20
+
21
+ ## From `.chezmoidata/themes.toml`
22
+
23
+ ```go
24
+ {{- $t := index .themes .theme }}
25
+ {{ $t.mode }} // "dark" or "light"
26
+ {{ $t.family }} // "tahoe"
27
+ {{ $t.macos_accent }} // 4 (integer)
28
+ {{ $t.term.bg }} // "#121430"
29
+ {{ $t.term.fg }} // "#d4d8ec"
30
+ {{ $t.term.c0 }} .. {{ $t.term.c15 }} // ANSI 0-15
31
+ {{ $t.ui.accent }} // "#3951b1"
32
+ {{ $t.ui.accent_text }} // "#ffffff"
33
+ {{ $t.ui.panel }}
34
+ {{ $t.ui.border }}
35
+ {{ $t.app.nvim }} // "catppuccin"
36
+ {{ $t.app.starship_palette }}
37
+ ```
38
+
39
+ ## From `.chezmoidata/hardware.toml`
40
+
41
+ ```go
42
+ {{- $hw := index .hardware .machine }}
43
+ {{ $hw.display_scale }} // 2.0
44
+ {{ $hw.kbd_layout }} // "qwerty"
45
+ {{ $hw.modifier_mode }} // "left-cmd-control"
46
+ {{ $hw.perf_profile }} // "laptop"
47
+ {{ $hw.wm }} // "aerospace"
48
+ {{ $hw.features.touchid }} // bool
49
+ ```
50
+
51
+ ## From Feature Flags
52
+
53
+ ```go
54
+ {{- $f := mergeOverwrite .features $hw.features }}
55
+ {{ if $f.dms }}
56
+ # Dank Material Shell-specific config
57
+ {{ end }}
58
+
59
+ {{ if $f.niri }}
60
+ # Niri WM config
61
+ {{ end }}
62
+ ```
63
+
64
+ ## Built-in Chezmoi Variables
65
+
66
+ ```go
67
+ {{ .chezmoi.os }} // "darwin" | "linux" | "windows"
68
+ {{ .chezmoi.arch }} // "amd64" | "arm64"
69
+ {{ .chezmoi.kernel }} // "Darwin" | "Linux"
70
+ {{ .chezmoi.kernel.ostype }} // "darwin24" etc
71
+ {{ .chezmoi.hostname }} // host machine hostname
72
+ {{ .chezmoi.username }} // current user
73
+ {{ .chezmoi.homeDir }} // $HOME
74
+ {{ .chezmoi.sourceDir }} // ~/.dotfiles
75
+ {{ .chezmoi.workingTree }} // git working tree root
76
+ {{ .chezmoi.executable }} // chezmoi binary path
77
+ {{ .chezmoi.osRelease }} // Linux /etc/os-release data
78
+ ```
79
+
80
+ ## Built-in Chezmoi Functions
81
+
82
+ ```go
83
+ {{ exec "command" | trim }}
84
+ {{ output "hostname" }}
85
+ {{ include "path/to/file" }}
86
+ {{ decrypt "path/to/file.age" }}
87
+ {{ sopsDecrypt "path/to/file.sops.yaml" | fromYaml }}
88
+ {{ joinPath "a" "b" }}
89
+ {{ stat "/path" }}
90
+ {{ ioreg ".." ".." }} // macOS only
91
+ {{ lookPath "command" }} // returns path or empty
92
+ ```
93
+
94
+ ## Helper Templates (in `.chezmoitemplates/`)
95
+
96
+ Reusable partials included via:
97
+
98
+ ```go
99
+ {{ template "paths/00-default.paths.sh" . }}
100
+ {{ template "aliases/cd.aliases.sh" . }}
101
+ {{ template "functions/cdls.sh" . }}
102
+ ```
103
+
104
+ Available partials:
105
+
106
+ - `paths/00-default.paths.sh` — canonical PATH construction
107
+ - `paths/05-pipx.paths.sh` — pipx + ~/.local/bin
108
+ - `paths/99-custom.paths.sh` — user-appended paths
109
+ - `aliases/*.aliases.sh` — per-domain alias sets
110
+ - `functions/*.sh` — reusable shell functions
111
+
112
+ ## Example: Using Theme in Ghostty Config
113
+
114
+ ```go
115
+ {{- /* dot_config/ghostty/config.tmpl */ -}}
116
+ {{- $t := index .themes .theme -}}
117
+
118
+ font-family = "{{ .terminal_font_family }}"
119
+ font-size = {{ .terminal_font_size }}
120
+
121
+ background = {{ $t.term.bg }}
122
+ foreground = {{ $t.term.fg }}
123
+ cursor-color = {{ $t.term.cursor }}
124
+
125
+ palette = 0={{ $t.term.c0 }}
126
+ palette = 1={{ $t.term.c1 }}
127
+ palette = 2={{ $t.term.c2 }}
128
+ # ... through 15
129
+
130
+ {{- if eq .chezmoi.os "darwin" }}
131
+ macos-titlebar-style = transparent
132
+ {{- end }}
133
+ ```
134
+
135
+ ## Example: Platform × Preset
136
+
137
+ ```go
138
+ {{- $hw := index .hardware .machine -}}
139
+
140
+ {{- if and (eq .chezmoi.os "darwin") (eq $hw.wm "aerospace") }}
141
+ # macOS AeroSpace config
142
+ include = ["aerospace-macos.toml"]
143
+ {{- else if and (eq .chezmoi.os "linux") (eq $hw.wm "niri") }}
144
+ # Linux Niri config
145
+ include = ["niri.kdl"]
146
+ {{- end }}
147
+
148
+ # DPI-aware sizing
149
+ font-size = {{ mul 8 $hw.display_scale | int }}
150
+ ```
151
+
152
+ ## Template Testing
153
+
154
+ Render a template without applying:
155
+
156
+ ```sh
157
+ chezmoi execute-template < dot_config/ghostty/config.tmpl
158
+ ```
159
+
160
+ Or test an expression:
161
+
162
+ ```sh
163
+ chezmoi execute-template '{{ .chezmoi.os }}'
164
+ # darwin
165
+
166
+ chezmoi execute-template '{{- $t := index .themes .theme -}}{{ $t.term.bg }}'
167
+ # #121430
168
+ ```
169
+
170
+ ## Validation in CI
171
+
172
+ Every push to master runs:
173
+
174
+ ```sh
175
+ chezmoi apply --dry-run
176
+ ```
177
+
178
+ If any template fails to render, the build breaks before merge.
179
+
180
+ ## See Also
181
+
182
+ - [Chezmoi template reference](https://www.chezmoi.io/reference/templates/)
183
+ - [Configuration Files](02-config-files.md)
184
+ - [Create a Profile tutorial](../02-tutorials/03-create-profile.md)
@@ -0,0 +1,118 @@
1
+ # Reference: Feature Flags
2
+
3
+ Feature flags toggle optional subsystems. Set in `.chezmoidata.toml`, override per-preset in `.chezmoidata/hardware.toml`.
4
+
5
+ ## Global Flags (`.chezmoidata.toml`)
6
+
7
+ ```toml
8
+ [features]
9
+ dms = false # Dank Material Shell (Niri desktop)
10
+ linux_desktop = false # Linux-specific desktop configs
11
+ niri = false # Niri window manager
12
+ waybar = false # Waybar status bar
13
+ ```
14
+
15
+ ## Per-Preset Overrides (`.chezmoidata/hardware.toml`)
16
+
17
+ ```toml
18
+ [hardware.surface-pro.features]
19
+ niri = true
20
+ waybar = true
21
+ dms = true # overrides .chezmoidata.toml default
22
+ ```
23
+
24
+ The effective value is `mergeOverwrite` of global + preset features.
25
+
26
+ ## Flag Catalogue
27
+
28
+ ### `dms` — Dank Material Shell
29
+
30
+ When `true`:
31
+ - Configures DMS IPC for theme sync
32
+ - Enables Quickshell templates
33
+ - Sets up per-monitor wallpaper via `dms ipc wallpaper`
34
+
35
+ Requires: Niri + Quickshell + DMS installed.
36
+
37
+ ### `linux_desktop` — Linux Desktop Configs
38
+
39
+ When `true`:
40
+ - Enables GTK 3/4 theme generation from `themes.toml`
41
+ - Configures `gsettings color-scheme` behaviour
42
+ - Generates desktop file entries for installed tools
43
+
44
+ No effect on macOS.
45
+
46
+ ### `niri` — Niri Window Manager
47
+
48
+ When `true`:
49
+ - Generates `~/.config/niri/config.kdl`
50
+ - Enables Niri keybindings from `keybinds.toml`
51
+ - Configures workspace rules per preset
52
+
53
+ Requires: Niri installed.
54
+
55
+ ### `waybar` — Waybar Status Bar
56
+
57
+ When `true`:
58
+ - Generates `~/.config/waybar/config.jsonc` + `style.css`
59
+ - Hooks into theme switching via `dot-theme-sync`
60
+
61
+ Requires: Waybar installed.
62
+
63
+ ## Using a Flag in a Template
64
+
65
+ ```go
66
+ {{- $hw := index .hardware .machine }}
67
+ {{- $f := mergeOverwrite .features $hw.features }}
68
+
69
+ {{ if $f.niri }}
70
+ # Niri-specific config
71
+ {{ end }}
72
+ ```
73
+
74
+ ## Checking Active Flags
75
+
76
+ ```sh
77
+ chezmoi execute-template '{{- $hw := index .hardware .machine -}}{{- $f := mergeOverwrite .features $hw.features -}}{{ $f | toToml }}'
78
+ ```
79
+
80
+ ## Adding a New Flag
81
+
82
+ 1. Add to `.chezmoidata.toml`:
83
+
84
+ ```toml
85
+ [features]
86
+ my_new_flag = false
87
+ ```
88
+
89
+ 2. (Optional) Set per preset:
90
+
91
+ ```toml
92
+ [hardware.macbook-t2.features]
93
+ my_new_flag = true
94
+ ```
95
+
96
+ 3. Use in templates:
97
+
98
+ ```go
99
+ {{ if $f.my_new_flag }}
100
+ # conditional config
101
+ {{ end }}
102
+ ```
103
+
104
+ 4. Document here with the flag's purpose and requirements
105
+
106
+ ## Flag Deprecation
107
+
108
+ Flags can be deprecated without breaking existing hosts. The deprecation process:
109
+
110
+ 1. Mark the flag as deprecated in this document
111
+ 2. Leave the flag evaluation in place for one release
112
+ 3. In the subsequent release, remove the template branches and the flag definition
113
+ 4. Users who had the flag set will see it ignored — no errors
114
+
115
+ ## See Also
116
+
117
+ - [Configuration Files](02-config-files.md)
118
+ - [Create a Profile](../02-tutorials/03-create-profile.md)