@sebastienrousseau/dotfiles 0.2.499 → 0.2.501

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 (567) hide show
  1. package/CHANGELOG.md +452 -0
  2. package/LICENSE +1283 -0
  3. package/README.md +322 -0
  4. package/docs/.vitepress/reports/localization-readability-audit.md +73 -0
  5. package/docs/AI.md +108 -0
  6. package/docs/CNAME +1 -0
  7. package/docs/COPYRIGHT +4 -3
  8. package/docs/NAMING_CONVENTIONS.md +102 -0
  9. package/docs/README.md +82 -0
  10. package/docs/_config.yml +59 -0
  11. package/docs/adr/ADR-001-ci-cd-pipeline.md +118 -0
  12. package/docs/adr/ADR-002-shell-performance.md +130 -0
  13. package/docs/adr/ADR-003-security-first.md +158 -0
  14. package/docs/adr/ADR-004-cli-architecture.md +171 -0
  15. package/docs/adr/ADR-005-chezmoi-choice.md +99 -0
  16. package/docs/adr/ADR-006-shell-selection.md +124 -0
  17. package/docs/adr/ADR-007-multi-shell-parity.md +62 -0
  18. package/docs/adr/ADR-008-alias-system-architecture.md +95 -0
  19. package/docs/adr/ADR-009-wallpaper-driven-theming.md +131 -0
  20. package/docs/adr/ADR-010-starship-transient-prompt.md +144 -0
  21. package/docs/adr/ADR-011-nushell-tier3-keep.md +144 -0
  22. package/docs/adr/README.md +39 -0
  23. package/docs/architecture/ARCHITECTURE.md +117 -0
  24. package/docs/architecture/INTEROP.md +44 -0
  25. package/docs/architecture/REPO_LAYOUT.md +241 -0
  26. package/docs/architecture/WALKTHROUGH.md +86 -0
  27. package/docs/architecture/fleet-deployment.md +77 -0
  28. package/docs/archive/EUXIS_2026_REVIEW.md +127 -0
  29. package/docs/archive/LEGACY_ROADMAP.md +160 -0
  30. package/docs/archive/MILESTONE_v0.2.493.md +47 -0
  31. package/docs/{PLAN.md → archive/PLAN.md} +50 -12
  32. package/docs/archive/REPO_AUDIT.md +31 -0
  33. package/docs/guides/INSTALL.md +144 -0
  34. package/docs/guides/NEOVIM_IDE_GUIDE.md +61 -0
  35. package/docs/guides/THEMING.md +230 -0
  36. package/docs/guides/TROUBLESHOOTING.md +176 -0
  37. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +792 -0
  38. package/docs/index.md +43 -0
  39. package/docs/interop/A2A.md +39 -0
  40. package/docs/interop/POWERSHELL.md +102 -0
  41. package/docs/manual/00-introduction.md +89 -0
  42. package/docs/manual/01-concepts/01-architecture.md +138 -0
  43. package/docs/manual/01-concepts/02-trust-model.md +182 -0
  44. package/docs/manual/01-concepts/03-theme-engine.md +186 -0
  45. package/docs/manual/01-concepts/04-fleet.md +148 -0
  46. package/docs/manual/01-concepts/05-self-healing.md +204 -0
  47. package/docs/manual/02-tutorials/01-first-install.md +197 -0
  48. package/docs/manual/02-tutorials/02-add-wallpaper.md +216 -0
  49. package/docs/manual/02-tutorials/03-create-profile.md +244 -0
  50. package/docs/manual/02-tutorials/04-encrypt-secret.md +281 -0
  51. package/docs/manual/02-tutorials/05-deploy-fleet.md +283 -0
  52. package/docs/manual/03-reference/01-dot-cli.md +417 -0
  53. package/docs/manual/03-reference/02-config-files.md +265 -0
  54. package/docs/manual/03-reference/03-environment.md +124 -0
  55. package/docs/manual/03-reference/04-templates.md +190 -0
  56. package/docs/manual/03-reference/05-feature-flags.md +128 -0
  57. package/docs/manual/04-cookbook/01-recipes.md +285 -0
  58. package/docs/manual/04-cookbook/02-troubleshooting.md +351 -0
  59. package/docs/manual/04-cookbook/03-faq.md +175 -0
  60. package/docs/manual/05-appendices/A-platform-matrix.md +101 -0
  61. package/docs/manual/05-appendices/B-security-checklist.md +84 -0
  62. package/docs/manual/05-appendices/C-glossary.md +40 -0
  63. package/docs/manual/05-appendices/D-bibliography.md +58 -0
  64. package/docs/manual/05-appendices/E-license.md +38 -0
  65. package/docs/manual/_toc.yml +58 -0
  66. package/docs/manual/command-index.md +62 -0
  67. package/docs/manual/concept-index.md +168 -0
  68. package/docs/operations/ATTESTATION.md +44 -0
  69. package/docs/operations/CI_CADENCE.md +107 -0
  70. package/docs/operations/CI_COMPOSITES.md +156 -0
  71. package/docs/operations/COMPLETIONS.md +123 -0
  72. package/docs/operations/COVERAGE.md +148 -0
  73. package/docs/operations/DRIFT.md +107 -0
  74. package/docs/operations/MAINTENANCE.md +63 -0
  75. package/docs/operations/MIGRATION.md +109 -0
  76. package/docs/operations/OPERATIONS.md +188 -0
  77. package/docs/operations/PERFORMANCE.md +133 -0
  78. package/docs/operations/RELIABILITY.md +122 -0
  79. package/docs/{ROADMAP.md → operations/ROADMAP.md} +57 -39
  80. package/docs/operations/TESTING.md +199 -0
  81. package/docs/operations/TRACEABILITY.md +35 -0
  82. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +65 -0
  83. package/docs/operations/VERSION_SYNC.md +393 -0
  84. package/docs/reference/ALIASES.md +131 -0
  85. package/docs/reference/ALIASES_CHEATSHEET.md +32 -0
  86. package/docs/reference/ALIASES_DEPRECATIONS.md +13 -0
  87. package/docs/reference/FEATURES.md +66 -0
  88. package/docs/reference/FONTS.md +112 -0
  89. package/docs/reference/PROFILES.md +69 -0
  90. package/docs/reference/SCREENSHOTS.md +121 -0
  91. package/docs/reference/SCRIPTS.md +71 -0
  92. package/docs/reference/SUPPORT_MATRIX.md +80 -0
  93. package/docs/reference/THEMES.md +117 -0
  94. package/docs/reference/TOOLS.md +109 -0
  95. package/docs/reference/UTILS.md +155 -0
  96. package/docs/security/AI_ACT_COMPLIANCE.md +94 -0
  97. package/docs/security/AUDIT_BYPASS.md +103 -0
  98. package/docs/security/AUTOMATION_SECRETS.md +26 -0
  99. package/docs/security/CI_EGRESS_ALLOWLIST.md +127 -0
  100. package/docs/security/COMPLIANCE.md +458 -0
  101. package/docs/security/DEPS_DEV_EXCEPTIONS.md +86 -0
  102. package/docs/security/ENCRYPTION.md +57 -0
  103. package/docs/security/FMEA.md +159 -0
  104. package/docs/security/HISTORY_FILTERING.md +132 -0
  105. package/docs/security/INCIDENT_RESPONSE.md +579 -0
  106. package/docs/security/INSTALL_VERIFICATION.md +122 -0
  107. package/docs/security/KEYS.md +49 -0
  108. package/docs/security/KEY_ROTATION.md +223 -0
  109. package/docs/security/MCP_POLICY.md +78 -0
  110. package/docs/security/POLICY_RELEASES.md +37 -0
  111. package/docs/security/README.md +28 -0
  112. package/docs/security/SCORECARD.md +80 -0
  113. package/docs/security/SECRETS.md +158 -0
  114. package/docs/security/SECURITY.md +45 -0
  115. package/docs/security/SECURITY_CHECKLIST.md +55 -0
  116. package/docs/security/SHELL_EXEMPTIONS.md +145 -0
  117. package/docs/security/SOUP_REGISTER.md +36 -0
  118. package/docs/security/THREAT_MODEL.md +130 -0
  119. package/docs/security/VERIFICATION_VALIDATION.md +228 -0
  120. package/docs/themes/README.md +10 -0
  121. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +30 -0
  122. package/docs/themes/hero-shot.svg +78 -0
  123. package/dot_config/.module-manifest.json +69 -0
  124. package/dot_config/ai/identity.md +23 -0
  125. package/dot_config/ai/patterns/architect.md +16 -0
  126. package/dot_config/ai/patterns/hardener.md +15 -0
  127. package/dot_config/ai/patterns/refactor.md +15 -0
  128. package/dot_config/aider/aider.conf.yml +32 -0
  129. package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
  130. package/dot_config/ansible/ansible.cfg +11 -0
  131. package/dot_config/atuin/config.toml.tmpl +47 -0
  132. package/dot_config/bat/config +23 -0
  133. package/dot_config/brave-flags.conf.tmpl +7 -0
  134. package/dot_config/btop/btop.conf +16 -0
  135. package/dot_config/btop/themes/tokyonight.theme +34 -0
  136. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  137. package/dot_config/claude/mcp_servers.json +20 -0
  138. package/dot_config/containers/containers.conf +14 -0
  139. package/dot_config/curl/dot_curlrc +18 -0
  140. package/dot_config/dlv/config.yml +39 -0
  141. package/dot_config/docker/config.json +15 -0
  142. package/dot_config/dotfiles/agent-card.json +29 -0
  143. package/dot_config/dotfiles/agent-profiles.json +92 -0
  144. package/dot_config/dotfiles/boot/README.md +13 -0
  145. package/dot_config/dotfiles/grub/README.md +13 -0
  146. package/dot_config/dotfiles/lock/README.md +13 -0
  147. package/dot_config/dotfiles/mcp-lock.json +33 -0
  148. package/dot_config/dotfiles/mcp-policy.json +52 -0
  149. package/dot_config/dotfiles/mcp-registry.json +47 -0
  150. package/dot_config/dotfiles/model-registry.json +20 -0
  151. package/dot_config/dotfiles/policy-bundles.json +38 -0
  152. package/dot_config/dotfiles/prompt-registry.json +16 -0
  153. package/dot_config/dotfiles/versions.env +18 -0
  154. package/dot_config/duf/duf.conf +6 -0
  155. package/dot_config/duti/defaults.duti +5 -0
  156. package/dot_config/emoji/emoji.txt +34 -0
  157. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  158. package/dot_config/environment.d/90-wayland.conf +19 -0
  159. package/dot_config/fastfetch/config.jsonc +28 -0
  160. package/dot_config/firefox/user.js.tmpl +58 -0
  161. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  162. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  163. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  164. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  165. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  166. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  167. package/dot_config/fish/conf.d/init.fish.tmpl +172 -0
  168. package/dot_config/fish/config.fish.tmpl +44 -0
  169. package/dot_config/fish/fish_plugins +1 -0
  170. package/dot_config/fish/functions/_.fish +3 -0
  171. package/dot_config/fish/functions/_cached_eval.fish +131 -0
  172. package/dot_config/fish/functions/_cached_eval_clear.fish +17 -0
  173. package/dot_config/fish/functions/als.fish +46 -0
  174. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  175. package/dot_config/fish/functions/c.fish +3 -0
  176. package/dot_config/fish/functions/cat.fish +9 -0
  177. package/dot_config/fish/functions/d.fish +7 -0
  178. package/dot_config/fish/functions/dot.fish +34 -0
  179. package/dot_config/fish/functions/h.fish +3 -0
  180. package/dot_config/fish/functions/l.fish +7 -0
  181. package/dot_config/fish/functions/la.fish +7 -0
  182. package/dot_config/fish/functions/ll.fish +7 -0
  183. package/dot_config/fish/functions/log_error.fish +13 -0
  184. package/dot_config/fish/functions/log_info.fish +13 -0
  185. package/dot_config/fish/functions/lr.fish +7 -0
  186. package/dot_config/fish/functions/lra.fish +7 -0
  187. package/dot_config/fish/functions/ls.fish +7 -0
  188. package/dot_config/fish/functions/lt.fish +7 -0
  189. package/dot_config/fish/functions/lta.fish +7 -0
  190. package/dot_config/fish/functions/notify-run.fish +11 -0
  191. package/dot_config/fish/functions/q.fish +3 -0
  192. package/dot_config/fish/functions/silent-run.fish +7 -0
  193. package/dot_config/fish/functions/yy.fish +8 -0
  194. package/dot_config/flatpak/flatpak.list +4 -0
  195. package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
  196. package/dot_config/foot/foot.ini.tmpl +33 -0
  197. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  198. package/dot_config/fzf/fzf.zsh +48 -0
  199. package/dot_config/gem/gemrc +9 -0
  200. package/dot_config/gh/config.yml +12 -0
  201. package/dot_config/ghostty/config.tmpl +165 -0
  202. package/dot_config/git/allowed_signers.tmpl +18 -0
  203. package/dot_config/git/attributes +12 -0
  204. package/dot_config/git/commit-template +10 -0
  205. package/dot_config/git/hooks/executable_commit-msg +146 -0
  206. package/dot_config/git/ignore +27 -0
  207. package/dot_config/gnupg/gpg-agent.conf +11 -0
  208. package/dot_config/go/golangci.yml +118 -0
  209. package/dot_config/go/gopls.json +30 -0
  210. package/dot_config/goose/config.yaml +29 -0
  211. package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
  212. package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
  213. package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
  214. package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
  215. package/dot_config/htop/htoprc +20 -0
  216. package/dot_config/inputrc +2 -0
  217. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  218. package/dot_config/just/justfile +122 -0
  219. package/dot_config/k9s/config.yaml +65 -0
  220. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  221. package/dot_config/kanshi/config.tmpl +22 -0
  222. package/dot_config/karabiner/karabiner.json +14 -0
  223. package/dot_config/kitty/kitty.conf.tmpl +53 -0
  224. package/dot_config/lazydocker/config.yml +186 -0
  225. package/dot_config/lazygit/config.yml +35 -0
  226. package/dot_config/mako/config +47 -0
  227. package/dot_config/mas/masapps.txt +5 -0
  228. package/dot_config/micro/settings.json +3 -0
  229. package/dot_config/mimeapps.list +77 -0
  230. package/dot_config/minikube/config.json +13 -0
  231. package/dot_config/mise/config.toml +99 -0
  232. package/dot_config/mongosh/mongoshrc.js +68 -0
  233. package/dot_config/mpv/input.conf +47 -0
  234. package/dot_config/mpv/mpv.conf +47 -0
  235. package/dot_config/mycli/myclirc +67 -0
  236. package/dot_config/nano/nanorc +28 -0
  237. package/dot_config/ncdu/config +12 -0
  238. package/dot_config/niri/config.kdl.tmpl +327 -0
  239. package/dot_config/nushell/aliases.nu +18 -0
  240. package/dot_config/nushell/cached_eval.nu +80 -0
  241. package/dot_config/nushell/completions.nu.tmpl +52 -0
  242. package/dot_config/nushell/config.nu.tmpl +86 -0
  243. package/dot_config/nushell/env.nu.tmpl +102 -0
  244. package/dot_config/nushell/functions.nu.tmpl +17 -0
  245. package/dot_config/nvim/init.lua +18 -0
  246. package/dot_config/nvim/lazy-lock.json +58 -0
  247. package/dot_config/nvim/lua/config/autocmds.lua +107 -0
  248. package/dot_config/nvim/lua/config/keymaps.lua +92 -0
  249. package/dot_config/nvim/lua/config/lazy.lua +44 -0
  250. package/dot_config/nvim/lua/config/options.lua +49 -0
  251. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  252. package/dot_config/nvim/lua/plugins/coding.lua +216 -0
  253. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  254. package/dot_config/nvim/lua/plugins/dap.lua +412 -0
  255. package/dot_config/nvim/lua/plugins/editor.lua +55 -0
  256. package/dot_config/nvim/lua/plugins/git.lua +10 -0
  257. package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
  258. package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
  259. package/dot_config/nvim/lua/plugins/rust.lua +34 -0
  260. package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
  261. package/dot_config/nvim/lua/plugins/ui.lua +509 -0
  262. package/dot_config/paru/paru.conf +10 -0
  263. package/dot_config/pip/pip.conf.tmpl +32 -0
  264. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  265. package/dot_config/pueue/pueue.yml +34 -0
  266. package/dot_config/pypoetry/config.toml +6 -0
  267. package/dot_config/pyrightconfig.json +5 -0
  268. package/dot_config/raycast/README.md +13 -0
  269. package/dot_config/redis/redisclirc +41 -0
  270. package/dot_config/ripgrep/ripgreprc +21 -0
  271. package/dot_config/shell/00-core-paths.sh.tmpl +134 -0
  272. package/dot_config/shell/05-core-safety.sh +48 -0
  273. package/dot_config/shell/10-secrets.sh +41 -0
  274. package/dot_config/shell/40-fzf-defaults.sh.tmpl +17 -0
  275. package/dot_config/shell/40-ls-colors.sh +49 -0
  276. package/dot_config/shell/50-logic-functions-core.sh.tmpl +11 -0
  277. package/dot_config/shell/50-logic-functions.sh.tmpl +11 -0
  278. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +65 -0
  279. package/dot_config/shell/90-ux-aliases.sh.tmpl +121 -0
  280. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +55 -0
  281. package/dot_config/shell/Brewfile +207 -0
  282. package/dot_config/shell/Brewfile.cask +92 -0
  283. package/dot_config/shell/Brewfile.cli +127 -0
  284. package/dot_config/shell/README.md +284 -0
  285. package/dot_config/shell/als_data.txt.tmpl +65 -0
  286. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  287. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  288. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  289. package/dot_config/sops/dot_sops.yaml +23 -0
  290. package/dot_config/starship.toml.tmpl +202 -0
  291. package/dot_config/swaylock/config +43 -0
  292. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  293. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  294. package/dot_config/systemd/user/pueued.service +12 -0
  295. package/dot_config/systemd/user/ssh-agent.service +12 -0
  296. package/dot_config/task/Taskfile.yml +86 -0
  297. package/dot_config/tflint/tflint.hcl +9 -0
  298. package/dot_config/tmux/tmux.conf.tmpl +223 -0
  299. package/dot_config/topgrade.toml.tmpl +54 -0
  300. package/dot_config/user-dirs.dirs +10 -0
  301. package/dot_config/vscode/extensions.txt +11 -0
  302. package/dot_config/vscode/settings.json.tmpl +82 -0
  303. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  304. package/dot_config/waybar/style.css.tmpl +211 -0
  305. package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
  306. package/dot_config/wget/wgetrc +12 -0
  307. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  308. package/dot_config/yarn/yarnrc.yml +36 -0
  309. package/dot_config/yazi/keymap.toml +67 -0
  310. package/dot_config/yazi/theme.toml +102 -0
  311. package/dot_config/yazi/yazi.toml +40 -0
  312. package/dot_config/zathura/zathurarc +52 -0
  313. package/dot_config/zellij/config.kdl.tmpl +79 -0
  314. package/dot_config/zsh/dot_zprofile +7 -0
  315. package/dot_config/zsh/dot_zshenv +5 -0
  316. package/dot_config/zsh/dot_zshrc.tmpl +635 -0
  317. package/dot_config/zsh/rc.d/00-alias-shims.zsh +99 -0
  318. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
  319. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  320. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  321. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +214 -0
  322. package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
  323. package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
  324. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  325. package/dot_local/bin/executable_ai-update +195 -0
  326. package/dot_local/bin/executable_ai_core +152 -0
  327. package/dot_local/bin/executable_antigravity +11 -0
  328. package/dot_local/bin/executable_b64 +84 -0
  329. package/dot_local/bin/executable_bm +79 -0
  330. package/dot_local/bin/executable_cb +39 -0
  331. package/dot_local/bin/executable_dot +596 -0
  332. package/dot_local/bin/executable_dot-ai +36 -0
  333. package/dot_local/bin/executable_dot-bootstrap +77 -0
  334. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  335. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  336. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  337. package/dot_local/bin/executable_dot-theme-sync +952 -0
  338. package/dot_local/bin/executable_dot_completion +57 -0
  339. package/dot_local/bin/executable_dtags +28 -0
  340. package/dot_local/bin/executable_epoch +67 -0
  341. package/dot_local/bin/executable_extract +41 -0
  342. package/dot_local/bin/executable_gbd +52 -0
  343. package/dot_local/bin/executable_gd +42 -0
  344. package/dot_local/bin/executable_git-ai-commit +175 -0
  345. package/dot_local/bin/executable_git-ai-diff +169 -0
  346. package/dot_local/bin/executable_gl +101 -0
  347. package/dot_local/bin/executable_hash +161 -0
  348. package/dot_local/bin/executable_hashsum +160 -0
  349. package/dot_local/bin/executable_hex +115 -0
  350. package/dot_local/bin/executable_jsonv +78 -0
  351. package/dot_local/bin/executable_jwt +94 -0
  352. package/dot_local/bin/executable_kill-port +75 -0
  353. package/dot_local/bin/executable_lorem +118 -0
  354. package/dot_local/bin/executable_mkscript +35 -0
  355. package/dot_local/bin/executable_monitor +56 -0
  356. package/dot_local/bin/executable_myip +51 -0
  357. package/dot_local/bin/executable_notify +24 -0
  358. package/dot_local/bin/executable_open +38 -0
  359. package/dot_local/bin/executable_pw +27 -0
  360. package/dot_local/bin/executable_rec-start +46 -0
  361. package/dot_local/bin/executable_rec-stop +35 -0
  362. package/dot_local/bin/executable_regex +132 -0
  363. package/dot_local/bin/executable_start-niri +8 -0
  364. package/dot_local/bin/executable_tmux-sessionizer +314 -0
  365. package/dot_local/bin/executable_tour +177 -0
  366. package/dot_local/bin/executable_up +23 -0
  367. package/dot_local/bin/executable_update +142 -0
  368. package/dot_local/bin/executable_uuid +87 -0
  369. package/dot_local/bin/executable_win +32 -0
  370. package/dot_local/bin/executable_yamlv +57 -0
  371. package/dot_local/share/bash-completion/completions/dot +72 -0
  372. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  373. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  374. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  375. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  376. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  377. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  378. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  379. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  380. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  381. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  382. package/dot_local/share/man/man1/dot.1 +149 -0
  383. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  384. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  385. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  386. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  387. package/dot_local/share/zsh/completions/.keep +0 -0
  388. package/dot_local/share/zsh/completions/_dot +283 -0
  389. package/install.sh +350 -0
  390. package/package.json +1 -1
  391. package/scripts/ci/check-copyright-headers.sh +96 -0
  392. package/scripts/ci/check-dangerous-chmod.sh +19 -0
  393. package/scripts/ci/check-deps-dev.sh +236 -0
  394. package/scripts/ci/check-insecure-tls.sh +61 -0
  395. package/scripts/ci/check-regression-traceability.sh +67 -0
  396. package/scripts/ci/check-shell-preamble.sh +106 -0
  397. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  398. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  399. package/scripts/ci/run-coverage.sh +362 -0
  400. package/scripts/ci/validate-chezmoidata.sh +25 -0
  401. package/scripts/ci/validate-ci-config.sh +224 -0
  402. package/scripts/demo/record.sh +42 -0
  403. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  404. package/scripts/diagnostics/alias-governance.sh +137 -0
  405. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  406. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  407. package/scripts/diagnostics/benchmark.sh +381 -0
  408. package/scripts/diagnostics/conflicts.sh +72 -0
  409. package/scripts/diagnostics/doctor-unified.sh +38 -0
  410. package/scripts/diagnostics/doctor.sh +709 -0
  411. package/scripts/diagnostics/drift-dashboard.sh +201 -0
  412. package/scripts/diagnostics/health.sh +614 -0
  413. package/scripts/diagnostics/history-analysis.sh +85 -0
  414. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  415. package/scripts/diagnostics/perf.sh +452 -0
  416. package/scripts/diagnostics/scorecard.sh +118 -0
  417. package/scripts/diagnostics/secret-governance.sh +58 -0
  418. package/scripts/diagnostics/security-score.sh +438 -0
  419. package/scripts/diagnostics/smoke-test.sh +87 -0
  420. package/scripts/diagnostics/snapshot.sh +89 -0
  421. package/scripts/diagnostics/verify.sh +107 -0
  422. package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
  423. package/scripts/diagnostics/version-locks.sh +79 -0
  424. package/scripts/diagnostics/workstation-attestation.sh +186 -0
  425. package/scripts/docs/build-manual.sh +883 -0
  426. package/scripts/docs/check-manual.sh +213 -0
  427. package/scripts/dot/commands/agent.sh +474 -0
  428. package/scripts/dot/commands/ai.sh +481 -0
  429. package/scripts/dot/commands/aliases.sh +250 -0
  430. package/scripts/dot/commands/appearance.sh +80 -0
  431. package/scripts/dot/commands/core.sh +185 -0
  432. package/scripts/dot/commands/diagnostics.sh +229 -0
  433. package/scripts/dot/commands/fleet.sh +399 -0
  434. package/scripts/dot/commands/lint.sh +177 -0
  435. package/scripts/dot/commands/manual.sh +168 -0
  436. package/scripts/dot/commands/meta.sh +248 -0
  437. package/scripts/dot/commands/patterns.sh +54 -0
  438. package/scripts/dot/commands/restore.sh +231 -0
  439. package/scripts/dot/commands/secrets.sh +223 -0
  440. package/scripts/dot/commands/security.sh +76 -0
  441. package/scripts/dot/commands/tools.sh +469 -0
  442. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  443. package/scripts/dot/lib/bento.sh +50 -0
  444. package/scripts/dot/lib/log.sh +200 -0
  445. package/scripts/dot/lib/platform.sh +99 -0
  446. package/scripts/dot/lib/ui.sh +518 -0
  447. package/scripts/dot/lib/utils.sh +377 -0
  448. package/scripts/fonts/install-nerd-fonts.sh +68 -0
  449. package/scripts/fonts/patch-fonts.sh +35 -0
  450. package/scripts/git-hooks/install.sh +11 -0
  451. package/scripts/git-hooks/pre-commit +12 -0
  452. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  453. package/scripts/git-hooks/pre-push +92 -0
  454. package/scripts/git-hooks/prepare-commit-msg +29 -0
  455. package/scripts/lib/secrets_provider.sh +158 -0
  456. package/scripts/maintenance/check-updates.sh +131 -0
  457. package/scripts/ops/ai-setup.sh +55 -0
  458. package/scripts/ops/bundle.sh +77 -0
  459. package/scripts/ops/chaos.sh +49 -0
  460. package/scripts/ops/chezmoi-apply.sh +270 -0
  461. package/scripts/ops/chezmoi-diff.sh +15 -0
  462. package/scripts/ops/chezmoi-remove.sh +45 -0
  463. package/scripts/ops/chezmoi-update.sh +48 -0
  464. package/scripts/ops/heal-chezmoi.sh +86 -0
  465. package/scripts/ops/heal-system.sh +128 -0
  466. package/scripts/ops/heal-tools.sh +340 -0
  467. package/scripts/ops/heal.sh +222 -0
  468. package/scripts/ops/post-apply-repair.sh +106 -0
  469. package/scripts/ops/prewarm.sh +127 -0
  470. package/scripts/ops/release.sh +252 -0
  471. package/scripts/ops/rollback.sh +589 -0
  472. package/scripts/ops/setup.sh +137 -0
  473. package/scripts/ops/teleport.sh +33 -0
  474. package/scripts/qa/coverage-baseline.sh +60 -0
  475. package/scripts/qa/docs-coverage.sh +111 -0
  476. package/scripts/qa/powershell-contract.ps1 +95 -0
  477. package/scripts/qa/reliability-audit.sh +138 -0
  478. package/scripts/qa/traceability-coverage.sh +116 -0
  479. package/scripts/qa/validate-examples.sh +26 -0
  480. package/scripts/qa/wsl-contract.sh +11 -0
  481. package/scripts/release/package-policy-bundles.sh +125 -0
  482. package/scripts/secrets/age-init.sh +70 -0
  483. package/scripts/secrets/create-secrets-file.sh +45 -0
  484. package/scripts/secrets/encrypt-ssh-key.sh +43 -0
  485. package/scripts/security/backup.sh +57 -0
  486. package/scripts/security/dns-doh.sh +51 -0
  487. package/scripts/security/encryption-check.sh +54 -0
  488. package/scripts/security/enforce-policies.sh +334 -0
  489. package/scripts/security/firewall.sh +90 -0
  490. package/scripts/security/lock-configs.sh +57 -0
  491. package/scripts/security/lock-screen.sh +55 -0
  492. package/scripts/security/manage-secrets.sh +428 -0
  493. package/scripts/security/ssh-cert.sh +203 -0
  494. package/scripts/security/telemetry-kill.sh +50 -0
  495. package/scripts/security/usb-safety.sh +51 -0
  496. package/scripts/theme/apply-gnome-theme.sh +328 -0
  497. package/scripts/theme/extract-theme.py +677 -0
  498. package/scripts/theme/install-boot-logo.sh +62 -0
  499. package/scripts/theme/install-catppuccin-themes.sh +370 -0
  500. package/scripts/theme/install-cursors.sh +25 -0
  501. package/scripts/theme/install-file-icons.sh +26 -0
  502. package/scripts/theme/install-grub-theme.sh +61 -0
  503. package/scripts/theme/install-lock-icon.sh +30 -0
  504. package/scripts/theme/merge-wallpaper.sh +145 -0
  505. package/scripts/theme/rebuild-themes.sh +309 -0
  506. package/scripts/theme/switch.sh +431 -0
  507. package/scripts/theme/wallpaper-rotate.sh +136 -0
  508. package/scripts/theme/wallpaper-sync.sh +397 -0
  509. package/scripts/tools/cmatrix.sh +21 -0
  510. package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
  511. package/scripts/tools/emoji-picker.sh +48 -0
  512. package/scripts/tools/figlet-banner.sh +18 -0
  513. package/scripts/tools/log-rotate.sh +30 -0
  514. package/scripts/tools/lolcat-wrap.sh +19 -0
  515. package/scripts/tools/pipes.sh +48 -0
  516. package/scripts/tuning/linux.sh +185 -0
  517. package/scripts/tuning/macos.sh +55 -0
  518. package/scripts/uninstall.sh +85 -0
  519. package/scripts/version-sync.sh +487 -0
  520. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  521. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  522. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  523. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  524. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  525. package/templates/projects/go/README.md +4 -0
  526. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  527. package/templates/projects/go/go.sum +0 -0
  528. package/templates/projects/molecule/README.md +7 -0
  529. package/templates/projects/molecule/converge.yml +7 -0
  530. package/templates/projects/molecule/molecule.yml +16 -0
  531. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  532. package/templates/projects/node/README.md +4 -0
  533. package/templates/projects/node/package-lock.json +12 -0
  534. package/templates/projects/node/src/index.js +1 -0
  535. package/templates/projects/packer/README.md +15 -0
  536. package/templates/projects/packer/main.pkr.hcl +15 -0
  537. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  538. package/templates/projects/python/README.md +4 -0
  539. package/templates/projects/python/pyproject.toml +15 -0
  540. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  541. package/templates/projects/python/tests/test_basic.py +1 -0
  542. package/docs/ARCHITECTURE.md +0 -62
  543. package/docs/COMPLIANCE.md +0 -47
  544. package/docs/OPERATIONS.md +0 -103
  545. package/docs/PR_DESCRIPTION.md +0 -150
  546. package/docs/ROADMAP_legacy.md +0 -556
  547. package/docs/SECURITY_CHECKLIST.md +0 -25
  548. package/docs/TASK.md +0 -99
  549. package/docs/WALKTHROUGH.md +0 -46
  550. package/scripts/backup.sh +0 -142
  551. package/scripts/banner.sh +0 -20
  552. package/scripts/benchmark.sh +0 -20
  553. package/scripts/build.sh +0 -41
  554. package/scripts/clean.sh +0 -31
  555. package/scripts/compile.sh +0 -54
  556. package/scripts/copy.sh +0 -108
  557. package/scripts/doctor.sh +0 -79
  558. package/scripts/dotfiles.sh +0 -63
  559. package/scripts/download.sh +0 -35
  560. package/scripts/help.sh +0 -57
  561. package/scripts/lock-configs.sh +0 -57
  562. package/scripts/package.sh +0 -46
  563. package/scripts/ssh.sh +0 -55
  564. package/scripts/teleport.sh +0 -23
  565. package/scripts/test-aliases.sh +0 -25
  566. package/scripts/test_smoke.sh +0 -88
  567. package/scripts/unpack.sh +0 -28
@@ -0,0 +1,124 @@
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` | Test coverage threshold (100 in enforced CI) |
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)
@@ -0,0 +1,190 @@
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 master 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 %}
@@ -0,0 +1,128 @@
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
+ dms = false # Dank Material Shell (Niri desktop)
15
+ linux_desktop = false # Linux-specific desktop configs
16
+ niri = false # Niri window manager
17
+ waybar = false # Waybar status bar
18
+ ```
19
+
20
+ ## Per-Preset Overrides (`.chezmoidata/hardware.toml`)
21
+
22
+ ```toml
23
+ [hardware.surface-pro.features]
24
+ niri = true
25
+ waybar = true
26
+ dms = true # overrides .chezmoidata.toml default
27
+ ```
28
+
29
+ The effective value is `mergeOverwrite` of global + preset features.
30
+
31
+ ## Flag Catalogue
32
+
33
+ ### `dms` — Dank Material Shell
34
+
35
+ When `true`:
36
+
37
+ - Configures DMS IPC for theme sync
38
+ - Enables Quickshell templates
39
+ - Sets up per-monitor wallpaper via `dms ipc wallpaper`
40
+
41
+ Requires: Niri + Quickshell + DMS installed.
42
+
43
+ ### `linux_desktop` — Linux Desktop Configs
44
+
45
+ When `true`:
46
+
47
+ - Enables GTK 3/4 theme generation from `themes.toml`
48
+ - Configures `gsettings color-scheme` behaviour
49
+ - Generates desktop file entries for installed tools
50
+
51
+ No effect on macOS.
52
+
53
+ ### `niri` — Niri Window Manager
54
+
55
+ When `true`:
56
+
57
+ - Generates `~/.config/niri/config.kdl`
58
+ - Enables Niri keybindings from `keybinds.toml`
59
+ - Configures workspace rules per preset
60
+
61
+ Requires: Niri installed.
62
+
63
+ ### `waybar` — Waybar Status Bar
64
+
65
+ When `true`:
66
+
67
+ - Generates `~/.config/waybar/config.jsonc` + `style.css`
68
+ - Hooks into theme switching via `dot-theme-sync`
69
+
70
+ Requires: Waybar installed.
71
+
72
+ ## Using a Flag in a Template
73
+
74
+ ```go
75
+ {{- $hw := index .hardware .machine }}
76
+ {{- $f := mergeOverwrite .features $hw.features }}
77
+
78
+ {{ if $f.niri }}
79
+ # Niri-specific config
80
+ {{ end }}
81
+ ```
82
+
83
+ ## Checking Active Flags
84
+
85
+ ```sh
86
+ chezmoi execute-template '{{- $hw := index .hardware .machine -}}{{- $f := mergeOverwrite .features $hw.features -}}{{ $f | toToml }}'
87
+ ```
88
+
89
+ ## Adding a New Flag
90
+
91
+ 1. Add to `.chezmoidata.toml`:
92
+
93
+ ```toml
94
+ [features]
95
+ my_new_flag = false
96
+ ```
97
+
98
+ 2. (Optional) Set per preset:
99
+
100
+ ```toml
101
+ [hardware.macbook-t2.features]
102
+ my_new_flag = true
103
+ ```
104
+
105
+ 3. Use in templates:
106
+
107
+ ```go
108
+ {{ if $f.my_new_flag }}
109
+ # conditional config
110
+ {{ end }}
111
+ ```
112
+
113
+ 4. Document here with the flag's purpose and requirements
114
+
115
+ ## Flag Deprecation
116
+
117
+ Flags can be deprecated without breaking existing hosts. The deprecation process:
118
+
119
+ 1. Mark the flag as deprecated in this document
120
+ 2. Leave the flag evaluation in place for one release
121
+ 3. In the subsequent release, remove the template branches and the flag definition
122
+ 4. Users who had the flag set will see it ignored — no errors
123
+
124
+ ## See Also
125
+
126
+ - [Configuration Files](02-config-files.md)
127
+ - [Create a Profile](../02-tutorials/03-create-profile.md)
128
+ {% endraw %}
@@ -0,0 +1,285 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
5
+ # Cookbook: Recipes
6
+
7
+ Thirty short recipes for common tasks.
8
+
9
+ ## Installation & Update
10
+
11
+ ### 1. Install on a fresh machine
12
+
13
+ ```sh
14
+ bash -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh)"
15
+ ```
16
+
17
+ ### 2. Update everything
18
+
19
+ ```sh
20
+ dot upgrade
21
+ ```
22
+
23
+ ### 3. Update dotfiles only (no tools)
24
+
25
+ ```sh
26
+ dot update
27
+ ```
28
+
29
+ ### 4. Preview what would change
30
+
31
+ ```sh
32
+ dot apply --dry-run
33
+ ```
34
+
35
+ ## Themes
36
+
37
+ ### 5. Switch to a specific theme
38
+
39
+ ```sh
40
+ dot theme tahoe-dark
41
+ ```
42
+
43
+ ### 6. Toggle between dark and light
44
+
45
+ ```sh
46
+ dot theme toggle
47
+ ```
48
+
49
+ ### 7. Open the interactive theme picker
50
+
51
+ ```sh
52
+ dot theme
53
+ ```
54
+
55
+ ### 8. List paired wallpaper themes
56
+
57
+ ```sh
58
+ dot theme list
59
+ ```
60
+
61
+ ### 9. Add a new wallpaper-driven theme
62
+
63
+ ```sh
64
+ cp my-wallpaper.jpg ~/Pictures/Wallpapers/myname-dark.jpg
65
+ cp my-wallpaper-light.jpg ~/Pictures/Wallpapers/myname-light.jpg
66
+ bash scripts/theme/merge-wallpaper.sh myname
67
+ dot theme rebuild
68
+ dot theme myname-dark
69
+ ```
70
+
71
+ ### 10. Regenerate all themes from scratch
72
+
73
+ ```sh
74
+ dot theme rebuild --force
75
+ ```
76
+
77
+ ## Configuration
78
+
79
+ ### 11. Edit the source directory
80
+
81
+ ```sh
82
+ dot edit
83
+ ```
84
+
85
+ ### 12. Add a new config file to chezmoi
86
+
87
+ ```sh
88
+ dot add ~/.some-config-file
89
+ ```
90
+
91
+ ### 13. Remove a managed file
92
+
93
+ ```sh
94
+ dot remove ~/.some-config-file
95
+ ```
96
+
97
+ ### 14. Show configuration drift
98
+
99
+ ```sh
100
+ dot status
101
+ ```
102
+
103
+ ### 15. Show diff against source
104
+
105
+ ```sh
106
+ dot diff
107
+ ```
108
+
109
+ ## Secrets
110
+
111
+ ### 16. Encrypt a new secret file
112
+
113
+ ```sh
114
+ chezmoi add --encrypt ~/some-secret.txt
115
+ ```
116
+
117
+ ### 17. Edit an encrypted file
118
+
119
+ ```sh
120
+ sops dot_config/credentials.sops.yaml
121
+ # or
122
+ chezmoi edit ~/some-secret.txt.age
123
+ ```
124
+
125
+ ### 18. Rotate your Age key
126
+
127
+ ```sh
128
+ age-keygen -o ~/.config/age/keys.txt.new
129
+ # Update .sops.yaml with new public key
130
+ # Then:
131
+ find . -name '*.sops.yaml' -exec sops updatekeys {} \;
132
+ git commit -sS -am "chore(secrets): rotate age key"
133
+ ```
134
+
135
+ ### 19. Check for accidental secret leaks
136
+
137
+ ```sh
138
+ dot verify --security
139
+ ```
140
+
141
+ ## Diagnostics
142
+
143
+ ### 20. Quick health check
144
+
145
+ ```sh
146
+ dot doctor
147
+ ```
148
+
149
+ ### 21. Auto-fix common issues
150
+
151
+ ```sh
152
+ dot heal
153
+ ```
154
+
155
+ ### 22. Check startup performance
156
+
157
+ ```sh
158
+ dot benchmark
159
+ ```
160
+
161
+ ### 23. See the health score
162
+
163
+ ```sh
164
+ dot score
165
+ ```
166
+
167
+ ### 24. Recent metrics
168
+
169
+ ```sh
170
+ dot metrics
171
+ ```
172
+
173
+ ## Fleet
174
+
175
+ ### 25. Attest across all fleet hosts
176
+
177
+ ```sh
178
+ dot fleet attest
179
+ ```
180
+
181
+ ### 26. Sync dotfiles to every fleet host
182
+
183
+ ```sh
184
+ dot fleet sync
185
+ ```
186
+
187
+ ### 27. Diff config across hosts
188
+
189
+ ```sh
190
+ dot fleet diff
191
+ ```
192
+
193
+ ## AI & Agents
194
+
195
+ ### 28. Show installed AI tools
196
+
197
+ ```sh
198
+ dot ai
199
+ ```
200
+
201
+ ### 29. Switch agent profile
202
+
203
+ ```sh
204
+ dot mode architect # or hardener, refactor
205
+ ```
206
+
207
+ ### 30. Verify MCP policy
208
+
209
+ ```sh
210
+ dot mcp --strict
211
+ ```
212
+
213
+ ## Recovery
214
+
215
+ ### 31. Rollback the last apply
216
+
217
+ ```sh
218
+ dot rollback
219
+ ```
220
+
221
+ ### 32. Create an offline bundle
222
+
223
+ ```sh
224
+ dot bundle
225
+ ```
226
+
227
+ ### 33. Restore from a bundle
228
+
229
+ ```sh
230
+ dot bundle restore ~/Downloads/dotfiles-bundle-*.tar.zst
231
+ ```
232
+
233
+ ## Development
234
+
235
+ ### 34. Run a test locally
236
+
237
+ ```sh
238
+ bash tests/unit/theme/test_themes_toml.sh
239
+ ```
240
+
241
+ ### 35. Run all tests
242
+
243
+ ```sh
244
+ ./tests/framework/test_runner.sh
245
+ ```
246
+
247
+ ### 36. Lint shell scripts
248
+
249
+ ```sh
250
+ dot lint
251
+ ```
252
+
253
+ ### 37. Simulate chaos to test self-healing
254
+
255
+ ```sh
256
+ dot chaos symlink # in an ephemeral container only
257
+ dot heal
258
+ dot doctor
259
+ ```
260
+
261
+ ## Manual
262
+
263
+ ### 38. Open the manual in a browser
264
+
265
+ ```sh
266
+ dot manual
267
+ ```
268
+
269
+ ### 39. Download the PDF
270
+
271
+ ```sh
272
+ dot manual pdf
273
+ ```
274
+
275
+ ### 40. Read the manual in a terminal
276
+
277
+ ```sh
278
+ dot manual text | less
279
+ ```
280
+
281
+ ## See Also
282
+
283
+ - [Troubleshooting](02-troubleshooting.md)
284
+ - [FAQ](03-faq.md)
285
+ - [CLI Reference](../03-reference/01-dot-cli.md)