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