@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 +1,30 @@
1
1
  #!/bin/sh
2
2
  # Interactive Tour using Gum
3
- # Part of Dotfiles v0.2.480
3
+ # Part of Dotfiles v0.2.500
4
4
 
5
5
  if ! command -v gum >/dev/null; then
6
- echo "Error: 'gum' is not installed."
7
- case "$(uname -s)" in
8
- Darwin)
9
- echo "Install: brew install gum"
10
- ;;
11
- Linux)
12
- if command -v snap >/dev/null; then
13
- echo "Install: sudo snap install gum --classic"
14
- else
15
- echo "Install: go install github.com/charmbracelet/gum@latest"
16
- fi
17
- ;;
18
- *)
19
- echo "Install gum from: https://github.com/charmbracelet/gum"
20
- ;;
21
- esac
22
- exit 1
6
+ echo "Error: 'gum' is not installed."
7
+ case "$(uname -s)" in
8
+ Darwin)
9
+ echo "Install: brew install gum"
10
+ ;;
11
+ Linux)
12
+ if command -v snap >/dev/null; then
13
+ echo "Install: sudo snap install gum --classic"
14
+ else
15
+ echo "Install: go install github.com/charmbracelet/gum@latest"
16
+ fi
17
+ ;;
18
+ *)
19
+ echo "Install gum from: https://github.com/charmbracelet/gum"
20
+ ;;
21
+ esac
22
+ exit 1
23
+ fi
24
+
25
+ if [ ! -t 1 ]; then
26
+ echo "Error: This interactive tour requires a TTY."
27
+ exit 1
23
28
  fi
24
29
 
25
30
  clear
@@ -32,27 +37,28 @@ banner='██████╗ ██████╗ ████████╗
32
37
  ██████╔╝╚██████╔╝ ██║ ██║ ██║███████╗███████╗███████║
33
38
  ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
34
39
 
35
- v0.2.480 · Infrastructure‑grade shell environment'
40
+ v0.2.500 · Infrastructure‑grade shell environment'
36
41
 
37
42
  gum style \
38
- --foreground 212 --border-foreground 212 --border double \
39
- --align center --margin "1 2" --padding "1 2" \
40
- "$banner"
43
+ --foreground 212 --border-foreground 212 --border double \
44
+ --align center --margin "1 2" --padding "1 2" \
45
+ "$banner"
41
46
 
42
47
  echo ""
43
48
  gum confirm "Start a quick tour?" || exit 0
44
49
  clear
45
50
 
46
- # Slide 1: Start here
51
+ # Slide 1: Shell & configuration
47
52
  gum style \
48
- --foreground 99 --border rounded --padding "1 2" --margin "1 2" \
49
- "Start here" \
50
- "Apply your setup. Keep it repeatable." \
51
- " " \
52
- "dot apply # Apply your dotfiles" \
53
- "dot update # Pull and apply updates" \
54
- "dot diff # Review local changes" \
55
- "dot drift # Snapshot config drift"
53
+ --foreground 99 --border rounded --padding "1 2" --margin "1 2" \
54
+ "Shell & configuration" \
55
+ "Default shell: Fish. Change it in .chezmoidata.toml." \
56
+ " " \
57
+ "dot apply # Apply dotfiles" \
58
+ "dot update # Pull and apply updates" \
59
+ "dot diff # Review local changes" \
60
+ "dot drift # Snapshot config drift" \
61
+ "dot help # Browse all commands"
56
62
 
57
63
  echo ""
58
64
  gum confirm "Next: Check health" || exit 0
@@ -60,13 +66,13 @@ clear
60
66
 
61
67
  # Slide 2: Diagnostics
62
68
  gum style \
63
- --foreground 75 --border rounded --padding "1 2" --margin "1 2" \
64
- "Check health" \
65
- "Know what’s working. See what needs attention." \
66
- " " \
67
- "dot doctor # Health checks" \
68
- "dot history # History analysis" \
69
- "dot benchmark # Startup timing"
69
+ --foreground 75 --border rounded --padding "1 2" --margin "1 2" \
70
+ "Check health" \
71
+ "Know what’s working. See what needs attention." \
72
+ " " \
73
+ "dot doctor # Health checks" \
74
+ "dot history # History analysis" \
75
+ "dot benchmark # Startup timing"
70
76
 
71
77
  echo ""
72
78
  gum confirm "Next: Secrets" || exit 0
@@ -74,14 +80,14 @@ clear
74
80
 
75
81
  # Slide 3: Secrets
76
82
  gum style \
77
- --foreground 214 --border rounded --padding "1 2" --margin "1 2" \
78
- "Secrets (age)" \
79
- "Keep sensitive data local and encrypted." \
80
- " " \
81
- "dot secrets-init # Create a key" \
82
- "dot secrets # Edit secrets" \
83
- "dot secrets-create # New encrypted file" \
84
- "dot ssh-key # Encrypt an SSH key"
83
+ --foreground 214 --border rounded --padding "1 2" --margin "1 2" \
84
+ "Secrets (age)" \
85
+ "Keep sensitive data local and encrypted." \
86
+ " " \
87
+ "dot secrets-init # Create a key" \
88
+ "dot secrets # Edit secrets" \
89
+ "dot secrets-create # New encrypted file" \
90
+ "dot ssh-key # Encrypt an SSH key"
85
91
 
86
92
  echo ""
87
93
  gum confirm "Next: Security (opt‑in)" || exit 0
@@ -89,16 +95,16 @@ clear
89
95
 
90
96
  # Slide 4: Security (opt-in)
91
97
  gum style \
92
- --foreground 150 --border double --padding "1 2" --margin "1 2" \
93
- "Security (opt‑in)" \
94
- "Explicit by design. Nothing changes without your choice." \
95
- " " \
96
- "dot firewall # Firewall hardening" \
97
- "dot telemetry # Disable OS telemetry" \
98
- "dot dns-doh # DNS‑over‑HTTPS (Linux)" \
99
- "dot lock-screen # Idle lock settings" \
100
- "dot usb-safety # Disable automount" \
101
- "dot encrypt-check # Disk encryption status"
98
+ --foreground 150 --border double --padding "1 2" --margin "1 2" \
99
+ "Security (opt‑in)" \
100
+ "Explicit by design. Nothing changes without your choice." \
101
+ " " \
102
+ "dot firewall # Firewall hardening" \
103
+ "dot telemetry # Disable OS telemetry" \
104
+ "dot dns-doh # DNS‑over‑HTTPS (Linux)" \
105
+ "dot lock-screen # Idle lock settings" \
106
+ "dot usb-safety # Disable automount" \
107
+ "dot encrypt-check # Disk encryption status"
102
108
 
103
109
  echo ""
104
110
  gum confirm "Next: Themes & UX" || exit 0
@@ -106,15 +112,17 @@ clear
106
112
 
107
113
  # Slide 5: Themes & UX
108
114
  gum style \
109
- --foreground 212 --border rounded --padding "1 2" --margin "1 2" \
110
- "Themes & UX" \
111
- "Make it yours without changing how it works." \
112
- " " \
113
- "dot theme # Switch theme" \
114
- "dot wallpaper # Apply wallpaper" \
115
- "dot fonts # Install Nerd Fonts" \
116
- "dot keys # Keybindings" \
117
- "dot tools # Curated utilities"
115
+ --foreground 212 --border rounded --padding "1 2" --margin "1 2" \
116
+ "Themes & UX" \
117
+ "Make it yours without changing how it works." \
118
+ " " \
119
+ "dot theme # Switch theme" \
120
+ "dot wallpaper # Apply wallpaper" \
121
+ "dot fonts # Install Nerd Fonts" \
122
+ "dot keys # Keybindings" \
123
+ "dot tools # Curated utilities" \
124
+ " " \
125
+ "Edit ~/.dotfiles/.chezmoidata.toml for shell, features, and profiles."
118
126
 
119
127
  echo ""
120
128
  gum confirm "Next: Projects & Sandbox" || exit 0
@@ -122,16 +130,46 @@ clear
122
130
 
123
131
  # Slide 6: Projects & Sandbox
124
132
  gum style \
125
- --foreground 111 --border rounded --padding "1 2" --margin "1 2" \
126
- "Projects & sandbox" \
127
- "Start quickly. Experiment safely." \
128
- " " \
129
- "dot new <lang> <name> # Templates: python, go, node" \
130
- "dot sandbox # Safe preview (Docker/Podman)" \
131
- "dot edit # Open source in editor"
133
+ --foreground 111 --border rounded --padding "1 2" --margin "1 2" \
134
+ "Projects & sandbox" \
135
+ "Start quickly. Experiment safely." \
136
+ " " \
137
+ "dot new <lang> <name> # Templates: python, go, node" \
138
+ "dot sandbox # Safe preview (Docker/Podman)" \
139
+ "dot edit # Open source in editor"
140
+
141
+ echo ""
142
+ gum confirm "Next: Linting & Performance" || exit 0
143
+ clear
144
+
145
+ # Slide 7: Linting & Performance
146
+ gum style \
147
+ --foreground 214 --border rounded --padding "1 2" --margin "1 2" \
148
+ "Linting & Performance" \
149
+ "Keep your scripts clean and your shell fast." \
150
+ " " \
151
+ "dot lint # ShellCheck + shfmt" \
152
+ "dot lint --fix # Auto-format scripts" \
153
+ "dot lint --check # CI mode (exit 1 on failure)" \
154
+ "dot benchmark --waterfall # Startup waterfall chart" \
155
+ "dot perf # Quick performance timing"
132
156
 
133
157
  echo ""
158
+ gum confirm "Next: Finish" || exit 0
159
+ clear
160
+
161
+ # Final summary
134
162
  gum style \
135
- --foreground 212 --margin "1 2" \
136
- "You’re all set. Tip: run 'dot update' weekly to stay current."
163
+ --foreground 212 --border double --padding "1 2" --margin "1 2" \
164
+ "You’re all set!" \
165
+ " " \
166
+ "Tip: run ‘dot update’ weekly to stay current."
167
+
137
168
  echo ""
169
+ choice=$(gum choose "Run dot doctor" "Run dot benchmark" "Open docs" "Exit")
170
+ case "$choice" in
171
+ "Run dot doctor") exec dot doctor ;;
172
+ "Run dot benchmark") exec dot benchmark ;;
173
+ "Open docs") exec dot docs ;;
174
+ "Exit") exit 0 ;;
175
+ esac
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ # Universal directory navigation with history support
3
+ # Works across Bash, Zsh, and Fish
4
+
5
+ levels=$1
6
+ target=".."
7
+
8
+ case "$levels" in
9
+ 2) target="../.." ;;
10
+ 3) target="../../.." ;;
11
+ 4) target="../../../../.." ;;
12
+ 5) target="../../../../../.." ;;
13
+ *) target=".." ;;
14
+ esac
15
+
16
+ # If cd_with_history (a dotfiles function) is available, use it.
17
+ # Since this script runs in a subshell, we can't easily call parent functions.
18
+ # Instead, we just output the target or rely on the shell's own history.
19
+
20
+ cd "$target" || exit 1
21
+ $SHELL
@@ -1,6 +1,25 @@
1
1
  #!/usr/bin/env bash
2
- # Update all system packages and tools
3
- # Usage: update [--all|--brew|--apt|--npm|--cargo|--pip]
2
+ ## System Update — Update all system packages and tools.
3
+ ##
4
+ ## Comprehensive update utility for multiple package managers.
5
+ ## Supports selective updates and combined operations.
6
+ ##
7
+ ## # Requirements
8
+ ## - Various package managers (auto-detected)
9
+ ## - sudo: For system package updates
10
+ ##
11
+ ## # Usage
12
+ ## update # Update all detected managers
13
+ ## update --brew # Update Homebrew only
14
+ ## update --apt # Update APT only
15
+ ## update --npm # Update NPM globals only
16
+ ## update --cargo # Update Rust packages
17
+ ## update --pip # Update Python packages
18
+ ##
19
+ ## # Platform Notes
20
+ ## - macOS: Updates Homebrew, npm, cargo, pip
21
+ ## - Linux: Updates apt/dnf, npm, cargo, pip
22
+ ## - Also checks chezmoi dotfiles status
4
23
 
5
24
  set -euo pipefail
6
25
 
@@ -9,9 +28,9 @@ GREEN='\033[0;32m'
9
28
  YELLOW='\033[1;33m'
10
29
  NC='\033[0m'
11
30
 
12
- log_section() { echo -e "\n${CYAN}━━━ $1 ━━━${NC}"; }
13
- log_success() { echo -e "${GREEN}✓${NC} $1"; }
14
- log_skip() { echo -e "${YELLOW}○${NC} $1 (skipped)"; }
31
+ log_section() { printf '%b\n' "\n${CYAN}--- $1 ---${NC}"; }
32
+ log_success() { printf '%b\n' "${GREEN}Done:${NC} $1"; }
33
+ log_skip() { printf '%b\n' "${YELLOW}Skipped:${NC} $1"; }
15
34
 
16
35
  # Parse arguments
17
36
  UPDATE_ALL=true
@@ -24,11 +43,26 @@ UPDATE_PIP=false
24
43
  for arg in "$@"; do
25
44
  case "$arg" in
26
45
  --all) UPDATE_ALL=true ;;
27
- --brew) UPDATE_BREW=true; UPDATE_ALL=false ;;
28
- --apt) UPDATE_APT=true; UPDATE_ALL=false ;;
29
- --npm) UPDATE_NPM=true; UPDATE_ALL=false ;;
30
- --cargo) UPDATE_CARGO=true; UPDATE_ALL=false ;;
31
- --pip) UPDATE_PIP=true; UPDATE_ALL=false ;;
46
+ --brew)
47
+ UPDATE_BREW=true
48
+ UPDATE_ALL=false
49
+ ;;
50
+ --apt)
51
+ UPDATE_APT=true
52
+ UPDATE_ALL=false
53
+ ;;
54
+ --npm)
55
+ UPDATE_NPM=true
56
+ UPDATE_ALL=false
57
+ ;;
58
+ --cargo)
59
+ UPDATE_CARGO=true
60
+ UPDATE_ALL=false
61
+ ;;
62
+ --pip)
63
+ UPDATE_PIP=true
64
+ UPDATE_ALL=false
65
+ ;;
32
66
  esac
33
67
  done
34
68
 
@@ -105,4 +139,4 @@ if $UPDATE_ALL; then
105
139
  fi
106
140
  fi
107
141
 
108
- echo -e "\n${GREEN}Update complete!${NC}"
142
+ printf '%b\n' "\n${GREEN}Update complete!${NC}"
@@ -1,6 +1,24 @@
1
1
  #!/usr/bin/env bash
2
- # UUID generator
3
- # Usage: uuid [count] [--upper] [--no-dashes]
2
+ ## UUID Generator — Generate random UUIDs (v4).
3
+ ##
4
+ ## Generates one or more random UUIDs with optional formatting.
5
+ ## Supports uppercase output and dash removal.
6
+ ##
7
+ ## # Requirements
8
+ ## - uuidgen: Primary generator (util-linux or macOS)
9
+ ## - /proc/sys/kernel/random/uuid: Linux kernel fallback
10
+ ## - od + /dev/urandom: Universal fallback
11
+ ##
12
+ ## # Usage
13
+ ## uuid # Generate 1 UUID
14
+ ## uuid 5 # Generate 5 UUIDs
15
+ ## uuid -u # Uppercase UUID
16
+ ## uuid -n # No dashes (compact format)
17
+ ## uuid 3 -u -n # 3 uppercase compact UUIDs
18
+ ##
19
+ ## # Platform Notes
20
+ ## - Linux: Uses uuidgen or kernel random
21
+ ## - macOS: Uses uuidgen
4
22
 
5
23
  set -euo pipefail
6
24
 
@@ -10,9 +28,15 @@ NO_DASHES=false
10
28
 
11
29
  while [[ $# -gt 0 ]]; do
12
30
  case "$1" in
13
- -u|--upper) UPPER=true; shift ;;
14
- -n|--no-dashes) NO_DASHES=true; shift ;;
15
- -h|--help)
31
+ -u | --upper)
32
+ UPPER=true
33
+ shift
34
+ ;;
35
+ -n | --no-dashes)
36
+ NO_DASHES=true
37
+ shift
38
+ ;;
39
+ -h | --help)
16
40
  echo "Usage: uuid [count] [OPTIONS]"
17
41
  echo ""
18
42
  echo "Options:"
@@ -26,8 +50,14 @@ while [[ $# -gt 0 ]]; do
26
50
  echo " uuid -u # Uppercase UUID"
27
51
  exit 0
28
52
  ;;
29
- [0-9]*) COUNT="$1"; shift ;;
30
- *) echo "Unknown option: $1"; exit 1 ;;
53
+ [0-9]*)
54
+ COUNT="$1"
55
+ shift
56
+ ;;
57
+ *)
58
+ echo "Unknown option: $1"
59
+ exit 1
60
+ ;;
31
61
  esac
32
62
  done
33
63
 
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ # WSL-specific Windows Interop shim (win)
4
+ # Intelligently handles path translation using wslpath
5
+ # Part of Dotfiles v0.2.495
6
+
7
+ set -euo pipefail
8
+
9
+ if ! grep -qi microsoft /proc/version 2>/dev/null; then
10
+ echo "This script is only for WSL systems." >&2
11
+ exit 1
12
+ fi
13
+
14
+ cmd="$1"
15
+ shift || {
16
+ echo "Usage: win <windows_command> [args]"
17
+ exit 1
18
+ }
19
+
20
+ # Translate paths in arguments
21
+ args=()
22
+ for arg in "$@"; do
23
+ if [ -e "$arg" ]; then
24
+ translated=$(wslpath -w "$arg" 2>/dev/null || echo "$arg")
25
+ args+=("$translated")
26
+ else
27
+ args+=("$arg")
28
+ fi
29
+ done
30
+
31
+ # Execute the windows command with translated paths
32
+ exec "$cmd" "${args[@]}"
@@ -1,20 +1,38 @@
1
1
  #!/usr/bin/env bash
2
- # YAML validator
3
- # Usage: yamlv <file> | yamlv (reads stdin)
2
+ ## YAML Validator — Validate YAML syntax.
3
+ ##
4
+ ## Validates YAML syntax and reports success or failure.
5
+ ## Supports quiet mode for scripting.
6
+ ##
7
+ ## # Requirements
8
+ ## - yq: Primary YAML processor (recommended)
9
+ ## - python3 + pyyaml: Fallback validator
10
+ ## - ruby + yaml: Secondary fallback
11
+ ##
12
+ ## # Usage
13
+ ## yamlv file.yaml # Validate YAML file
14
+ ## yamlv < file.yaml # Validate from stdin
15
+ ## yamlv -q file.yaml # Quiet mode (exit code only)
16
+ ##
17
+ ## # Platform Notes
18
+ ## - All platforms: Requires yq, python3+pyyaml, or ruby
4
19
 
5
20
  set -euo pipefail
6
21
 
7
22
  QUIET=false
8
- [[ "${1:-}" == "-q" || "${1:-}" == "--quiet" ]] && { QUIET=true; shift; }
23
+ [[ "${1:-}" == "-q" || "${1:-}" == "--quiet" ]] && {
24
+ QUIET=true
25
+ shift
26
+ }
9
27
 
10
28
  validate_yaml() {
11
29
  local input="$1"
12
30
  if command -v yq >/dev/null 2>&1; then
13
- yq -e '.' <<< "$input" >/dev/null 2>&1
31
+ yq -e '.' <<<"$input" >/dev/null 2>&1
14
32
  elif command -v python3 >/dev/null 2>&1; then
15
33
  python3 -c "import yaml; yaml.safe_load('''$input''')" 2>/dev/null
16
34
  elif command -v ruby >/dev/null 2>&1; then
17
- ruby -ryaml -e "YAML.safe_load(STDIN.read)" <<< "$input" 2>/dev/null
35
+ ruby -ryaml -e "YAML.safe_load(STDIN.read)" <<<"$input" 2>/dev/null
18
36
  else
19
37
  echo "Error: yq, python3+pyyaml, or ruby required"
20
38
  exit 1
@@ -31,9 +49,9 @@ else
31
49
  fi
32
50
 
33
51
  if validate_yaml "$INPUT"; then
34
- $QUIET || echo "Valid YAML ($SOURCE)"
52
+ $QUIET || echo "Valid YAML ($SOURCE)"
35
53
  exit 0
36
54
  else
37
- echo "Invalid YAML ($SOURCE)"
55
+ echo "Invalid YAML ($SOURCE)"
38
56
  exit 1
39
57
  fi
@@ -3,52 +3,70 @@
3
3
  # Source this file or place in /etc/bash_completion.d/ or ~/.local/share/bash-completion/completions/
4
4
 
5
5
  _dot_completions() {
6
- local cur prev commands
7
- COMPREPLY=()
8
- cur="${COMP_WORDS[COMP_CWORD]}"
9
- prev="${COMP_WORDS[COMP_CWORD-1]}"
6
+ local cur prev commands
7
+ COMPREPLY=()
8
+ cur="${COMP_WORDS[COMP_CWORD]}"
9
+ prev="${COMP_WORDS[COMP_CWORD - 1]}"
10
10
 
11
- # Main commands
12
- commands="apply sync update add diff status remove cd drift history doctor keys tools sandbox benchmark tune secrets secrets-init secrets-create ssh-key firewall telemetry dns-doh encrypt-check backup lock-screen usb-safety fonts wallpaper theme upgrade edit docs new log-rotate learn --version help"
11
+ # Main commands
12
+ commands="apply sync update add diff status remove cd drift verify history doctor heal health security-score scorecard perf conflicts locks snapshot keys tools aliases sandbox benchmark tune secrets env secrets-init secrets-create ssh-key firewall telemetry dns-doh encrypt-check backup lock-screen usb-safety fonts wallpaper theme upgrade edit docs new log-rotate setup learn --version help"
13
13
 
14
- # Subcommand completions
15
- case "${prev}" in
16
- dot)
17
- COMPREPLY=( $(compgen -W "${commands}" -- "${cur}") )
18
- return 0
19
- ;;
20
- add)
21
- # Complete file paths
22
- COMPREPLY=( $(compgen -f -- "${cur}") )
23
- return 0
24
- ;;
25
- new)
26
- # Complete template types
27
- local templates="python go node"
28
- COMPREPLY=( $(compgen -W "${templates}" -- "${cur}") )
29
- return 0
30
- ;;
31
- tools)
32
- # Complete tools subcommands
33
- local subcommands="install"
34
- COMPREPLY=( $(compgen -W "${subcommands}" -- "${cur}") )
35
- return 0
36
- ;;
37
- theme)
38
- # Complete theme options
39
- local themes="dark light"
40
- COMPREPLY=( $(compgen -W "${themes}" -- "${cur}") )
41
- return 0
42
- ;;
43
- keys)
44
- # Allow any search term
45
- return 0
46
- ;;
47
- *)
48
- COMPREPLY=( $(compgen -W "${commands}" -- "${cur}") )
49
- return 0
50
- ;;
51
- esac
14
+ # Subcommand completions
15
+ case "${prev}" in
16
+ dot)
17
+ COMPREPLY=($(compgen -W "${commands}" -- "${cur}"))
18
+ return 0
19
+ ;;
20
+ add)
21
+ # Complete file paths
22
+ COMPREPLY=($(compgen -f -- "${cur}"))
23
+ return 0
24
+ ;;
25
+ new)
26
+ # Complete template types
27
+ local templates="python go node"
28
+ COMPREPLY=($(compgen -W "${templates}" -- "${cur}"))
29
+ return 0
30
+ ;;
31
+ tools)
32
+ # Complete tools subcommands
33
+ local subcommands="install"
34
+ COMPREPLY=($(compgen -W "${subcommands}" -- "${cur}"))
35
+ return 0
36
+ ;;
37
+ aliases)
38
+ # Complete alias inspection subcommands
39
+ local subcommands="list search why stats tiers"
40
+ COMPREPLY=($(compgen -W "${subcommands}" -- "${cur}"))
41
+ return 0
42
+ ;;
43
+ secrets)
44
+ # Complete secrets subcommands
45
+ local subcommands="edit set get list load provider"
46
+ COMPREPLY=($(compgen -W "${subcommands}" -- "${cur}"))
47
+ return 0
48
+ ;;
49
+ env)
50
+ # Complete env subcommands
51
+ local subcommands="load"
52
+ COMPREPLY=($(compgen -W "${subcommands}" -- "${cur}"))
53
+ return 0
54
+ ;;
55
+ theme)
56
+ # Complete theme options
57
+ local themes="dark light"
58
+ COMPREPLY=($(compgen -W "${themes}" -- "${cur}"))
59
+ return 0
60
+ ;;
61
+ keys)
62
+ # Allow any search term
63
+ return 0
64
+ ;;
65
+ *)
66
+ COMPREPLY=($(compgen -W "${commands}" -- "${cur}"))
67
+ return 0
68
+ ;;
69
+ esac
52
70
  }
53
71
 
54
72
  complete -F _dot_completions dot