@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
package/docs/AI.md ADDED
@@ -0,0 +1,102 @@
1
+ # AI Integrations (Opt-in)
2
+
3
+ AI helpers are **off by default**. You choose if and when to turn them on.
4
+
5
+ ## Enable AI helpers
6
+
7
+ ```bash
8
+ export DOTFILES_AI=1
9
+ exec zsh
10
+ ```
11
+
12
+ This turns on the local helper scripts for context suggestions and error analysis. It does not install any AI tools.
13
+
14
+ ## Steering Patterns
15
+
16
+ Patterns in `~/.dotfiles/dot_config/ai/patterns/` add focused context to AI requests.
17
+
18
+ - **Architect** — shell setup and stack tuning
19
+ - **Hardener** — security, encryption, and compliance
20
+ - **Refactor** — POSIX compatibility, performance, and linting
21
+
22
+ ### Contextual Bridge
23
+
24
+ Use the `dot` CLI to run AI tools with added context:
25
+
26
+ ```bash
27
+ # General usage
28
+ dot cl|copilot|gemini|kiro|sgpt|ollama|opencode|aider|autohand|vibe|qwen|zai --pattern <name> "prompt"
29
+
30
+ # Quick aliases
31
+ dcla "Optimize my zshrc" # Claude + Architect
32
+ dgmnh "Audit my ssh config" # Gemini + Hardener
33
+ dkir "Refactor this script" # Kiro + Refactorer
34
+ ```
35
+
36
+ The bridge adds system details (OS, architecture, date) to the prompt. This gives the AI the context it needs for accurate answers.
37
+
38
+ Supported bridge commands:
39
+
40
+ | Command | Provider |
41
+ |---------|----------|
42
+ | `dot cl` | Claude Code |
43
+ | `dot copilot` | GitHub Copilot CLI |
44
+ | `dot gemini` | Gemini CLI |
45
+ | `dot kiro` | Kiro CLI |
46
+ | `dot sgpt` | Shell-GPT |
47
+ | `dot ollama` | Ollama |
48
+ | `dot opencode` | OpenCode |
49
+ | `dot aider` | Aider |
50
+ | `dot autohand` | Autohand Code |
51
+ | `dot vibe` | Mistral Vibe |
52
+ | `dot qwen` | Qwen Code |
53
+ | `dot zai` | ZAI (Zhipu AI) |
54
+
55
+ ### `dot ai` status and launcher
56
+
57
+ `dot ai` shows which AI CLIs are installed, grouped by category. If `gum` is available, it also opens a quick launcher.
58
+
59
+ Current categories:
60
+
61
+ - Agents (autonomous)
62
+ - Coding (interactive)
63
+ - General (prompt-based)
64
+ - Runtime (local)
65
+ - Cloud (platform)
66
+
67
+ The launcher is simple and fast. It shows short role labels like `agent`, `coding`, `general`, `local`, and `cloud` so you can pick quickly.
68
+
69
+ To stay fast, `dot ai` caches provider info in `~/.cache/dotfiles/ai/status.tsv` for 5 minutes. You can change this with `DOTFILES_AI_STATUS_TTL`.
70
+
71
+ Related AI commands:
72
+
73
+ - `dot ai` — check status and launch tools
74
+ - `dot ai-setup` — set up AI CLIs step by step
75
+ - `dot ai-query` — run context-aware queries on the dotfiles repo
76
+
77
+ ## Optional AI CLI tools
78
+
79
+ These tools are not installed for you. Pick and install only the ones you want:
80
+
81
+ - **Agents**: `claude`, `copilot`
82
+ - **Coding assistants**: `aider`, `opencode`
83
+ - **General AI**: `gemini`, `sgpt`
84
+ - **Local-first**: `ollama`
85
+ - **Coding agents**: `autohand`, `vibe`, `qwen`, `zai`
86
+ - **Cloud / platform**: `kiro-cli`
87
+
88
+ Once installed, the dotfiles add helper functions and shortcuts. These only load when `DOTFILES_AI=1` is set.
89
+
90
+ ## Agentic terminal workflows
91
+
92
+ If your terminal has built-in AI agents, keep your shell lean and fast:
93
+
94
+ - Use `DOTFILES_FAST=1` or `DOTFILES_ULTRA_FAST=1`.
95
+ - Let the terminal handle agents and its own UI.
96
+ - Keep dotfiles focused on consistency, safety, and clean repeats.
97
+
98
+ ## Privacy and safety
99
+
100
+ - No AI tools are installed for you.
101
+ - No background services run by default.
102
+ - You control AI helpers with `DOTFILES_AI=1`.
package/docs/COPYRIGHT CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
- * 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.480) - <https://dotfiles.io>
2
+ * 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.500) - <https://github.com/sebastienrousseau/dotfiles>
3
3
  * Made With ❤️ in London, United Kingdom
4
- * Designed by Sebastien Rousseau
4
+ * Designed by
5
5
  * Copyright (c) 2015-2026. All rights reserved.
6
6
  * License: MIT
7
7
  */
@@ -0,0 +1,95 @@
1
+ # Naming Conventions & Standardization Guide
2
+
3
+ This document defines the naming conventions for all files in the dotfiles repository.
4
+
5
+ ---
6
+
7
+ ## File Naming
8
+
9
+ | Context | Convention | Example |
10
+ |---|---|---|
11
+ | Run scripts | `run_{type}_{NN}-{verb}-{noun}.sh.tmpl` | `run_onchange_10-install-packages.sh.tmpl` |
12
+ | Shell fragments | `{NN}-{domain}-{detail}.sh.tmpl` | `90-ux-aliases.sh.tmpl` |
13
+ | Alias files | `{tool}.aliases.sh` | `git.aliases.sh` |
14
+ | Function files | `{name}.sh` (lowercase) | `apihealth.sh` |
15
+ | Test files | `test_{domain}_{feature}.sh` | `test_aliases_git.sh` |
16
+ | Scripts | `{verb}-{noun}.sh` (hyphenated) | `install-nerd-fonts.sh` |
17
+
18
+ ## Run Script Numbering Tiers
19
+
20
+ | Range | Category | Examples |
21
+ |---|---|---|
22
+ | 00-09 | Audit & pre-flight | `run_before_00-audit.sh` |
23
+ | 10-19 | Package installation | `run_onchange_10-linux-packages.sh.tmpl` |
24
+ | 20-29 | Config & languages | `run_onchange_20-ghostty-config.sh.tmpl` |
25
+ | 25-29 | Language toolchains | `run_onchange_25-python-tools.sh.tmpl` |
26
+ | 30-39 | Applications | `run_onchange_30-vscode-extensions.sh.tmpl` |
27
+ | 40-49 | System defaults | `run_onchange_40-darwin-default-apps.sh.tmpl` |
28
+ | 50-59 | Assets (fonts, themes) | `run_onchange_50-install-fonts.sh.tmpl` |
29
+
30
+ ---
31
+
32
+ ## Adding New Modules
33
+
34
+ ### New app config
35
+
36
+ 1. Create `dot_config/<app>/` with chezmoi-compatible filenames
37
+ 2. Add entry to `dot_config/.module-manifest.json`
38
+ 3. Optionally gate with feature flag in `.chezmoidata.toml` + `.chezmoiignore.tmpl`
39
+
40
+ ### New alias category
41
+
42
+ 1. Create `.chezmoitemplates/aliases/<category>/<name>.aliases.sh`
43
+ 2. The `**/*.aliases.sh` glob auto-discovers it
44
+ 3. Add to `$coreCategories` list in `90-ux-aliases.sh.tmpl` for eager loading; otherwise it loads lazily
45
+
46
+ ### New function
47
+
48
+ 1. Create file in `.chezmoitemplates/functions/<group>/`
49
+ 2. Add to `groups.json` with the `<group>/<filename>` path
50
+ 3. It auto-registers for lazy loading via `51-logic-functions-extra.sh.tmpl`
51
+
52
+ ### New provisioning script
53
+
54
+ 1. Create `install/provision/run_onchange_{NN}-{name}.sh.tmpl`
55
+ 2. Use the numbering tiers above
56
+ 3. Source `install/lib/os_detection.sh` for platform detection
57
+ 4. Guard OS-specific code with `{{ if eq .chezmoi.os "darwin" }}`
58
+
59
+ ---
60
+
61
+ ## Directory Structure Overview
62
+
63
+ ```text
64
+ .chezmoitemplates/
65
+ aliases/ # 48 categories, auto-discovered
66
+ functions/ # Grouped by domain (api/, curl/, text/, system/, etc.)
67
+ paths/ # PATH construction templates
68
+ desktop/ # Desktop environment templates (dconf)
69
+
70
+ dot_config/ # Flat — chezmoi constraint, no intermediate grouping
71
+
72
+ install/
73
+ lib/ # Shared helpers (os_detection, logging, installers)
74
+ provision/ # run_onchange_* provisioning scripts
75
+
76
+ scripts/ # Repo-only scripts (not deployed)
77
+ dot/ # dot CLI subcommands
78
+ ops/ # Operations scripts
79
+ diagnostics/ # Health checks
80
+ security/ # Security tools
81
+ ...
82
+
83
+ tests/ # Test suite (not deployed)
84
+ framework/ # Test runner, assertions, mocks
85
+ unit/ # Domain-organized unit tests
86
+ integration/ # End-to-end tests
87
+ performance/ # Benchmarks
88
+
89
+ docs/ # Documentation and GitHub Pages source
90
+ architecture/ # System design docs
91
+ guides/ # How-to guides
92
+ reference/ # Reference material
93
+ security/ # Security documentation
94
+ operations/ # Ops and maintenance docs
95
+ ```
package/docs/README.md CHANGED
@@ -1,269 +1,78 @@
1
- # Dotfiles Documentation
1
+ # Documentation
2
2
 
3
- <div align="center">
3
+ Start here. Then go deeper.
4
4
 
5
- **A modern, cross-platform shell environment built for developers.**
5
+ ## The Manual
6
6
 
7
- [Quick Start](#quick-start) · [Features](#features) · [Architecture](#architecture) · [Security](#security) · [Contributing](#contributing)
7
+ The complete reference is the `.dotfiles` Manual — a multi-format book covering every concept, tutorial, reference, and recipe.
8
8
 
9
- </div>
9
+ - Online: <https://sebastienrousseau.github.io/dotfiles/manual/> (HTML, PDF, EPUB, ASCII)
10
+ - Locally: `dot manual` opens the HTML in your browser
11
+ - Sources: [`docs/manual/`](manual/)
10
12
 
11
- ---
13
+ Quick jumps into the Manual:
12
14
 
13
- ## Overview
15
+ - [Introduction](manual/00-introduction.md) — who, what, how
16
+ - [Concepts](manual/01-concepts/) — architecture, trust model, theme engine, fleet, self-healing
17
+ - [Tutorials](manual/02-tutorials/) — first install, wallpaper→theme, profiles, secrets, fleet
18
+ - [Reference](manual/03-reference/) — CLI, config files, environment, templates, feature flags
19
+ - [Cookbook](manual/04-cookbook/) — 40+ recipes, troubleshooting, FAQ
14
20
 
15
- Welcome to the dotfiles documentation. This guide will help you install, configure, and customize your development environment across macOS, Linux, and WSL.
21
+ ## Start
16
22
 
17
- ### What You'll Get
23
+ - [Install](guides/INSTALL.md)
24
+ - [Troubleshooting](guides/TROUBLESHOOTING.md)
25
+ - [Support matrix](reference/SUPPORT_MATRIX.md)
18
26
 
19
- | Feature | Description |
20
- |---------|-------------|
21
- | 🚀 **Fast Shell** | Zsh with lazy loading, <500ms startup |
22
- | 🔧 **Modern Tools** | Neovim, tmux, starship, fzf, ripgrep |
23
- | 🔐 **Security First** | Encrypted secrets, credential management |
24
- | 🎨 **Beautiful UI** | Nerd Fonts, themes, consistent styling |
25
- | 📦 **Cross-Platform** | macOS, Linux, WSL2 support |
27
+ ## Daily use
26
28
 
27
- ---
29
+ - [Utilities and `dot` CLI](reference/UTILS.md)
30
+ - [Operations](operations/OPERATIONS.md)
31
+ - [Trusted agent workstation](operations/TRUSTED_AGENT_WORKSTATION.md)
32
+ - [Workstation attestation](operations/ATTESTATION.md)
33
+ - [Interoperability](architecture/INTEROP.md)
34
+ - [Agent interoperability](interop/A2A.md)
35
+ - [AI integrations](AI.md)
28
36
 
29
- ## Table of Contents
37
+ ## Security and trust
30
38
 
31
- ### Getting Started
32
- - [Installation Guide](INSTALL.md) — Set up your environment in minutes
33
- - [Walkthrough](WALKTHROUGH.md) — Interactive tour of key features
34
- - [Features Overview](FEATURES.md) — Complete feature list
39
+ - [Security overview](security/SECURITY.md)
40
+ - [Security checklist](security/SECURITY_CHECKLIST.md)
41
+ - [Policy bundle releases](security/POLICY_RELEASES.md)
42
+ - [Secrets](security/SECRETS.md)
43
+ - [Compliance](security/COMPLIANCE.md)
44
+ - [Threat model](security/THREAT_MODEL.md)
35
45
 
36
- ### Core Documentation
37
- - [Architecture](ARCHITECTURE.md) — System design and structure
38
- - [Operations Guide](OPERATIONS.md) — Daily usage and maintenance
39
- - [Troubleshooting](TROUBLESHOOTING.md) — Common issues and solutions
46
+ ## Build and maintain
40
47
 
41
- ### Configuration
42
- - [Aliases Reference](ALIASES.md) — Shell aliases and shortcuts
43
- - [Keybindings](KEYS.md) — Keyboard shortcuts catalog
44
- - [Tools Reference](TOOLS.md) — Installed tools and utilities
45
- - [Utilities](UTILS.md) — Helper scripts and functions
48
+ - [Testing](operations/TESTING.md)
49
+ - [Reliability](operations/RELIABILITY.md)
50
+ - [Naming conventions](NAMING_CONVENTIONS.md)
51
+ - [Architecture](architecture/ARCHITECTURE.md)
52
+ - [Repository layout](architecture/REPO_LAYOUT.md)
53
+ - [Architecture decisions](adr/README.md)
46
54
 
47
- ### Customization
48
- - [Fonts Guide](FONTS.md) — Nerd Fonts installation
49
- - [Screenshots](SCREENSHOTS.md) — Visual gallery
50
- - [Neovim IDE Guide](NEOVIM_IDE_GUIDE.md) — Editor configuration
55
+ ## Repository map
51
56
 
52
- ### Security
53
- - [Security Overview](SECURITY.md) Security model and practices
54
- - [Security Checklist](SECURITY_CHECKLIST.md) Hardening guide
55
- - [Secrets Management](SECRETS.md) Encrypted credentials
57
+ | Path | Purpose |
58
+ | :--- | :--- |
59
+ | `docs/` | Guides, reference, security, and architecture |
60
+ | `scripts/` | Repo-only scripts and `dot` command internals |
61
+ | `install/` | Installer and provisioning helpers |
62
+ | `dot_config/` | Managed user configuration files |
63
+ | `dot_local/` | Managed local executables |
64
+ | `examples/` | Executable examples |
65
+ | `tests/` | Unit, integration, and framework coverage |
56
66
 
57
- ### Development
58
- - [Testing Guide](TESTING.md) — Test framework and coverage
59
- - [Compliance](COMPLIANCE.md) — Standards and policies
60
- - [Architecture Decisions](adr/) — ADRs for key decisions
67
+ ## Platform guides
61
68
 
62
- ### Platform-Specific
63
- - [WSL2 + Nix Guide](WSL2_NIX_TROUBLESHOOTING.md) — Windows Subsystem for Linux
69
+ - [WSL2 and Nix](guides/WSL2_NIX_TROUBLESHOOTING.md)
70
+ - [Neovim IDE](guides/NEOVIM_IDE_GUIDE.md)
64
71
 
65
- ### Reference
66
- - [Roadmap](ROADMAP.md) — Future plans and priorities
67
- - [Legacy Roadmap](LEGACY_ROADMAP.md) — Historical context
72
+ ## Reference
68
73
 
69
- ---
70
-
71
- ## Quick Start
72
-
73
- ### Prerequisites
74
-
75
- - macOS 12+, Ubuntu 22.04+, or Windows 11 with WSL2
76
- - Git 2.30+
77
- - curl or wget
78
-
79
- ### Installation
80
-
81
- ```bash
82
- # One-line install
83
- curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh | bash
84
- ```
85
-
86
- Or clone and install manually:
87
-
88
- ```bash
89
- git clone https://github.com/sebastienrousseau/dotfiles.git ~/.dotfiles
90
- cd ~/.dotfiles && ./install.sh
91
- ```
92
-
93
- ### First Steps
94
-
95
- After installation, run these commands to explore:
96
-
97
- ```bash
98
- dot help # Show all available commands
99
- dot doctor # Check system health
100
- dot learn # Interactive tour
101
- dot keys # View keybindings
102
- ```
103
-
104
- ---
105
-
106
- ## Features
107
-
108
- ### Shell Environment
109
-
110
- The shell configuration provides a fast, feature-rich experience:
111
-
112
- ```
113
- ┌─────────────────────────────────────────────────────────────┐
114
- │ Startup Time: <500ms │ Plugin Manager: Zinit │
115
- │ Prompt: Starship │ Completions: Lazy-loaded │
116
- │ History: Shared │ Syntax: fast-syntax-highlighting │
117
- └─────────────────────────────────────────────────────────────┘
118
- ```
119
-
120
- **Key Features:**
121
- - Intelligent command suggestions with autosuggestions
122
- - Fuzzy finding with fzf for files, history, and git
123
- - Git integration with delta for beautiful diffs
124
- - Directory jumping with zoxide
125
-
126
- ### Development Tools
127
-
128
- Pre-configured toolchains for modern development:
129
-
130
- | Language | Tools |
131
- |----------|-------|
132
- | **Rust** | rustup, cargo, clippy, rustfmt |
133
- | **Go** | go, golangci-lint |
134
- | **Node.js** | nvm, npm, pnpm |
135
- | **Python** | pyenv, pipx, uv |
136
-
137
- ### AI Integration
138
-
139
- Built-in support for AI coding assistants:
140
-
141
- - **aider** — AI pair programming
142
- - **Claude** — Anthropic's assistant
143
- - **GitHub Copilot** — Code suggestions
144
- - **git-ai-commit** — AI-powered commit messages
145
-
146
- ---
147
-
148
- ## Architecture
149
-
150
- The dotfiles follow a modular architecture:
151
-
152
- ```
153
- ~/.dotfiles/
154
- ├── dot_config/ # XDG config files
155
- │ ├── nvim/ # Neovim configuration
156
- │ ├── zsh/ # Zsh configuration layers
157
- │ └── git/ # Git configuration
158
- ├── dot_local/bin/ # User scripts and tools
159
- ├── install/ # Installation scripts
160
- │ └── provision/ # Tool provisioning
161
- ├── scripts/ # Operational scripts
162
- │ ├── dot/commands/ # CLI command modules
163
- │ ├── diagnostics/ # Health checks
164
- │ ├── security/ # Security tools
165
- │ └── tuning/ # Performance tuning
166
- └── docs/ # Documentation (you are here)
167
- ```
168
-
169
- ### Shell Layer System
170
-
171
- Zsh configuration uses numbered layers for predictable loading:
172
-
173
- | Range | Purpose | Examples |
174
- |-------|---------|----------|
175
- | 00-19 | Core | Environment, history, options |
176
- | 20-49 | Middleware | Zinit, completions, plugins |
177
- | 50-89 | Toolchain | Languages, package managers |
178
- | 90-99 | UX | Prompt, aliases, keybindings |
179
-
180
- ### CLI Architecture
181
-
182
- The `dot` CLI uses modular command dispatch:
183
-
184
- ```bash
185
- dot <command> [args]
186
-
187
- ├── core.sh # apply, sync, update, diff
188
- ├── diagnostics.sh # doctor, heal, benchmark
189
- ├── tools.sh # tools, new, packages
190
- ├── appearance.sh # theme, fonts, wallpaper
191
- ├── secrets.sh # secrets-init, secrets
192
- ├── security.sh # firewall, backup, encrypt
193
- └── meta.sh # upgrade, docs, learn
194
- ```
195
-
196
- ---
197
-
198
- ## Security
199
-
200
- Security is a core principle, not an afterthought.
201
-
202
- ### Secrets Management
203
-
204
- ```bash
205
- dot secrets-init # Initialize age encryption
206
- dot secrets # Edit encrypted secrets
207
- dot ssh-key # Encrypt SSH keys
208
- ```
209
-
210
- Secrets are encrypted with [age](https://age-encryption.org/) and never stored in plaintext.
211
-
212
- ### Credential Management
213
-
214
- Supported credential stores:
215
- - **macOS** — Keychain integration
216
- - **Linux** — libsecret / GNOME Keyring
217
- - **Git** — git-credential-manager
218
-
219
- ### Security Hardening (Opt-in)
220
-
221
- ```bash
222
- dot firewall # Configure firewall rules
223
- dot telemetry # Disable OS telemetry
224
- dot dns-doh # Enable DNS-over-HTTPS
225
- dot encrypt-check # Verify disk encryption
226
- ```
227
-
228
- All security modifications require explicit consent.
229
-
230
- ---
231
-
232
- ## Contributing
233
-
234
- We welcome contributions! Please see our guidelines:
235
-
236
- 1. **Fork** the repository
237
- 2. **Create** a feature branch
238
- 3. **Test** your changes with `dot doctor`
239
- 4. **Submit** a pull request
240
-
241
- ### Code Style
242
-
243
- - Shell scripts: Follow ShellCheck recommendations
244
- - Templates: Use `.chezmoitemplates/` for reusable logic
245
- - Documentation: Use UPPERCASE.md naming convention
246
-
247
- ### Testing
248
-
249
- ```bash
250
- ./scripts/tests/framework/test_runner.sh # Unit tests
251
- RUN_INTEGRATION=1 ./scripts/tests/framework/test_runner.sh # Integration
252
- ```
253
-
254
- ---
255
-
256
- ## Support
257
-
258
- - **Issues**: [GitHub Issues](https://github.com/sebastienrousseau/dotfiles/issues)
259
- - **Discussions**: [GitHub Discussions](https://github.com/sebastienrousseau/dotfiles/discussions)
260
-
261
- ---
262
-
263
- <div align="center">
264
-
265
- **[Back to Top](#dotfiles-documentation)**
266
-
267
- Made with ❤️ by [Sebastien Rousseau](https://github.com/sebastienrousseau)
268
-
269
- </div>
74
+ - [Features](reference/FEATURES.md)
75
+ - [Tools](reference/TOOLS.md)
76
+ - [Aliases](reference/ALIASES.md)
77
+ - [Roadmap](operations/ROADMAP.md)
78
+ - [Version sync](operations/VERSION_SYNC.md)
@@ -25,7 +25,7 @@ Use **Chezmoi as the core engine** with a **custom `dot` CLI wrapper** that:
25
25
 
26
26
  ### Architecture
27
27
 
28
- ```
28
+ ```text
29
29
  ┌─────────────────────────────────────────────┐
30
30
  │ dot CLI │
31
31
  │ (User-friendly interface, custom commands) │
@@ -57,7 +57,7 @@ Use **Chezmoi as the core engine** with a **custom `dot` CLI wrapper** that:
57
57
  - Consistent help and error messages
58
58
 
59
59
  **3. Modular command structure:**
60
- ```
60
+ ```text
61
61
  scripts/dot/
62
62
  ├── lib/
63
63
  │ └── utils.sh # Shared functions
@@ -30,7 +30,7 @@ Use **Zsh** as the default interactive shell with **Zinit** as the plugin manage
30
30
 
31
31
  1. **Default on macOS**: Pre-installed since Catalina
32
32
  2. **Plugin Ecosystem**: Massive library of plugins and themes
33
- 3. **Compatibility**: POSIX-compatible, easy migration from bash
33
+ 3. **Compatibility**: POSIX-compatible, smooth migration from bash
34
34
  4. **Completion System**: Superior tab completion
35
35
  5. **Customization**: Highly configurable prompt and behavior
36
36
  6. **Community**: Large community, well-documented
@@ -54,7 +54,7 @@ Zinit provides:
54
54
 
55
55
  ### Shell Layer System
56
56
 
57
- ```
57
+ ```text
58
58
  dot_config/zsh/rc.d/
59
59
  ├── 00-10: Core (env, history, options)
60
60
  ├── 20-49: Middleware (zinit, completions)
@@ -0,0 +1,53 @@
1
+ # ADR-007: Multi-Shell Parity Strategy
2
+
3
+ ## Status
4
+
5
+ Accepted
6
+
7
+ ## Date
8
+
9
+ 2026-03-08
10
+
11
+ ## Context
12
+
13
+ The dotfiles distribution supports three shells: Zsh (default since macOS Catalina), Fish (modern interactive shell), and Nushell (structured data shell). The codebase has 98 alias files and 52+ functions written in POSIX/Bash. Without a parity strategy, each shell gets a fragmented subset of functionality.
14
+
15
+ **Problem:** Fish had zero access to the alias/function library until v0.2.500 added bridge templates. Nushell had only 6 hardcoded aliases and no function access.
16
+
17
+ **Constraints:**
18
+ - Nushell's `source` is parse-time evaluated (no dynamic sourcing)
19
+ - Fish syntax differs significantly from POSIX (no `$()`, different `if`, no `[[`)
20
+ - Maintaining N copies of every alias/function is unsustainable
21
+
22
+ ## Decision
23
+
24
+ Adopt a **hub-and-spoke bridge architecture**:
25
+
26
+ 1. **Hub:** Canonical definitions live in `.chezmoitemplates/aliases/` (Bash/POSIX) and `.chezmoitemplates/functions/` (Bash)
27
+ 2. **Bash/Zsh spoke:** Direct inclusion via `90-ux-aliases.sh.tmpl` and `50-logic-functions.sh.tmpl`
28
+ 3. **Fish spoke:** Runtime bash bridge with caching (`aliases.fish.tmpl`, `functions.fish.tmpl`)
29
+ 4. **Nushell spoke:** Hybrid approach:
30
+ - Aliases: Runtime bash extraction cached to `~/.cache/nushell/bash-aliases.nu` (in `env.nu.tmpl`), sourced by `aliases.nu.tmpl`
31
+ - Functions: Chezmoi template-generated `def` wrappers delegating to bash (in `functions.nu.tmpl`)
32
+
33
+ **Parity tiers:**
34
+ - **Tier 1 (Full):** Zsh, Bash — all aliases, functions, lazy loading, cached eval
35
+ - **Tier 2 (Bridged):** Fish — all simple aliases, all functions via wrappers, `_cached_eval` caching
36
+ - **Tier 3 (Compatible):** Nushell — simple aliases (no complex bash syntax), all functions via bash delegation
37
+
38
+ ## Consequences
39
+
40
+ ### Positive
41
+ - Single source of truth for aliases and functions
42
+ - Adding a new alias/function automatically propagates to all shells
43
+ - Nushell users get access to 40+ functions that were previously unavailable
44
+ - Fish users get mtime-aware caching via `_cached_eval`
45
+
46
+ ### Negative
47
+ - Complex bash aliases (pipes, conditionals) are skipped for Nushell
48
+ - Function calls in Fish/Nushell incur bash subprocess overhead (~5ms per call)
49
+ - Cache invalidation requires shell restart or manual cache clear
50
+
51
+ ### Risks
52
+ - Nushell's rapid development may break bridge syntax in future versions
53
+ - Very large alias sets may slow Nushell startup during cache generation