@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
@@ -5,7 +5,7 @@ Welcome to your universally compatible, high-performance dotfiles configuration,
5
5
  ## Discover
6
6
 
7
7
  - **Universal Support**: Works seamlessly on macOS, Linux (Ubuntu/Debian), and Windows (WSL).
8
- - **Instant Startup**: Optimized with `zcompile` and lazy-loading for <10ms startup time.
8
+ - **Fast Startup**: Optimized with `zcompile` and lazy-loading. Benchmarks vary by machine; use `DOTFILES_FAST=1` for the quickest first prompt.
9
9
  - **Modern Core**: Replaces legacy Unix tools with Rust-based alternatives:
10
10
  - `eza` (ls)
11
11
  - `bat` (cat)
@@ -23,10 +23,10 @@ Welcome to your universally compatible, high-performance dotfiles configuration,
23
23
  ## Get started
24
24
 
25
25
  ### Install
26
- To install these dotfiles on a new machine, simply run:
26
+ To install these dotfiles on a new machine, run:
27
27
 
28
28
  ```bash
29
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.480/install.sh)"
29
+ sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.500/install.sh)"
30
30
  ```
31
31
 
32
32
  This command will:
@@ -94,7 +94,7 @@ If you are migrating from an old `~/.dotfiles` setup:
94
94
 
95
95
  The configuration is managed in `~/.dotfiles`.
96
96
 
97
- ```
97
+ ```text
98
98
  ~/.dotfiles/
99
99
  ├── dot_zshrc.tmpl # Main Zsh configuration (template)
100
100
  ├── dot_vimrc # Vim configuration
@@ -237,7 +237,7 @@ Available themes:
237
237
 
238
238
  ### DevContainer and Codespaces
239
239
 
240
- ```
240
+ ```text
241
241
  .devcontainer/devcontainer.json
242
242
  ```
243
243
 
@@ -258,10 +258,10 @@ Available themes:
258
258
  ## Performance
259
259
  - **Lazy Loading**: Heavy tools (like `nvm`, `rbenv`) are lazy-loaded. They only initialize when you type the command.
260
260
  - **Zcompile**: Your `.zshrc` and generated config files are automatically compiled to `.zwc` bytecode for faster parsing.
261
+ - **Fast Mode**: Set `DOTFILES_FAST=1` to skip heavy startup work (plugins, completions, prompt tooling, AI helpers) for the quickest possible first prompt.
262
+ - **Ultra-Fast Mode**: Set `DOTFILES_ULTRA_FAST=1` for minimal init (no rc.d, plugins, completions, or prompt tooling).
263
+ - **Perf Mode**: `dot perf --precmd` measures first-prompt work (precmd hooks).
264
+ - **Deferred Hooks**: Use `DOTFILES_DEFER_COMPINIT=1`, `DOTFILES_DEFER_TOOLS=1`, and `DOTFILES_DEFER_ZINIT_MODE=preexec` to move work after the first command.
261
265
 
262
266
  ## Test
263
267
  This repository includes GitHub Actions CI to test the configuration on macOS, Ubuntu, and Windows for every Pull Request.
264
-
265
- ---
266
-
267
- Made with ❤️ by [Sebastien Rousseau](https://github.com/sebastienrousseau)
@@ -0,0 +1,65 @@
1
+ {{- /* Generate Instant-Load Command List for ALS */ -}}
2
+ {{- $templateDir := .chezmoi.sourceDir -}}
3
+ {{- $aliasFiles := glob (joinPath $templateDir ".chezmoitemplates/aliases/**/*.aliases.sh") -}}
4
+ {{- $db := list -}}
5
+
6
+ {{- range $aliasFiles -}}
7
+ {{- $category := base (dir .) -}}
8
+ {{- if eq $category "aliases" }}{{ $category = base . | replace ".aliases.sh" "" }}{{ end -}}
9
+ {{- $category = title $category -}}
10
+
11
+ {{- $fileContent := include . -}}
12
+ {{- $lastComment := "" -}}
13
+
14
+ {{- range (splitList "\n" $fileContent) -}}
15
+ {{- $line := trim . -}}
16
+
17
+ {{- if (hasPrefix "#" $line) -}}
18
+ {{- $comment := $line | trimPrefix "#" | trim -}}
19
+ {{- if and (not (contains "shellcheck" $comment)) (not (contains "Copyright" $comment)) -}}
20
+ {{- $lastComment = $comment -}}
21
+ {{- end -}}
22
+ {{- else if (hasPrefix "alias " $line) -}}
23
+ {{- $working := $line | replace "alias " "" -}}
24
+ {{- $parts := splitList "=" $working -}}
25
+
26
+ {{- if (ge (len $parts) 2) -}}
27
+ {{- $name := index $parts 0 | trim -}}
28
+ {{- $rest := slice $parts 1 | join "=" -}}
29
+
30
+ {{- $cmdDesc := splitList "#" $rest -}}
31
+ {{- $cmd := index $cmdDesc 0 | trim | trimPrefix "'" | trimSuffix "'" | trimPrefix "\"" | trimSuffix "\"" | trim -}}
32
+
33
+ {{- $desc := "" -}}
34
+ {{- if (ge (len $cmdDesc) 2) -}}
35
+ {{- $desc = slice $cmdDesc 1 | join "#" | trim -}}
36
+ {{- else -}}
37
+ {{- $desc = $lastComment -}}
38
+ {{- end -}}
39
+
40
+ {{- if eq $desc "" }}{{ $desc = "Shell command" }}{{ end -}}
41
+
42
+ {{- if and (ne $name "") (ne $cmd "") -}}
43
+ {{- $entry := printf "%s|%s|%s|%s" $category $name $cmd $desc -}}
44
+ {{- $db = append $db $entry -}}
45
+ {{- end -}}
46
+ {{- end -}}
47
+ {{- end -}}
48
+ {{- end -}}
49
+ {{- end -}}
50
+
51
+ {{- /* ANSI Escape Codes (Real Bytes) */ -}}
52
+ {{- $esc := "\x1b" -}}
53
+ {{- $magenta := printf "%s[35m" $esc -}}
54
+ {{- $cyan := printf "%s[36m" $esc -}}
55
+ {{- $dim := printf "%s[90m" $esc -}}
56
+ {{- $reset := printf "%s[0m" $esc -}}
57
+
58
+ {{- range (sortAlpha $db) -}}
59
+ {{- $p := splitList "|" . -}}
60
+ {{- $cat := index $p 0 -}}
61
+ {{- $name := index $p 1 -}}
62
+ {{- $cmd := index $p 2 -}}
63
+ {{- $desc := index $p 3 -}}
64
+ {{- printf "%s[%s]%s %s%s%s: %s %s— %s%s |SEP|%s|SEP|%s\n" $magenta $cat $reset $cyan $name $reset $cmd $dim $desc $reset $cmd $name -}}
65
+ {{- end -}}
@@ -0,0 +1,20 @@
1
+ # Auto-list directory contents on cd (zsh only)
2
+ # Uses eza when available, otherwise falls back to ls.
3
+
4
+ autoload -Uz add-zsh-hook
5
+
6
+ dot_auto_ls() {
7
+ [[ -o interactive ]] || return
8
+ [[ -t 1 ]] || return
9
+ [[ "${DOTFILES_AUTO_LS:-1}" == "1" ]] || return
10
+ [[ "${PWD}" == "${_DOTFILES_AUTO_LS_LAST:-}" ]] && return
11
+ _DOTFILES_AUTO_LS_LAST="${PWD}"
12
+
13
+ if command -v eza >/dev/null 2>&1; then
14
+ eza -alF --sort Name --icons --group-directories-first
15
+ else
16
+ command ls -alF
17
+ fi
18
+ }
19
+
20
+ add-zsh-hook chpwd dot_auto_ls
@@ -6,63 +6,63 @@
6
6
  #
7
7
 
8
8
  suggest_context_commands() {
9
- local suggestions=()
10
-
11
- # 1. Node.js / Javascript / TypeScript
12
- if [[ -f "package.json" ]]; then
13
- suggestions+=("npm start" "npm test" "npm run build")
14
- # Check for yarn
15
- if [[ -f "yarn.lock" ]]; then
16
- suggestions+=("yarn start" "yarn test" "yarn build")
17
- fi
18
- # Check for pnpm
19
- if [[ -f "pnpm-lock.yaml" ]]; then
20
- suggestions+=("pnpm start" "pnpm test")
21
- fi
22
- fi
23
-
24
- # 2. Rust
25
- if [[ -f "Cargo.toml" ]]; then
26
- suggestions+=("cargo run" "cargo test" "cargo build" "cargo check")
27
- fi
28
-
29
- # 3. Go
30
- if [[ -f "go.mod" ]]; then
31
- suggestions+=("go run ." "go test ./..." "go build")
32
- fi
33
-
34
- # 4. Python
35
- if [[ -f "pyproject.toml" ]] || [[ -f "requirements.txt" ]]; then
36
- suggestions+=("python -m venv .venv" "source .venv/bin/activate")
37
- if [[ -f "main.py" ]]; then
38
- suggestions+=("python main.py")
39
- fi
40
- if [[ -f "app.py" ]]; then
41
- suggestions+=("python app.py")
42
- fi
9
+ local suggestions=()
10
+
11
+ # 1. Node.js / Javascript / TypeScript
12
+ if [[ -f "package.json" ]]; then
13
+ suggestions+=("npm start" "npm test" "npm run build")
14
+ # Check for yarn
15
+ if [[ -f "yarn.lock" ]]; then
16
+ suggestions+=("yarn start" "yarn test" "yarn build")
43
17
  fi
44
-
45
- # 5. Docker
46
- if [[ -f "Dockerfile" ]]; then
47
- suggestions+=("docker build -t . ." "docker run -it <image>")
18
+ # Check for pnpm
19
+ if [[ -f "pnpm-lock.yaml" ]]; then
20
+ suggestions+=("pnpm start" "pnpm test")
48
21
  fi
49
- if [[ -f "docker-compose.yml" ]] || [[ -f "compose.yaml" ]]; then
50
- suggestions+=("docker compose up -d" "docker compose down")
22
+ fi
23
+
24
+ # 2. Rust
25
+ if [[ -f "Cargo.toml" ]]; then
26
+ suggestions+=("cargo run" "cargo test" "cargo build" "cargo check")
27
+ fi
28
+
29
+ # 3. Go
30
+ if [[ -f "go.mod" ]]; then
31
+ suggestions+=("go run ." "go test ./..." "go build")
32
+ fi
33
+
34
+ # 4. Python
35
+ if [[ -f "pyproject.toml" ]] || [[ -f "requirements.txt" ]]; then
36
+ suggestions+=("python -m venv .venv" "source .venv/bin/activate")
37
+ if [[ -f "main.py" ]]; then
38
+ suggestions+=("python main.py")
51
39
  fi
52
-
53
- # Display suggestions
54
- if [[ ${#suggestions[@]} -gt 0 ]]; then
55
- print -P "%F{cyan} Context Suggestions:%f"
56
- for cmd in "${suggestions[@]}"; do
57
- print -P " %F{green}%f $cmd"
58
- done
59
- else
60
- echo "No context-specific suggestions found for this directory."
40
+ if [[ -f "app.py" ]]; then
41
+ suggestions+=("python app.py")
61
42
  fi
43
+ fi
44
+
45
+ # 5. Docker
46
+ if [[ -f "Dockerfile" ]]; then
47
+ suggestions+=("docker build -t . ." "docker run -it <image>")
48
+ fi
49
+ if [[ -f "docker-compose.yml" ]] || [[ -f "compose.yaml" ]]; then
50
+ suggestions+=("docker compose up -d" "docker compose down")
51
+ fi
52
+
53
+ # Display suggestions
54
+ if [[ ${#suggestions[@]} -gt 0 ]]; then
55
+ print -P "%F{cyan} Context Suggestions:%f"
56
+ for cmd in "${suggestions[@]}"; do
57
+ print -P " %F{green}%f $cmd"
58
+ done
59
+ else
60
+ echo "No context-specific suggestions found for this directory."
61
+ fi
62
62
  }
63
63
 
64
64
  # Alias for manual invocation
65
65
  alias suggest="suggest_context_commands"
66
-
66
+
67
67
  # Optional: Hook into chpwd to show suggestions on cd (commented out by default to avoid noise)
68
68
  # add-zsh-hook chpwd suggest_context_commands
@@ -6,39 +6,39 @@
6
6
  #
7
7
 
8
8
  analyze_last_error() {
9
- # local exit_code="$?" <-- unused
10
- local hist_entry
11
-
12
- # Get the last history entry (command that just ran)
13
- # fc -ln -1 returns the commands from the last 1 event
14
- hist_entry=$(fc -ln -1)
15
-
16
- if [[ -z "$hist_entry" ]]; then
17
- echo "No history found to analyze."
18
- return 1
9
+ # local exit_code="$?" <-- unused
10
+ local hist_entry
11
+
12
+ # Get the last history entry (command that just ran)
13
+ # fc -ln -1 returns the commands from the last 1 event
14
+ hist_entry=$(fc -ln -1)
15
+
16
+ if [[ -z "$hist_entry" ]]; then
17
+ echo "No history found to analyze."
18
+ return 1
19
+ fi
20
+
21
+ echo " Analyzing failure: '$hist_entry'"
22
+
23
+ local prompt="I ran the command: '$hist_entry' and it failed. Please explain why this might have happened and suggest a fix. Be concise."
24
+
25
+ # Call the ai_core wrapper
26
+ # We call it directly from the path or rely on PATH if configured
27
+ if [[ -f "${HOME}/.local/bin/ai_core" ]]; then
28
+ "${HOME}/.local/bin/ai_core" query "$prompt"
29
+ else
30
+ local source_dir="${CHEZMOI_SOURCE_DIR:-${HOME}/.dotfiles}"
31
+ if [[ ! -d "$source_dir" && -d "${HOME}/.local/share/chezmoi" ]]; then
32
+ source_dir="${HOME}/.local/share/chezmoi"
19
33
  fi
20
34
 
21
- echo " Analyzing failure: '$hist_entry'"
22
-
23
- local prompt="I ran the command: '$hist_entry' and it failed. Please explain why this might have happened and suggest a fix. Be concise."
24
-
25
- # Call the ai_core wrapper
26
- # We call it directly from the path or rely on PATH if configured
27
- if [[ -f "${HOME}/.local/bin/ai_core" ]]; then
28
- "${HOME}/.local/bin/ai_core" query "$prompt"
35
+ if [[ -f "${source_dir}/dot_local/bin/ai_core" ]]; then
36
+ # Fallback for dev/testing location before chezmoi apply
37
+ "${source_dir}/dot_local/bin/ai_core" query "$prompt"
29
38
  else
30
- local source_dir="${CHEZMOI_SOURCE_DIR:-${HOME}/.dotfiles}"
31
- if [[ ! -d "$source_dir" && -d "${HOME}/.local/share/chezmoi" ]]; then
32
- source_dir="${HOME}/.local/share/chezmoi"
33
- fi
34
-
35
- if [[ -f "${source_dir}/dot_local/bin/ai_core" ]]; then
36
- # Fallback for dev/testing location before chezmoi apply
37
- "${source_dir}/dot_local/bin/ai_core" query "$prompt"
38
- else
39
- echo "Error: ai_core wrapper not found."
40
- fi
39
+ echo "Error: ai_core wrapper not found."
41
40
  fi
41
+ fi
42
42
  }
43
43
 
44
44
  # Alias '??' to analyze data
@@ -1,14 +1,14 @@
1
1
  # Starship Configuration
2
2
  # https://starship.rs/config/
3
3
 
4
- command_timeout = 500
4
+ # Some toolchains (notably Node via mise on macOS) can exceed 2s on cold start.
5
+ # Raise timeout to avoid spurious prompt warnings.
6
+ command_timeout = 5000
5
7
  add_newline = true
6
- {{- $theme := default "catppuccin-mocha" .theme -}}
7
- {{- if eq $theme "catppuccin-latte" }}
8
- palette = "catppuccin_latte"
9
- {{- else }}
10
- palette = "catppuccin_mocha"
11
- {{- end }}
8
+ {{- $t := index .themes (default "macos-monterey-dark" .theme) -}}
9
+ {{- if not $t -}}{{- $t = index .themes "macos-monterey-dark" -}}{{- end }}
10
+ # Palette driven by starship_palette in .chezmoidata/themes.toml
11
+ palette = "{{ $t.app.starship_palette }}"
12
12
 
13
13
  [character]
14
14
  success_symbol = "[➜](bold green)"
@@ -44,6 +44,78 @@ truncation_symbol = "…/"
44
44
  min_time = 2000
45
45
  format = "took [$duration]($style) "
46
46
 
47
+ # ---------- Language version indicators ---------- #
48
+ [rust]
49
+ format = "[$symbol($version)]($style) "
50
+ symbol = "rs "
51
+
52
+ [python]
53
+ format = "[$symbol$pyenv_prefix($version)( \\($virtualenv\\))]($style) "
54
+ symbol = "py "
55
+
56
+ [nodejs]
57
+ format = "[$symbol($version)]($style) "
58
+ symbol = "node "
59
+ detect_files = ["package.json", ".node-version"]
60
+
61
+ [golang]
62
+ format = "[$symbol($version)]($style) "
63
+ symbol = "go "
64
+
65
+ # ---------- Docker context ---------- #
66
+ [docker_context]
67
+ format = "[$symbol$context]($style) "
68
+ symbol = "docker "
69
+ only_with_files = true
70
+ detect_files = ["docker-compose.yml", "docker-compose.yaml", "Dockerfile"]
71
+
72
+ # ---------- Shell nesting level ---------- #
73
+ [shlvl]
74
+ disabled = false
75
+ threshold = 2
76
+ symbol = "↕ "
77
+ format = "[$symbol$shlvl]($style) "
78
+
79
+ # ---------- Exit status ---------- #
80
+ [status]
81
+ disabled = false
82
+ format = "[$symbol$status]($style) "
83
+ symbol = "✘ "
84
+
85
+ # ---------- Kubernetes context ---------- #
86
+ [kubernetes]
87
+ disabled = false
88
+ format = "[$symbol$context( \\($namespace\\))]($style) "
89
+ symbol = "k8s "
90
+ style = "bold cyan"
91
+ detect_files = ["k8s", "kubernetes", "Tiltfile"]
92
+ detect_folders = ["charts", "kustomize"]
93
+ [kubernetes.context_aliases]
94
+ "arn:aws:eks:.*:.*:cluster/(?P<name>.*)" = "$name"
95
+
96
+ # ---------- Nix shell indicator ---------- #
97
+ [nix_shell]
98
+ disabled = false
99
+ format = "[$symbol$state( \\($name\\))]($style) "
100
+ symbol = "nix "
101
+ style = "bold blue"
102
+
103
+ # ---------- Direnv indicator ---------- #
104
+ # Disabled: starship reads direnv state before the hook sets DIRENV_DIR,
105
+ # causing "[WARN] unknown direnv state" on every prompt render.
106
+ # Direnv itself still works — only the starship status indicator is hidden.
107
+ [direnv]
108
+ disabled = true
109
+
110
+ # ---------- Pueue Tasks (Background daemon) ---------- #
111
+ [custom.pueue]
112
+ command = "n=$(pueue status -j 2>/dev/null | jq -r '[.tasks[] | select(.status == \"Running\" or .status == \"Queued\")] | length' 2>/dev/null) && [ \"$n\" != \"0\" ] && echo \"$n\""
113
+ when = "command -v pueue >/dev/null && command -v jq >/dev/null"
114
+ ignore_timeout = true
115
+ symbol = "⚙ "
116
+ style = "bold purple"
117
+ format = "[$symbol$output]($style) "
118
+
47
119
  # ---------- Container-aware fallback ---------- #
48
120
  # When DOTFILES_CONTAINER=1, show a lightweight indicator so the user
49
121
  # knows they are inside a container. Uses only ASCII-safe characters
@@ -67,6 +139,12 @@ symbol = ""
67
139
  style = "bold dimmed green"
68
140
  format = '[codespace]($style) '
69
141
 
142
+ [env_var.DOTFILES_LAYERS_LOAD_STATUS]
143
+ variable = "DOTFILES_LAYERS_LOAD_STATUS"
144
+ symbol = ""
145
+ style = "bold dimmed yellow"
146
+ format = '[•]($style) '
147
+
70
148
  [palettes.catppuccin_mocha]
71
149
  rosewater = "#f5e0dc"
72
150
  flamingo = "#f2cdcd"
@@ -0,0 +1,43 @@
1
+ daemonize
2
+ show-failed-attempts
3
+ ignore-empty-password
4
+
5
+ # Colors (Catppuccin Mocha)
6
+ color=1e1e2e
7
+
8
+ # Inside ring (typing)
9
+ inside-color=1e1e2e
10
+ inside-clear-color=1e1e2e
11
+ inside-ver-color=1e1e2e
12
+ inside-wrong-color=1e1e2e
13
+
14
+ # Ring
15
+ ring-color=585b70
16
+ ring-clear-color=f5e0dc
17
+ ring-ver-color=89b4fa
18
+ ring-wrong-color=f38ba8
19
+
20
+ # Key highlight
21
+ key-hl-color=a6e3a1
22
+ bs-hl-color=f38ba8
23
+
24
+ # Separator
25
+ separator-color=00000000
26
+
27
+ # Text
28
+ text-color=cdd6f4
29
+ text-clear-color=cdd6f4
30
+ text-ver-color=cdd6f4
31
+ text-wrong-color=f38ba8
32
+
33
+ # Layout
34
+ indicator-radius=120
35
+ indicator-thickness=10
36
+ line-color=00000000
37
+ line-clear-color=00000000
38
+ line-ver-color=00000000
39
+ line-wrong-color=00000000
40
+
41
+ # Font
42
+ font=Inter
43
+ font-size=24
@@ -0,0 +1,8 @@
1
+ [Unit]
2
+ Description=Dotfiles Maintenance Service
3
+ Documentation=https://github.com/sebastienrousseau/dotfiles
4
+
5
+ [Service]
6
+ Type=oneshot
7
+ ExecStart=%h/.local/bin/dot clean-cache
8
+ Environment=PATH=%h/.local/share/mise/shims:%h/.local/bin:/usr/local/bin:/usr/bin:/bin
@@ -0,0 +1,11 @@
1
+ [Unit]
2
+ Description=Run Dotfiles Maintenance Weekly
3
+ Documentation=https://github.com/sebastienrousseau/dotfiles
4
+
5
+ [Timer]
6
+ OnCalendar=weekly
7
+ Persistent=true
8
+ RandomizedDelaySec=1h
9
+
10
+ [Install]
11
+ WantedBy=timers.target
@@ -0,0 +1,12 @@
1
+ [Unit]
2
+ Description=Pueue Daemon - CLI process scheduler and manager
3
+ After=network.target
4
+
5
+ [Service]
6
+ Restart=always
7
+ ExecStart=%h/.local/share/mise/shims/pueued
8
+ ExecReload=/bin/kill -HUP $MAINPID
9
+ Environment=PATH=%h/.local/share/mise/shims:%h/.local/bin:/usr/local/bin:/usr/bin:/bin
10
+
11
+ [Install]
12
+ WantedBy=default.target
@@ -0,0 +1,12 @@
1
+ [Unit]
2
+ Description=SSH Agent — single persistent agent for all sessions
3
+ Documentation=man:ssh-agent(1)
4
+
5
+ [Service]
6
+ Type=simple
7
+ ExecStart=/usr/bin/ssh-agent -D -a %t/ssh-agent.socket
8
+ Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
9
+ Restart=on-failure
10
+
11
+ [Install]
12
+ WantedBy=default.target