@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
@@ -1,25 +0,0 @@
1
- # Security Release Checklist
2
-
3
- Use this checklist before cutting any new release (e.g., `v0.x.x`) to ensure supply-chain integrity.
4
-
5
- ## 1. Supply Chain & Installer
6
- - [ ] **Pinned Version**: Update `install.sh` `VERSION` variable to match the release tag.
7
- - [ ] **Docs Sync**: Ensure `README.md` and `.github/PULL_REQUEST_TEMPLATE.md` installer URLs point to the new tag (not `main`).
8
- - [ ] **Clean Build**: Verify `install.sh` does not curl random scripts from third parties without pinning.
9
-
10
- ## 2. Secrets & Leak Prevention
11
- - [ ] **SSH Keys**: Scan `dot_ssh/` to ensure no private keys (`id_rsa`, `id_ed25519`) are committed.
12
- - [ ] **Env Vars**: Check for hardcoded API tokens in `dot_config/` (use `age` encryption or environment variables instead).
13
- - [ ] **Git History**: Run `git secrets` or similar to scan for accidental commits of credentials.
14
-
15
- ## 3. Platform Safety
16
- - [ ] **WSL Check**: Verify `install.sh` detects WSL and does not try to install systemd services or macOS defaults.
17
- - [ ] **Root usage**: Ensure no script requires `sudo` unnecessarily (Principle of Least Privilege).
18
-
19
- ## 4. Toolchain
20
- - [ ] **Binary Integrity**: Check that `dot_local/bin/` scripts are pure shell/executable and match expected checksums (no binary blobs).
21
- - [ ] **Dependency Scan**: Run `npm audit` / `cargo audit` if applicable (currently Node.js legacy is removed).
22
-
23
- ## 5. Final Verification
24
- - [ ] **Docker Test**: Run `docker build -f Dockerfile.test .` to verify clean install.
25
- - [ ] **Doctor**: Run `dot doctor` locally.
package/docs/TASK.md DELETED
@@ -1,99 +0,0 @@
1
- # Debugging Universal Config
2
-
3
- ... [Completed Phases 2-16 Unchanged] ...
4
-
5
- # Phase 16: Final Release Verification
6
- - [x] **Benchmark**: Verify startup <20ms <!-- id: 84 -->
7
- - [x] **Templates**: Verify syntax validity <!-- id: 85 -->
8
- - [x] **PR Update**: Set final title and description <!-- id: 86 -->
9
-
10
- # Phase 17: Structural Optimizations
11
- - [x] **Semantic Organization**: Rename `dot_config/dotfiles` to `dot_config/shell` <!-- id: 87 -->
12
- - [x] **Script Installation**: Move `bin` to `dot_local/bin` <!-- id: 88 -->
13
- - [x] **Cleanup**: Remove `Makefile` and `package.json` <!-- id: 89 -->
14
- - [x] **Segregation**: Split install scripts by OS <!-- id: 90 -->
15
- - [x] **Verify Structure**: Ensure templates render correctly <!-- id: 91 -->
16
- - [x] **Update Documentation**: Overhaul `README.md` for accuracy, logic, and modern tool examples <!-- id: 92 -->
17
- - [x] **Component READMEs**: Verified and updated `go`, `archives`, `cd`, `gcloud`, `mkdir`, `modern`. <!-- id: 105 -->
18
-
19
- # Phase 18: Component Documentation Polish
20
- - [x] **Aliases**: Update `aliases/README.md` with `chezmoi` usage <!-- id: 93 -->
21
- - [x] **Functions**: Update `functions/README.md` removing legacy install steps <!-- id: 94 -->
22
- - [x] **Paths**: Update `paths/README.md` correcting filenames and logic <!-- id: 95 -->
23
- - [x] **Cleanup**: Fix broken HTML artifacts in alias READMEs (Deep Clean) <!-- id: 96 -->
24
- - [x] **Cleanup**: Fix broken HTML artifacts in alias READMEs (Deep Clean) <!-- id: 96 -->
25
-
26
- # Phase 19: Toolchain Expansion
27
- - [x] **Kubernetes**: Add `kubectl`, `helm`, `k9s` aliases <!-- id: 97 -->
28
- - [x] **IaC**: Add `terraform`, `ansible` aliases <!-- id: 98 -->
29
- - [x] **Languages**: Add `go`, `yarn`, `uv` aliases <!-- id: 99 -->
30
- - [x] **Diagnostics**: Add `jq`, `yq`, `nc` aliases <!-- id: 100 -->
31
-
32
- # Phase 20: Intelligent Assistance
33
- - [x] **AI**: Add `gh copilot` / AI aliases <!-- id: 101 -->
34
- - [x] **Smart Help**: Create `dothelp` function <!-- id: 102 -->
35
-
36
- # Phase 22: Automated Testing
37
- - [x] **Docker CI**: Add Linux container install test <!-- id: 103 -->
38
- - [x] **Integration**: Verify aliases load correctly <!-- id: 104 -->
39
- # Phase 92: Legal & Licensing
40
- - [x] **FOSSology**: Add license scanning aliases (`scan-licenses`) <!-- id: 111 -->
41
- - [x] **Headers**: Add copyright header automation (`add-headers`) <!-- id: 112 -->
42
- - [x] **CLA**: Add CLA check aliases (`check-cla`) <!-- id: 113 -->
43
- - [x] **Notice**: Add attribution generation (`gen-notice`) <!-- id: 114 -->
44
-
45
- # Pull Request (v0.2.480)
46
- - [x] Commit and push changes <!-- id: 17 -->
47
- - [x] Update Pull Request (Completed via gh CLI) <!-- id: 18 -->
48
- - [x] **Verify PR Content**: Confirmed title and description on GitHub <!-- id: 67 -->
49
-
50
- # Phase 23: Enterprise Core & Security (The Trust Layer)
51
- - [x] **SLSA & SBOM**: Create release workflow for provenance/SBOM <!-- id: 116 -->
52
- - [x] **Signing**: Add aliases for Git GPG/SSH signing configuration (`enable-signing`) <!-- id: 117 -->
53
- - [x] **Immutability**: Create script to lock/unlock critical files (`lock-configs`) <!-- id: 118 -->
54
-
55
- # Phase 27: Self-Healing & Diagnostics
56
- - [x] **Health Checks**: Create `dot doctor` script (`scripts/diagnostics/doctor.sh`) <!-- id: 121 -->
57
- - [x] **Drift Detection**: Add `dot drift` alias for `chezmoi verify` <!-- id: 122 -->
58
- - [x] **Auto-Repair**: Add `dot heal` alias for interactive repair <!-- id: 123 -->
59
-
60
- # Phase 51: Regulatory Compliance
61
- - [x] **SOC2/ISO**: Create `COMPLIANCE.md` mapping controls to dotfiles features <!-- id: 124 -->
62
- - [x] **Privacy Mode**: Create `privacy-mode` alias (telemetry disabling) <!-- id: 125 -->
63
- - [x] **Audit**: Create `dot audit` alias to view compliance logs <!-- id: 126 -->
64
-
65
- # Phase 54: macOS Deep Integration
66
- - [x] **Defaults**: Create `run_onchange_darwin_defaults.sh.tmpl` for system hardening <!-- id: 127 -->
67
- - [x] **Brewfile**: Enforce strict bundle verification <!-- id: 128 -->
68
-
69
- # Phase 59: Font Typography
70
- - [x] **Nerd Fonts**: Create `run_onchange_install_fonts.sh.tmpl` to install JetBrainsMono/Symbols <!-- id: 129 -->
71
- - [x] **Fontconfig**: Create `dot_config/fontconfig/fonts.conf.tmpl` for Linux rendering <!-- id: 130 -->
72
- - [x] **Aliases**: Add `update-fonts` alias <!-- id: 131 -->
73
-
74
- # Phase 26: OS Bundling & Compliance
75
- - [x] **XDG**: Audit and enforce XDG Base Directory variables <!-- id: 132 -->
76
- - [x] **Vendor Hooks**: Implement `/etc/dotfiles/defaults.d` sourcing in shell init <!-- id: 133 -->
77
- - [x] **Bundling**: Create `scripts/core/package.sh` to generate release artifacts (.tar.gz, .deb structure) <!-- id: 134 -->
78
-
79
- # Phase 24: The Universal Installer (Zero-Dependency)
80
- - [x] **Installer**: Create `install.sh` (Zero-dep, TUI-like bootstrap) <!-- id: 135 -->
81
- - [x] **Teleport**: Create `scripts/ops/teleport.sh` to push config to remote hosts <!-- id: 136 -->
82
- - [x] **Aliases**: Add `dot install` and `dot teleport` aliases <!-- id: 137 -->
83
-
84
- # Post-Release Hotfixes
85
- - [x] **Codacy**: Fix linting in `detect-collisions.py` (Round 1) <!-- id: 106 -->
86
- - [x] **Codacy**: Fix linting in `modern.aliases.sh`, `pipx.paths.sh`, and `detect-collisions.py` (Round 2) <!-- id: 120 -->
87
- - [x] **Roadmap**: Rewrite full 100-phase roadmap <!-- id: 107 -->
88
- - [x] **Zinit**: Fix bootstrap and valid Zsh sourcing <!-- id: 108 -->
89
- - [x] **Vim**: Fix install script robustness <!-- id: 109 -->
90
- - [x] **Pipx**: Fix "space in path" warning via explicit XDG vars <!-- id: 110 -->
91
- - [x] **Aliases**: Removed broken `dotfiles_history` alias <!-- id: 115 -->
92
- - [x] **Security**: Full Phase 23 implementation (SLSA, Signing, Locks) <!-- id: 119 -->
93
-
94
- # Chezmoi Migration
95
- - [x] Verify `chezmoi` installation <!-- id: 12 -->
96
- - [x] Initialize `chezmoi` and create plan <!-- id: 13 -->
97
- - [x] Migrate key config files (`.zshrc`, etc.) to `chezmoi` <!-- id: 14 -->
98
- - [x] Create cross-platform templates (Mac/Linux/Windows) <!-- id: 15 -->
99
- - [x] Verify `chezmoi apply` locally <!-- id: 16 -->
package/docs/TESTING.md DELETED
@@ -1,190 +0,0 @@
1
- # Testing strategy
2
-
3
- ## Overview
4
-
5
- This repository uses a multi-layer testing approach:
6
- - **Unit Tests**: Individual function validation
7
- - **Integration Tests**: System-wide behavior verification
8
- - **Performance Tests**: Resource efficiency benchmarks
9
-
10
- ## Running tests
11
-
12
- ### Quick start
13
- ```bash
14
- # Run all unit tests
15
- ./scripts/tests/framework/test_runner.sh
16
-
17
- # Run specific test suite
18
- ./scripts/tests/framework/test_runner.sh extract
19
-
20
- # Run integration tests
21
- RUN_INTEGRATION=1 ./scripts/tests/framework/test_runner.sh
22
-
23
- # Run performance benchmarks
24
- ./scripts/tests/performance/benchmark_runner.sh
25
- ```
26
-
27
- ## Test structure
28
-
29
- ```
30
- scripts/tests/
31
- ├── framework/ # Test framework
32
- │ ├── assertions.sh # 15+ assertion functions
33
- │ ├── mocks.sh # Mock utilities
34
- │ └── test_runner.sh # Test executor
35
- ├── unit/ # Unit tests
36
- ├── integration/ # Integration tests
37
- └── performance/ # Benchmarks
38
- ```
39
-
40
- ## Writing tests
41
-
42
- ### Test file template
43
- ```bash
44
- #!/usr/bin/env bash
45
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
46
- source "$SCRIPT_DIR/../framework/assertions.sh"
47
-
48
- # Source function under test
49
- source "$HOME/.dotfiles/.chezmoitemplates/functions/myfunction.sh"
50
-
51
- # Test cases
52
- test_start "function_basic_usage"
53
- assert_exit_code 0 "myfunction arg1"
54
-
55
- test_start "function_no_args"
56
- assert_exit_code 1 "myfunction"
57
- ```
58
-
59
- ### Available assertions
60
-
61
- | Function | Description |
62
- |----------|-------------|
63
- | `assert_equals expected actual [msg]` | Assert two values are equal |
64
- | `assert_not_equals unexpected actual [msg]` | Assert two values differ |
65
- | `assert_exit_code code command` | Assert command exits with code |
66
- | `assert_output_contains needle command` | Assert output contains string |
67
- | `assert_output_not_contains needle command` | Assert output lacks string |
68
- | `assert_output_matches pattern command` | Assert output matches regex |
69
- | `assert_file_exists path [msg]` | Assert file exists |
70
- | `assert_file_not_exists path [msg]` | Assert file doesn't exist |
71
- | `assert_dir_exists path [msg]` | Assert directory exists |
72
- | `assert_dir_not_exists path [msg]` | Assert directory doesn't exist |
73
- | `assert_true condition [msg]` | Assert condition is true |
74
- | `assert_false condition [msg]` | Assert condition is false |
75
- | `assert_empty value [msg]` | Assert string is empty |
76
- | `assert_not_empty value [msg]` | Assert string is not empty |
77
- | `assert_file_contains file needle [msg]` | Assert file contains text |
78
-
79
- ### Mock utilities
80
-
81
- | Function | Description |
82
- |----------|-------------|
83
- | `mock_init` | Initialize mock environment |
84
- | `mock_command name output [exit_code]` | Create mock command |
85
- | `mock_command_spy name [output] [exit_code]` | Create mock that records calls |
86
- | `mock_get_calls name` | Get spy call history |
87
- | `mock_call_count name` | Get number of spy calls |
88
- | `mock_file content [filename]` | Create temp file with content |
89
- | `mock_dir [prefix]` | Create temp directory |
90
- | `mock_archive type [content]` | Create mock archive file |
91
- | `mock_env var_name value` | Set environment variable |
92
- | `mock_cleanup` | Clean up all mocks |
93
-
94
- ## Coverage goals
95
-
96
- | Category | Target | Current |
97
- |----------|--------|---------|
98
- | Functions | >80% | ~85% |
99
- | Scripts | >70% | ~75% |
100
- | Integration | >90% | ~95% |
101
-
102
- ## CI integration
103
-
104
- Tests run automatically on:
105
- - Every push to main
106
- - Every pull request
107
- - Weekly scheduled runs (Monday 6 AM UTC)
108
-
109
- ### GitHub Actions example
110
-
111
- ```yaml
112
- - name: Run Tests
113
- run: |
114
- chmod +x ./scripts/tests/framework/test_runner.sh
115
- ./scripts/tests/framework/test_runner.sh
116
-
117
- - name: Run Integration Tests
118
- run: |
119
- RUN_INTEGRATION=1 ./scripts/tests/framework/test_runner.sh
120
-
121
- - name: Run Performance Benchmarks
122
- run: |
123
- ./scripts/tests/performance/benchmark_runner.sh
124
- ```
125
-
126
- ## Test categories
127
-
128
- ### Unit Tests (`scripts/tests/unit/`)
129
-
130
- Test individual functions in isolation:
131
-
132
- - **test_extract.sh** - Archive extraction function
133
- - **test_backup.sh** - Backup creation function
134
- - **test_genpass.sh** - Password generation function
135
- - **test_rd.sh** - Directory removal function (with security tests)
136
- - **test_cd_aliases.sh** - Directory navigation aliases
137
-
138
- ### Integration Tests (`scripts/tests/integration/`)
139
-
140
- Test complete workflows:
141
-
142
- - **test_install.sh** - Installation script validation
143
-
144
- ### Performance Tests (`scripts/tests/performance/`)
145
-
146
- Measure resource efficiency:
147
-
148
- - **benchmark_runner.sh** - Shell startup and operation benchmarks
149
- - **stress_test.sh** - Load testing utilities
150
-
151
- ## Environment variables
152
-
153
- | Variable | Default | Description |
154
- |----------|---------|-------------|
155
- | `RUN_INTEGRATION` | `0` | Set to `1` to run integration tests |
156
- | `VERBOSE` | `0` | Set to `1` for verbose output |
157
- | `REPO_ROOT` | Auto-detected | Repository root directory |
158
- | `TESTS_DIR` | Auto-detected | Tests directory |
159
-
160
- ## Best practices
161
-
162
- 1. **Isolation**: Each test should be independent
163
- 2. **Cleanup**: Use mocks that auto-cleanup via traps
164
- 3. **No Sleep**: Avoid `sleep` or hardcoded delays
165
- 4. **Descriptive Names**: Test names should describe what's being tested
166
- 5. **Edge Cases**: Test error conditions, not just happy paths
167
- 6. **Security**: Include tests for dangerous input rejection
168
-
169
- ## Troubleshooting
170
-
171
- ### Tests not found
172
-
173
- Ensure test files match the pattern `test_*.sh` and are executable:
174
-
175
- ```bash
176
- chmod +x scripts/tests/unit/test_*.sh
177
- chmod +x scripts/tests/integration/test_*.sh
178
- ```
179
-
180
- ### Function not available
181
-
182
- If a test shows "function not available", verify the source file exists:
183
-
184
- ```bash
185
- ls -la .chezmoitemplates/functions/
186
- ```
187
-
188
- ### Mock cleanup issues
189
-
190
- If mocks aren't cleaning up, ensure you're not running with `set -e` before mock operations that might fail.
package/docs/TOOLS.md DELETED
@@ -1,146 +0,0 @@
1
- # Tools
2
-
3
- These are the main tools and CLI conveniences included with Dotfiles.
4
-
5
- ## Core
6
-
7
- | Tool | Description |
8
- |------|-------------|
9
- | Zsh | Shell |
10
- | Starship | Cross-shell prompt |
11
- | tmux | Terminal multiplexer |
12
- | Neovim | Modern Vim-based editor |
13
-
14
- ## Search and navigation
15
-
16
- | Tool | Description |
17
- |------|-------------|
18
- | fzf | Fuzzy finder |
19
- | zoxide | Smart directory jumping |
20
- | ripgrep | Fast text search |
21
- | fd | Developer-friendly find |
22
- | bat | Cat with syntax highlighting |
23
- | eza | Modern ls replacement |
24
- | lsd | LSDeluxe file listing |
25
- | duf | Disk usage utility |
26
- | ncdu | NCurses disk usage |
27
- | htop | Process viewer |
28
- | btop | Resource monitor |
29
-
30
- ## Terminal
31
-
32
- | Tool | Description |
33
- |------|-------------|
34
- | WezTerm | GPU-accelerated terminal |
35
- | Alacritty | Fast terminal |
36
- | Kitty | Feature-rich terminal |
37
- | Ghostty | Native terminal |
38
- | fastfetch | System info |
39
- | figlet | ASCII banners |
40
- | lolcat | Rainbow output |
41
- | cowsay | ASCII cow messages |
42
- | cmatrix | Matrix screensaver |
43
- | pipes | Pipe screensaver |
44
- | atuin | Shell history sync |
45
- | yazi | Terminal file manager |
46
-
47
- ## Git
48
-
49
- | Tool | Description |
50
- |------|-------------|
51
- | git | Version control |
52
- | lazygit | Terminal UI for Git |
53
- | delta | Syntax-highlighted diffs |
54
- | gh | GitHub CLI |
55
- | glab | GitLab CLI |
56
-
57
- ## AI CLI Tools
58
-
59
- | Tool | NPM Package | Description |
60
- |------|-------------|-------------|
61
- | claude | @anthropic-ai/claude-code | Anthropic Claude CLI |
62
- | gemini | @google/gemini-cli | Google Gemini CLI |
63
- | sgpt | shell-gpt | OpenAI-compatible CLI (Shell GPT) |
64
- | ollama | ollama | Local LLM runtime and CLI |
65
- | codex | @openai/codex | OpenAI Codex CLI |
66
- | opencode | opencode-ai | OpenCode AI assistant |
67
- | droid | @factory/cli | Factory AI Droid |
68
- | aider | aider-chat | Git-native AI pair programming |
69
-
70
-
71
- ## Data processing
72
-
73
-
74
- | Tool | Description |
75
- |------|-------------|
76
- | jq | JSON processor |
77
- | yq | YAML processor |
78
- | hexyl | Hex viewer |
79
-
80
- ## Kubernetes
81
-
82
- | Tool | Description |
83
- |------|-------------|
84
- | kubectl | Kubernetes CLI |
85
- | kubectx | Context switcher |
86
- | kubens | Namespace switcher |
87
- | k9s | Kubernetes TUI |
88
- | stern | Multi-pod log tailer |
89
- | kube-linter | Manifest linter |
90
- | kubesec | Security scanner |
91
- | minikube | Local Kubernetes |
92
- | helm | Package manager |
93
-
94
- ## Database CLIs
95
-
96
- | Tool | Description |
97
- |------|-------------|
98
- | psql | PostgreSQL CLI |
99
- | mycli | MySQL CLI with autocomplete |
100
- | sqlite3 | SQLite CLI |
101
- | redis-cli | Redis CLI |
102
- | mongosh | MongoDB Shell |
103
-
104
- ## Security
105
-
106
- | Tool | Description |
107
- |------|-------------|
108
- | age | Modern encryption |
109
- | gnupg | OpenPGP implementation |
110
-
111
- ## Developer tools
112
-
113
- - Git helpers and sane defaults
114
- - Project templates (`dot new`)
115
- - Sandbox preview (`dot sandbox`)
116
- - Benchmarking (`dot benchmark`)
117
- - Lua tooling (`luacheck`, `stylua`, `luarocks`, `lua/luajit`)
118
-
119
- ## Security features
120
-
121
- - Firewall hardening
122
- - Telemetry disable
123
- - DNS-over-HTTPS (Linux)
124
- - Lock-screen enforcement
125
- - Encryption checks
126
-
127
- ## Aliases
128
-
129
- Aliases live in category directories under:
130
-
131
- ```
132
- ~/.dotfiles/.chezmoitemplates/aliases/<category>/<name>.aliases.sh
133
- ```
134
-
135
- Apply changes with:
136
-
137
- ```bash
138
- chezmoi apply
139
- ```
140
-
141
- ## Make it yours
142
-
143
- - Wallpaper sync/rotate scripts
144
- - Cursor and icon theming helpers (Linux)
145
- - Lock screen icon helper (Linux)
146
- - GRUB theme / boot logo helpers (Linux)
package/docs/UTILS.md DELETED
@@ -1,105 +0,0 @@
1
- # Discover utilities
2
-
3
- These utilities are available through aliases, functions, and the `dot` CLI. The collection stays small and practical on purpose.
4
-
5
- ## Dot CLI
6
-
7
- The `dot` command is your primary interface for managing dotfiles. Run `dot --version` to check the installed version.
8
-
9
- ### Core commands
10
-
11
- | Command | Description |
12
- |---------|-------------|
13
- | `dot apply` | Apply dotfiles (chezmoi apply) |
14
- | `dot sync` | Alias of apply |
15
- | `dot update` | Pull latest changes and apply |
16
- | `dot add <file>` | Add a file to chezmoi source |
17
- | `dot diff` | Show local changes (excludes scripts) |
18
- | `dot status` | Show configuration drift |
19
- | `dot cd` | Print source directory path |
20
- | `dot edit` | Open source in your editor |
21
-
22
- ### Diagnostics
23
-
24
- | Command | Description |
25
- |---------|-------------|
26
- | `dot doctor` | Run system health checks |
27
- | `dot drift` | Detailed configuration drift dashboard |
28
- | `dot history` | Analyse shell history |
29
- | `dot benchmark` | Measure shell startup time |
30
-
31
- ### Tools
32
-
33
- | Command | Description |
34
- |---------|-------------|
35
- | `dot tools` | Show tools documentation |
36
- | `dot tools install` | Enter Nix development shell |
37
- | `dot new <lang> <name>` | Scaffold a project (python/go/node) |
38
- | `dot sandbox` | Launch Docker sandbox preview |
39
- | `dot log-rotate` | Rotate `~/.local/share/dotfiles.log` |
40
-
41
- ## Git
42
-
43
- You can use these shorthand aliases for everyday Git operations:
44
-
45
- - `g`, `ga`, `gco`, `gst`, `gl`, `gll`, and related aliases
46
- - `lg` shows a graph log; `lgui` opens `lazygit` (if installed)
47
- - `gh` aliases in `~/.config/gh/config.yml`
48
-
49
- ## Docker
50
-
51
- These Docker aliases help you manage containers and images:
52
-
53
- - `dco` for `docker compose`
54
- - `dps`, `dpsa` for container listing
55
- - `dexec`, `denter` for container shells
56
- - `dlogsf`, `dl` for following logs
57
- - `dprune`, `dprunea` for system cleanup
58
- - `dbx`, `dbxbuild` for buildx operations
59
- - `lzd` for lazydocker TUI
60
-
61
- ## Search
62
-
63
- You can search and navigate your filesystem with:
64
-
65
- - `rg` (ripgrep), `fd` (find)
66
- - `z <dir>` (zoxide jump)
67
-
68
- ## Text
69
-
70
- - `jq` for JSON
71
- - `bat` for quick file previews
72
-
73
- ## Terminal
74
-
75
- - `banner` for quick figlet-style banners
76
- - `rainbow` for lolcat-style output
77
- - `emoji` for an emoji picker (copies to clipboard)
78
- - `pipes` for a terminal screensaver
79
- - `cmatrix` wrapper with defaults
80
-
81
- ## Network
82
-
83
- You can debug HTTP requests with:
84
-
85
- - `curlheader`, `curlstatus`, `curltime`, `httpdebug`
86
-
87
- ## Appearance
88
-
89
- - `dot theme` to switch terminal themes (dark/light)
90
- - `dot wallpaper` to apply a wallpaper
91
- - `dot fonts` to install Nerd Fonts
92
-
93
- ## Security (opt-in)
94
-
95
- - `dot backup` to create a compressed backup
96
- - `dot encrypt-check` to check disk encryption status
97
- - `dot firewall` to apply firewall hardening
98
- - `dot telemetry` to disable telemetry
99
- - `dot dns-doh` to enable DNS-over-HTTPS
100
- - `dot lock-screen` to enforce lock screen idle settings
101
- - `dot usb-safety` to disable automount for removable media
102
-
103
- ## Fonts
104
-
105
- - `~/.dotfiles/scripts/fonts/patch-fonts.sh` to patch a font with Nerd Fonts