@sebastienrousseau/dotfiles 0.2.481 → 0.2.500

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (546) hide show
  1. package/CHANGELOG.md +122 -32
  2. package/LICENSE +1 -1
  3. package/README.md +211 -242
  4. package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
  5. package/docs/AI.md +102 -0
  6. package/docs/COPYRIGHT +2 -2
  7. package/docs/NAMING_CONVENTIONS.md +95 -0
  8. package/docs/README.md +58 -249
  9. package/docs/adr/ADR-004-cli-architecture.md +2 -2
  10. package/docs/adr/ADR-006-shell-selection.md +2 -2
  11. package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
  12. package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
  13. package/docs/adr/README.md +2 -3
  14. package/docs/architecture/ARCHITECTURE.md +113 -0
  15. package/docs/architecture/INTEROP.md +36 -0
  16. package/docs/architecture/REPO_LAYOUT.md +237 -0
  17. package/docs/architecture/WALKTHROUGH.md +82 -0
  18. package/docs/architecture/fleet-deployment.md +73 -0
  19. package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
  20. package/docs/archive/MILESTONE_v0.2.493.md +43 -0
  21. package/docs/{PLAN.md → archive/PLAN.md} +1 -1
  22. package/docs/guides/INSTALL.md +140 -0
  23. package/docs/{NEOVIM_IDE_GUIDE.md → guides/NEOVIM_IDE_GUIDE.md} +12 -12
  24. package/docs/guides/THEMING.md +222 -0
  25. package/docs/{TROUBLESHOOTING.md → guides/TROUBLESHOOTING.md} +36 -0
  26. package/docs/{WSL2_NIX_TROUBLESHOOTING.md → guides/WSL2_NIX_TROUBLESHOOTING.md} +8 -8
  27. package/docs/index.md +39 -0
  28. package/docs/interop/A2A.md +32 -0
  29. package/docs/manual/00-introduction.md +85 -0
  30. package/docs/manual/01-concepts/01-architecture.md +134 -0
  31. package/docs/manual/01-concepts/02-trust-model.md +178 -0
  32. package/docs/manual/01-concepts/03-theme-engine.md +182 -0
  33. package/docs/manual/01-concepts/04-fleet.md +142 -0
  34. package/docs/manual/01-concepts/05-self-healing.md +197 -0
  35. package/docs/manual/02-tutorials/01-first-install.md +192 -0
  36. package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
  37. package/docs/manual/02-tutorials/03-create-profile.md +238 -0
  38. package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
  39. package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
  40. package/docs/manual/03-reference/01-dot-cli.md +413 -0
  41. package/docs/manual/03-reference/02-config-files.md +259 -0
  42. package/docs/manual/03-reference/03-environment.md +120 -0
  43. package/docs/manual/03-reference/04-templates.md +184 -0
  44. package/docs/manual/03-reference/05-feature-flags.md +118 -0
  45. package/docs/manual/04-cookbook/01-recipes.md +281 -0
  46. package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
  47. package/docs/manual/04-cookbook/03-faq.md +167 -0
  48. package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
  49. package/docs/manual/05-appendices/B-security-checklist.md +78 -0
  50. package/docs/manual/05-appendices/C-glossary.md +36 -0
  51. package/docs/manual/05-appendices/D-bibliography.md +54 -0
  52. package/docs/manual/05-appendices/E-license.md +34 -0
  53. package/docs/manual/_toc.yml +58 -0
  54. package/docs/manual/command-index.md +58 -0
  55. package/docs/manual/concept-index.md +164 -0
  56. package/docs/operations/ATTESTATION.md +39 -0
  57. package/docs/operations/MAINTENANCE.md +59 -0
  58. package/docs/operations/MIGRATION.md +101 -0
  59. package/docs/operations/OPERATIONS.md +164 -0
  60. package/docs/operations/RELIABILITY.md +116 -0
  61. package/docs/{ROADMAP.md → operations/ROADMAP.md} +11 -11
  62. package/docs/operations/TESTING.md +195 -0
  63. package/docs/operations/TRACEABILITY.md +31 -0
  64. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
  65. package/docs/operations/VERSION_SYNC.md +344 -0
  66. package/docs/{ALIASES.md → reference/ALIASES.md} +2 -6
  67. package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
  68. package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
  69. package/docs/reference/FEATURES.md +62 -0
  70. package/docs/reference/FONTS.md +108 -0
  71. package/docs/reference/PROFILES.md +65 -0
  72. package/docs/{SCREENSHOTS.md → reference/SCREENSHOTS.md} +26 -25
  73. package/docs/reference/SCRIPTS.md +67 -0
  74. package/docs/reference/SUPPORT_MATRIX.md +74 -0
  75. package/docs/reference/THEMES.md +113 -0
  76. package/docs/reference/TOOLS.md +105 -0
  77. package/docs/reference/UTILS.md +151 -0
  78. package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
  79. package/docs/security/AUTOMATION_SECRETS.md +22 -0
  80. package/docs/security/COMPLIANCE.md +453 -0
  81. package/docs/security/ENCRYPTION.md +52 -0
  82. package/docs/security/FMEA.md +155 -0
  83. package/docs/security/INCIDENT_RESPONSE.md +575 -0
  84. package/docs/security/KEYS.md +45 -0
  85. package/docs/security/MCP_POLICY.md +69 -0
  86. package/docs/security/POLICY_RELEASES.md +33 -0
  87. package/docs/security/README.md +24 -0
  88. package/docs/security/SECRETS.md +146 -0
  89. package/docs/security/SECURITY.md +41 -0
  90. package/docs/security/SECURITY_CHECKLIST.md +44 -0
  91. package/docs/security/SOUP_REGISTER.md +32 -0
  92. package/docs/security/THREAT_MODEL.md +120 -0
  93. package/docs/security/VERIFICATION_VALIDATION.md +224 -0
  94. package/docs/themes/README.md +3 -17
  95. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
  96. package/docs/themes/hero-shot.svg +78 -0
  97. package/dot_config/.module-manifest.json +69 -0
  98. package/dot_config/ai/identity.md +20 -0
  99. package/dot_config/ai/patterns/architect.md +14 -0
  100. package/dot_config/ai/patterns/hardener.md +13 -0
  101. package/dot_config/ai/patterns/refactor.md +13 -0
  102. package/dot_config/aider/aider.conf.yml +1 -1
  103. package/dot_config/alacritty/alacritty.toml.tmpl +41 -469
  104. package/dot_config/atuin/config.toml +18 -1
  105. package/dot_config/bat/config +16 -1
  106. package/dot_config/claude/mcp_servers.json +3 -32
  107. package/dot_config/dotfiles/agent-card.json +29 -0
  108. package/dot_config/dotfiles/agent-profiles.json +92 -0
  109. package/dot_config/dotfiles/boot/README.md +1 -1
  110. package/dot_config/dotfiles/grub/README.md +1 -1
  111. package/dot_config/dotfiles/lock/README.md +1 -1
  112. package/dot_config/dotfiles/mcp-lock.json +33 -0
  113. package/dot_config/dotfiles/mcp-policy.json +52 -0
  114. package/dot_config/dotfiles/mcp-registry.json +47 -0
  115. package/dot_config/dotfiles/model-registry.json +20 -0
  116. package/dot_config/dotfiles/policy-bundles.json +38 -0
  117. package/dot_config/dotfiles/prompt-registry.json +16 -0
  118. package/dot_config/dotfiles/versions.env +18 -0
  119. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  120. package/dot_config/environment.d/90-wayland.conf +19 -0
  121. package/dot_config/firefox/user.js.tmpl +58 -0
  122. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  123. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  124. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  125. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  126. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  127. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  128. package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
  129. package/dot_config/fish/config.fish.tmpl +44 -0
  130. package/dot_config/fish/fish_plugins +1 -0
  131. package/dot_config/fish/functions/_.fish +3 -0
  132. package/dot_config/fish/functions/_cached_eval.fish +58 -0
  133. package/dot_config/fish/functions/als.fish +46 -0
  134. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  135. package/dot_config/fish/functions/c.fish +3 -0
  136. package/dot_config/fish/functions/cat.fish +9 -0
  137. package/dot_config/fish/functions/d.fish +7 -0
  138. package/dot_config/fish/functions/dot.fish +34 -0
  139. package/dot_config/fish/functions/h.fish +3 -0
  140. package/dot_config/fish/functions/l.fish +7 -0
  141. package/dot_config/fish/functions/la.fish +7 -0
  142. package/dot_config/fish/functions/ll.fish +7 -0
  143. package/dot_config/fish/functions/log_error.fish +13 -0
  144. package/dot_config/fish/functions/log_info.fish +13 -0
  145. package/dot_config/fish/functions/lr.fish +7 -0
  146. package/dot_config/fish/functions/lra.fish +7 -0
  147. package/dot_config/fish/functions/ls.fish +7 -0
  148. package/dot_config/fish/functions/lt.fish +7 -0
  149. package/dot_config/fish/functions/lta.fish +7 -0
  150. package/dot_config/fish/functions/notify-run.fish +11 -0
  151. package/dot_config/fish/functions/q.fish +3 -0
  152. package/dot_config/fish/functions/silent-run.fish +7 -0
  153. package/dot_config/fish/functions/yy.fish +8 -0
  154. package/dot_config/fontconfig/fonts.conf.tmpl +13 -0
  155. package/dot_config/foot/foot.ini.tmpl +33 -0
  156. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  157. package/dot_config/fzf/fzf.zsh +48 -0
  158. package/dot_config/ghostty/config.tmpl +69 -565
  159. package/dot_config/git/allowed_signers.tmpl +18 -0
  160. package/dot_config/git/commit-template +10 -0
  161. package/dot_config/gnupg/{gpg-agent.conf.tmpl → gpg-agent.conf} +3 -3
  162. package/dot_config/goose/config.yaml +2 -2
  163. package/dot_config/gtk-3.0/gtk.css.tmpl +59 -180
  164. package/dot_config/gtk-3.0/settings.ini.tmpl +5 -44
  165. package/dot_config/gtk-4.0/gtk.css.tmpl +79 -136
  166. package/dot_config/gtk-4.0/settings.ini.tmpl +5 -8
  167. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  168. package/dot_config/just/justfile +18 -0
  169. package/dot_config/kanshi/config.tmpl +22 -0
  170. package/dot_config/kitty/kitty.conf.tmpl +44 -508
  171. package/dot_config/lazygit/config.yml +18 -6
  172. package/dot_config/mako/config +47 -0
  173. package/dot_config/micro/settings.json +3 -0
  174. package/dot_config/mimeapps.list +77 -0
  175. package/dot_config/mise/config.toml +63 -5
  176. package/dot_config/mongosh/mongoshrc.js +1 -0
  177. package/dot_config/mpv/input.conf +47 -0
  178. package/dot_config/mpv/mpv.conf +47 -0
  179. package/dot_config/niri/config.kdl.tmpl +327 -0
  180. package/dot_config/nushell/aliases.nu +18 -0
  181. package/dot_config/nushell/completions.nu.tmpl +52 -0
  182. package/dot_config/nushell/config.nu.tmpl +86 -0
  183. package/dot_config/nushell/env.nu.tmpl +94 -0
  184. package/dot_config/nushell/functions.nu.tmpl +17 -0
  185. package/dot_config/nvim/init.lua +14 -0
  186. package/dot_config/nvim/lazy-lock.json +45 -14
  187. package/dot_config/nvim/lua/config/autocmds.lua +45 -1
  188. package/dot_config/nvim/lua/config/keymaps.lua +13 -8
  189. package/dot_config/nvim/lua/config/lazy.lua +22 -12
  190. package/dot_config/nvim/lua/config/options.lua +1 -0
  191. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  192. package/dot_config/nvim/lua/plugins/coding.lua +11 -29
  193. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  194. package/dot_config/nvim/lua/plugins/dap.lua +215 -4
  195. package/dot_config/nvim/lua/plugins/editor.lua +6 -10
  196. package/dot_config/nvim/lua/plugins/git.lua +1 -0
  197. package/dot_config/nvim/lua/plugins/lsp.lua +16 -81
  198. package/dot_config/nvim/lua/plugins/markdown.lua +1 -0
  199. package/dot_config/nvim/lua/plugins/rust.lua +1 -0
  200. package/dot_config/nvim/lua/plugins/sessions.lua +1 -0
  201. package/dot_config/nvim/lua/plugins/ui.lua +23 -51
  202. package/dot_config/paru/paru.conf +10 -0
  203. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  204. package/dot_config/pueue/pueue.yml +34 -0
  205. package/dot_config/raycast/README.md +1 -1
  206. package/dot_config/ripgrep/ripgreprc +21 -0
  207. package/dot_config/shell/00-core-paths.sh.tmpl +62 -24
  208. package/dot_config/shell/05-core-safety.sh +47 -0
  209. package/dot_config/shell/10-secrets.sh +40 -0
  210. package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
  211. package/dot_config/shell/40-ls-colors.sh +48 -0
  212. package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
  213. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
  214. package/dot_config/shell/90-ux-aliases.sh.tmpl +90 -5
  215. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +33 -2
  216. package/dot_config/shell/Brewfile.cli +8 -0
  217. package/dot_config/shell/README.md +9 -9
  218. package/dot_config/shell/als_data.txt.tmpl +65 -0
  219. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  220. package/dot_config/shell/custom/context_suggest.zsh +50 -50
  221. package/dot_config/shell/custom/error_analysis.zsh +29 -29
  222. package/dot_config/starship.toml.tmpl +85 -7
  223. package/dot_config/swaylock/config +43 -0
  224. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  225. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  226. package/dot_config/systemd/user/pueued.service +12 -0
  227. package/dot_config/systemd/user/ssh-agent.service +12 -0
  228. package/dot_config/tmux/tmux.conf.tmpl +80 -38
  229. package/dot_config/topgrade.toml.tmpl +54 -0
  230. package/dot_config/user-dirs.dirs +9 -0
  231. package/dot_config/vscode/settings.json.tmpl +9 -50
  232. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  233. package/dot_config/waybar/style.css.tmpl +211 -0
  234. package/dot_config/wezterm/wezterm.lua.tmpl +31 -203
  235. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  236. package/dot_config/yazi/keymap.toml +67 -0
  237. package/dot_config/yazi/theme.toml +102 -0
  238. package/dot_config/zathura/zathurarc +52 -0
  239. package/dot_config/zellij/{config.kdl → config.kdl.tmpl} +1 -1
  240. package/dot_config/zsh/dot_zprofile +1 -7
  241. package/dot_config/zsh/dot_zshenv +2 -3
  242. package/dot_config/zsh/dot_zshrc.tmpl +368 -69
  243. package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
  244. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +17 -4
  245. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +4 -4
  246. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  247. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +101 -30
  248. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  249. package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
  250. package/dot_local/bin/executable_ai-update +195 -0
  251. package/dot_local/bin/executable_ai_core +113 -91
  252. package/dot_local/bin/executable_antigravity +11 -0
  253. package/dot_local/bin/executable_b64 +61 -36
  254. package/dot_local/bin/executable_bm +77 -0
  255. package/dot_local/bin/executable_cb +39 -0
  256. package/dot_local/bin/executable_dot +543 -132
  257. package/dot_local/bin/executable_dot-ai +36 -0
  258. package/dot_local/bin/executable_dot-bootstrap +77 -0
  259. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  260. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  261. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  262. package/dot_local/bin/executable_dot-theme-sync +952 -0
  263. package/dot_local/bin/executable_dot_completion +2 -0
  264. package/dot_local/bin/executable_dtags +28 -0
  265. package/dot_local/bin/executable_epoch +43 -38
  266. package/dot_local/bin/executable_extract +32 -99
  267. package/dot_local/bin/executable_gbd +52 -0
  268. package/dot_local/bin/executable_gd +42 -0
  269. package/dot_local/bin/executable_git-ai-commit +35 -20
  270. package/dot_local/bin/executable_git-ai-diff +33 -18
  271. package/dot_local/bin/executable_gl +101 -0
  272. package/dot_local/bin/executable_hash +56 -18
  273. package/dot_local/bin/executable_hashsum +160 -0
  274. package/dot_local/bin/executable_hex +44 -8
  275. package/dot_local/bin/executable_jsonv +34 -10
  276. package/dot_local/bin/executable_jwt +22 -6
  277. package/dot_local/bin/executable_kill-port +18 -2
  278. package/dot_local/bin/executable_lorem +21 -6
  279. package/dot_local/bin/executable_mkscript +35 -0
  280. package/dot_local/bin/executable_monitor +56 -0
  281. package/dot_local/bin/{executable_ip → executable_myip} +16 -2
  282. package/dot_local/bin/executable_notify +22 -0
  283. package/dot_local/bin/executable_open +36 -0
  284. package/dot_local/bin/executable_pw +27 -0
  285. package/dot_local/bin/executable_rec-start +46 -0
  286. package/dot_local/bin/executable_rec-stop +35 -0
  287. package/dot_local/bin/executable_regex +49 -13
  288. package/dot_local/bin/executable_start-niri +8 -0
  289. package/dot_local/bin/executable_tmux-sessionizer +276 -149
  290. package/dot_local/bin/executable_tour +112 -74
  291. package/dot_local/bin/executable_up +21 -0
  292. package/dot_local/bin/executable_update +45 -11
  293. package/dot_local/bin/executable_uuid +37 -7
  294. package/dot_local/bin/executable_win +32 -0
  295. package/dot_local/bin/executable_yamlv +25 -7
  296. package/dot_local/share/bash-completion/completions/dot +62 -44
  297. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  298. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  299. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  300. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  301. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  302. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  303. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  304. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  305. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  306. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  307. package/dot_local/share/man/man1/dot.1 +149 -0
  308. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  309. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  310. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  311. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  312. package/dot_local/share/zsh/completions/_dot +283 -0
  313. package/install.sh +297 -210
  314. package/package.json +17 -5
  315. package/scripts/ci/check-copyright-headers.sh +96 -0
  316. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  317. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  318. package/scripts/ci/validate-ci-config.sh +41 -39
  319. package/scripts/demo/record.sh +3 -2
  320. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  321. package/scripts/diagnostics/alias-governance.sh +137 -0
  322. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  323. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  324. package/scripts/diagnostics/benchmark.sh +209 -29
  325. package/scripts/diagnostics/conflicts.sh +72 -0
  326. package/scripts/diagnostics/doctor-unified.sh +38 -0
  327. package/scripts/diagnostics/doctor.sh +491 -65
  328. package/scripts/diagnostics/drift-dashboard.sh +17 -6
  329. package/scripts/diagnostics/health.sh +351 -110
  330. package/scripts/diagnostics/history-analysis.sh +12 -4
  331. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  332. package/scripts/diagnostics/perf.sh +225 -0
  333. package/scripts/diagnostics/scorecard.sh +118 -0
  334. package/scripts/diagnostics/secret-governance.sh +58 -0
  335. package/scripts/diagnostics/security-score.sh +139 -93
  336. package/scripts/diagnostics/smoke-test.sh +87 -0
  337. package/scripts/diagnostics/snapshot.sh +89 -0
  338. package/scripts/diagnostics/verify.sh +107 -0
  339. package/scripts/diagnostics/verify_state.sh +2 -2
  340. package/scripts/diagnostics/version-locks.sh +79 -0
  341. package/scripts/diagnostics/workstation-attestation.sh +181 -0
  342. package/scripts/docs/build-manual.sh +883 -0
  343. package/scripts/docs/check-manual.sh +213 -0
  344. package/scripts/dot/commands/agent.sh +465 -0
  345. package/scripts/dot/commands/ai.sh +416 -0
  346. package/scripts/dot/commands/aliases.sh +250 -0
  347. package/scripts/dot/commands/appearance.sh +21 -4
  348. package/scripts/dot/commands/core.sh +59 -4
  349. package/scripts/dot/commands/diagnostics.sh +132 -3
  350. package/scripts/dot/commands/fleet.sh +399 -0
  351. package/scripts/dot/commands/lint.sh +177 -0
  352. package/scripts/dot/commands/manual.sh +168 -0
  353. package/scripts/dot/commands/meta.sh +148 -17
  354. package/scripts/dot/commands/patterns.sh +54 -0
  355. package/scripts/dot/commands/restore.sh +57 -35
  356. package/scripts/dot/commands/secrets.sh +151 -9
  357. package/scripts/dot/commands/security.sh +3 -0
  358. package/scripts/dot/commands/tools.sh +268 -27
  359. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  360. package/scripts/dot/lib/bento.sh +49 -0
  361. package/scripts/dot/lib/log.sh +194 -0
  362. package/scripts/dot/lib/platform.sh +98 -0
  363. package/scripts/dot/lib/ui.sh +507 -0
  364. package/scripts/dot/lib/utils.sh +318 -18
  365. package/scripts/fonts/install-nerd-fonts.sh +19 -10
  366. package/scripts/fonts/patch-fonts.sh +1 -0
  367. package/scripts/git-hooks/install.sh +11 -0
  368. package/scripts/git-hooks/pre-commit +12 -0
  369. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  370. package/scripts/git-hooks/pre-push +29 -0
  371. package/scripts/git-hooks/prepare-commit-msg +29 -0
  372. package/scripts/lib/secrets_provider.sh +158 -0
  373. package/scripts/maintenance/check-updates.sh +131 -0
  374. package/scripts/ops/ai-setup.sh +55 -0
  375. package/scripts/ops/bundle.sh +77 -0
  376. package/scripts/ops/chaos.sh +49 -0
  377. package/scripts/ops/chezmoi-apply.sh +245 -17
  378. package/scripts/ops/chezmoi-diff.sh +1 -0
  379. package/scripts/ops/chezmoi-remove.sh +2 -0
  380. package/scripts/ops/chezmoi-update.sh +34 -2
  381. package/scripts/ops/heal-chezmoi.sh +51 -0
  382. package/scripts/ops/heal-system.sh +128 -0
  383. package/scripts/ops/heal-tools.sh +340 -0
  384. package/scripts/ops/heal.sh +98 -342
  385. package/scripts/ops/post-apply-repair.sh +106 -0
  386. package/scripts/ops/prewarm.sh +127 -0
  387. package/scripts/ops/release.sh +252 -0
  388. package/scripts/ops/rollback.sh +86 -28
  389. package/scripts/ops/setup.sh +137 -0
  390. package/scripts/ops/teleport.sh +2 -1
  391. package/scripts/qa/coverage-baseline.sh +60 -0
  392. package/scripts/qa/docs-coverage.sh +111 -0
  393. package/scripts/qa/reliability-audit.sh +138 -0
  394. package/scripts/qa/traceability-coverage.sh +116 -0
  395. package/scripts/qa/validate-examples.sh +26 -0
  396. package/scripts/qa/wsl-contract.sh +11 -0
  397. package/scripts/release/package-policy-bundles.sh +125 -0
  398. package/scripts/secrets/age-init.sh +1 -0
  399. package/scripts/secrets/create-secrets-file.sh +1 -0
  400. package/scripts/secrets/encrypt-ssh-key.sh +1 -0
  401. package/scripts/security/backup.sh +44 -4
  402. package/scripts/security/dns-doh.sh +36 -14
  403. package/scripts/security/encryption-check.sh +27 -12
  404. package/scripts/security/enforce-policies.sh +11 -16
  405. package/scripts/security/firewall.sh +76 -20
  406. package/scripts/security/lock-configs.sh +2 -2
  407. package/scripts/security/lock-screen.sh +40 -18
  408. package/scripts/security/manage-secrets.sh +42 -29
  409. package/scripts/security/ssh-cert.sh +203 -0
  410. package/scripts/security/telemetry-kill.sh +40 -18
  411. package/scripts/security/usb-safety.sh +37 -15
  412. package/scripts/theme/apply-gnome-theme.sh +87 -56
  413. package/scripts/theme/extract-theme.py +677 -0
  414. package/scripts/theme/install-boot-logo.sh +1 -0
  415. package/scripts/theme/install-catppuccin-themes.sh +57 -33
  416. package/scripts/theme/install-cursors.sh +1 -0
  417. package/scripts/theme/install-file-icons.sh +1 -0
  418. package/scripts/theme/install-grub-theme.sh +11 -1
  419. package/scripts/theme/install-lock-icon.sh +1 -0
  420. package/scripts/theme/merge-wallpaper.sh +141 -0
  421. package/scripts/theme/rebuild-themes.sh +309 -0
  422. package/scripts/theme/switch.sh +308 -137
  423. package/scripts/theme/wallpaper-rotate.sh +66 -12
  424. package/scripts/theme/wallpaper-sync.sh +386 -31
  425. package/scripts/tools/cmatrix.sh +1 -0
  426. package/scripts/tools/detect-collisions.py +1 -1
  427. package/scripts/tools/emoji-picker.sh +4 -1
  428. package/scripts/tools/figlet-banner.sh +1 -0
  429. package/scripts/tools/log-rotate.sh +2 -1
  430. package/scripts/tools/lolcat-wrap.sh +1 -0
  431. package/scripts/tools/pipes.sh +1 -0
  432. package/scripts/tuning/linux.sh +23 -13
  433. package/scripts/tuning/macos.sh +13 -4
  434. package/scripts/uninstall.sh +85 -0
  435. package/scripts/version-sync.sh +487 -0
  436. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  437. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  438. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  439. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  440. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  441. package/templates/projects/go/README.md +1 -1
  442. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  443. package/templates/projects/go/go.sum +0 -0
  444. package/templates/projects/molecule/README.md +1 -1
  445. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  446. package/templates/projects/node/README.md +1 -1
  447. package/templates/projects/node/package-lock.json +12 -0
  448. package/templates/projects/node/src/index.js +1 -0
  449. package/templates/projects/packer/README.md +1 -1
  450. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  451. package/templates/projects/python/README.md +1 -1
  452. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  453. package/templates/projects/python/tests/test_basic.py +1 -0
  454. package/docs/ARCHITECTURE.md +0 -229
  455. package/docs/COMPLIANCE.md +0 -47
  456. package/docs/FEATURES.md +0 -166
  457. package/docs/FONTS.md +0 -147
  458. package/docs/INSTALL.md +0 -119
  459. package/docs/KEYS.md +0 -40
  460. package/docs/OPERATIONS.md +0 -130
  461. package/docs/PR_DESCRIPTION.md +0 -149
  462. package/docs/SECRETS.md +0 -76
  463. package/docs/SECURITY.md +0 -30
  464. package/docs/SECURITY_CHECKLIST.md +0 -25
  465. package/docs/TASK.md +0 -99
  466. package/docs/TESTING.md +0 -190
  467. package/docs/TOOLS.md +0 -146
  468. package/docs/UTILS.md +0 -105
  469. package/docs/WALKTHROUGH.md +0 -165
  470. package/dot_config/clippy.toml +0 -55
  471. package/dot_config/dotfiles/versions.env.tmpl +0 -19
  472. package/dot_config/firefox/user.js +0 -8
  473. package/dot_config/git/config.tmpl +0 -77
  474. package/dot_config/go/aliases.sh +0 -61
  475. package/dot_config/go/env.sh +0 -24
  476. package/dot_config/ice/README.md +0 -13
  477. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +0 -5
  478. package/dot_config/lsd/config.yaml +0 -19
  479. package/dot_config/nvim/snippets/all.lua +0 -9
  480. package/dot_config/nvim/snippets/python.lua +0 -16
  481. package/dot_config/shell/00-container-detect.sh +0 -53
  482. package/dot_config/shell/05-core-safety.sh.tmpl +0 -13
  483. package/dot_config/shell/40-ls-colors.sh.tmpl +0 -31
  484. package/dot_config/shell/90-theme-switch.sh +0 -70
  485. package/dot_config/topgrade/topgrade.toml.tmpl +0 -42
  486. package/dot_config/waybar/style.css +0 -8
  487. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +0 -22
  488. package/dot_local/bin/executable_zig-install +0 -89
  489. package/dot_local/bin/voice_ops +0 -7
  490. package/scripts/ops/health-check.sh +0 -380
  491. package/scripts/tests/README.md +0 -241
  492. package/scripts/tests/benchmark.sh +0 -91
  493. package/scripts/tests/framework/assertions.sh +0 -283
  494. package/scripts/tests/framework/mocks.sh +0 -201
  495. package/scripts/tests/framework/test_runner.sh +0 -189
  496. package/scripts/tests/integration/test_install.sh +0 -237
  497. package/scripts/tests/performance/benchmark_runner.sh +0 -156
  498. package/scripts/tests/performance/regression_check.sh +0 -73
  499. package/scripts/tests/performance/stress_test.sh +0 -65
  500. package/scripts/tests/test-aliases.sh +0 -25
  501. package/scripts/tests/test-docker.sh +0 -48
  502. package/scripts/tests/unit/test_ai_aliases.sh +0 -158
  503. package/scripts/tests/unit/test_ai_cli_checks.sh +0 -47
  504. package/scripts/tests/unit/test_backup.sh +0 -227
  505. package/scripts/tests/unit/test_case_functions.sh +0 -238
  506. package/scripts/tests/unit/test_cd_aliases.sh +0 -367
  507. package/scripts/tests/unit/test_dot_cli.sh +0 -217
  508. package/scripts/tests/unit/test_encode64.sh +0 -67
  509. package/scripts/tests/unit/test_environment.sh +0 -78
  510. package/scripts/tests/unit/test_extract.sh +0 -163
  511. package/scripts/tests/unit/test_framework_edge_cases.sh +0 -113
  512. package/scripts/tests/unit/test_genpass.sh +0 -298
  513. package/scripts/tests/unit/test_install_edge_cases.sh +0 -167
  514. package/scripts/tests/unit/test_installers.sh +0 -172
  515. package/scripts/tests/unit/test_keygen.sh +0 -68
  516. package/scripts/tests/unit/test_logging.sh +0 -96
  517. package/scripts/tests/unit/test_os_detection_comprehensive.sh +0 -388
  518. package/scripts/tests/unit/test_package_managers_comprehensive.sh +0 -321
  519. package/scripts/tests/unit/test_prependpath.sh +0 -66
  520. package/scripts/tests/unit/test_prependpath_refactored.sh +0 -89
  521. package/scripts/tests/unit/test_rd.sh +0 -230
  522. package/scripts/tests/unit/test_security_fixes.sh +0 -130
  523. package/scripts/tests/unit/test_security_scripts.sh +0 -87
  524. package/scripts/tests/unit/test_template_validation.sh +0 -238
  525. package/scripts/tests/unit/test_utility_functions.sh +0 -144
  526. package/scripts/tests/unit/test_wave1_alias_split.sh +0 -132
  527. package/scripts/tests/unit/test_wave1_ci_pinning.sh +0 -61
  528. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +0 -52
  529. package/scripts/tests/unit/test_wave1_heal_fixes.sh +0 -97
  530. package/scripts/tests/unit/test_wave1_install_gpg.sh +0 -35
  531. package/scripts/tests/unit/test_wave1_zshenv_path.sh +0 -89
  532. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +0 -115
  533. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +0 -75
  534. package/scripts/tests/unit/test_zipf.sh +0 -76
  535. /package/docs/{LEGACY_ROADMAP.md → archive/LEGACY_ROADMAP.md} +0 -0
  536. /package/docs/{REPO_AUDIT.md → archive/REPO_AUDIT.md} +0 -0
  537. /package/docs/{KEY_ROTATION.md → security/KEY_ROTATION.md} +0 -0
  538. /package/dot_config/ansible/{ansible.cfg.tmpl → ansible.cfg} +0 -0
  539. /package/dot_config/docker/{config.json.tmpl → config.json} +0 -0
  540. /package/dot_config/k9s/{config.yaml.tmpl → config.yaml} +0 -0
  541. /package/dot_config/pypoetry/{config.toml.tmpl → config.toml} +0 -0
  542. /package/dot_config/{pyrightconfig.json.tmpl → pyrightconfig.json} +0 -0
  543. /package/dot_config/tflint/{tflint.hcl.tmpl → tflint.hcl} +0 -0
  544. /package/dot_config/yarn/{yarnrc.yml.tmpl → yarnrc.yml} +0 -0
  545. /package/dot_config/zsh/rc.d/{40-bell.zsh.tmpl → 40-bell.zsh} +0 -0
  546. /package/dot_config/zsh/rc.d/{50-login-fortune.zsh.tmpl → 50-login-fortune.zsh} +0 -0
@@ -0,0 +1,34 @@
1
+ client:
2
+ restart_in_place: false
3
+ read_local_logs: true
4
+ show_confirmation_questions: false
5
+ edit_mode: toml
6
+ show_expanded_aliases: false
7
+ dark_mode: false
8
+ max_status_lines: null
9
+ status_time_format: '%H:%M:%S'
10
+ status_datetime_format: |-
11
+ %Y-%m-%d
12
+ %H:%M:%S
13
+ daemon:
14
+ pause_group_on_failure: false
15
+ pause_all_on_failure: false
16
+ compress_state_file: false
17
+ callback: null
18
+ env_vars: {}
19
+ callback_log_lines: 10
20
+ shell_command: null
21
+ shared:
22
+ pueue_directory: null
23
+ runtime_directory: null
24
+ alias_file: null
25
+ use_unix_socket: true
26
+ unix_socket_path: null
27
+ unix_socket_permissions: 448
28
+ host: 127.0.0.1
29
+ port: '6924'
30
+ pid_path: null
31
+ daemon_cert: null
32
+ daemon_key: null
33
+ shared_secret_path: null
34
+ profiles: {}
@@ -10,4 +10,4 @@ To restore, import the saved file from Raycast settings.
10
10
 
11
11
  ---
12
12
 
13
- Made with ❤️ by [Sebastien Rousseau](https://github.com/sebastienrousseau)
13
+ Made with ❤️ by [Sebastien Rousseau](https://sebastienrousseau.com)
@@ -0,0 +1,21 @@
1
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # Smart case search
3
+ --smart-case
4
+ # Add custom type definitions
5
+ --type-add=web:*.{html,css,js,ts,tsx,jsx,vue,svelte}
6
+ --type-add=config:*.{toml,yaml,yml,json,ini,conf}
7
+ --type-add=shell:*.{sh,bash,zsh,fish}
8
+ # Max columns before truncation
9
+ --max-columns=200
10
+ --max-columns-preview
11
+ # Ignore common directories
12
+ --glob=!.git
13
+ --glob=!node_modules
14
+ --glob=!.venv
15
+ --glob=!target
16
+ --glob=!dist
17
+ --glob=!build
18
+ --glob=!*.min.js
19
+ --glob=!*.min.css
20
+ --glob=!package-lock.json
21
+ --glob=!yarn.lock
@@ -1,38 +1,74 @@
1
1
  #!/usr/bin/env bash
2
+ ## Construct PATH hierarchy for all language runtimes and tools.
3
+ ##
4
+ ## Sets PATH precedence: Local bin > Language runtimes > Homebrew > System.
5
+ ## This file is generated by Chezmoi and should not be edited directly.
6
+ ##
7
+ ## # Data Flow
8
+ ## ~/.zshenv (XDG vars) → 00-core-paths.sh (PATH) → tool-specific init
9
+ ##
10
+ ## # Platform Notes
11
+ ## ### Platform: macOS
12
+ ## - Adds /opt/homebrew/bin for Apple Silicon
13
+ ## - Includes macOS application paths (VS Code, Little Snitch)
14
+ ##
15
+ ## ### Platform: Linux
16
+ ## - Homebrew section skipped if /opt/homebrew absent
17
+ ## - Standard FHS paths (/usr/bin, /usr/local/bin)
18
+ ##
19
+ ## ### Platform: WSL
20
+ ## - Works with both Linux and Windows paths
21
+ ## - Windows PATH inherited via interop
22
+ ##
23
+ ## # Dependencies
24
+ ## - Bash 4+ for associative array PATH deduplication
25
+ ## - Falls back to awk for Bash 3.x
26
+ ##
27
+ ## # Idempotency
28
+ ## Safe to source multiple times. Deduplicates PATH entries.
2
29
 
3
- # Universal Paths (Generated by Chezmoi)
4
- # Note: XDG variables are set in ~/.zshenv (Bootloader)
30
+ # Helper: prepend path if directory exists (moves to front if already present)
31
+ path_prepend() {
32
+ local dir="$1"
33
+ [[ -n "$dir" && -d "$dir" ]] || return 0
34
+ # Remove existing entry (if any) then prepend — ensures correct precedence
35
+ PATH="${PATH/#"$dir:"/}" # leading
36
+ PATH="${PATH/%":$dir"/}" # trailing
37
+ PATH="${PATH//":$dir:"/:}" # middle
38
+ [[ "$PATH" == "$dir" ]] && PATH="" # sole entry
39
+ PATH="$dir${PATH:+:$PATH}"
40
+ }
5
41
 
6
42
  # 1. System Paths (Prepend, but will be pushed down by later prepends)
7
- export PATH="/usr/bin:/bin:/usr/sbin:/sbin:${PATH}"
43
+ PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:${PATH}"
8
44
 
9
45
  # 2. Homebrew Paths (Prepend -> Higher Priority)
10
- if [[ -d "/opt/homebrew/bin" ]]; then
11
- export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:${PATH}"
12
- fi
46
+ path_prepend "/opt/homebrew/sbin"
47
+ path_prepend "/opt/homebrew/bin"
13
48
 
14
49
  # 3. Language Runtimes
15
50
  # Ruby (Homebrew)
16
- if [[ -d "/opt/homebrew/opt/ruby/bin" ]]; then
17
- export PATH="/opt/homebrew/opt/ruby/bin:${PATH}"
18
- fi
51
+ path_prepend "/opt/homebrew/opt/ruby/bin"
19
52
  # Ruby (User Gems)
20
- export PATH="${HOME}/.gem/ruby/bin:${PATH}"
53
+ path_prepend "${HOME}/.gem/ruby/bin"
21
54
 
22
55
  # Python (Pipx)
23
56
  export PIPX_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/pipx"
24
57
  export PIPX_BIN_DIR="${XDG_BIN_HOME:-$HOME/.local/bin}"
25
- export PATH="${PIPX_BIN_DIR}:${PATH}"
58
+ path_prepend "${PIPX_BIN_DIR}"
59
+
60
+ # .NET Tools
61
+ path_prepend "${HOME}/.dotnet/tools"
26
62
 
27
63
  # Rust (Cargo)
28
- export PATH="${HOME}/.cargo/bin:${PATH}"
64
+ path_prepend "${HOME}/.cargo/bin"
29
65
 
30
66
  # Go
31
- export PATH="${HOME}/go/bin:${PATH}"
67
+ path_prepend "${HOME}/go/bin"
32
68
 
33
69
  # Bun
34
70
  export BUN_INSTALL="${HOME}/.bun"
35
- export PATH="${BUN_INSTALL}/bin:${PATH}"
71
+ path_prepend "${BUN_INSTALL}/bin"
36
72
 
37
73
  # Kubeconfig merge logic (merge all configs in ~/.kube/config.d/)
38
74
  # Lazy-loaded via kubectl wrapper to avoid startup cost
@@ -44,7 +80,7 @@ _lazy_load_kubeconfig() {
44
80
  done
45
81
  [[ -n "$kubeconfig_extra" ]] && export KUBECONFIG="${HOME}/.kube/config${kubeconfig_extra}"
46
82
  fi
47
- unfunction kubectl _lazy_load_kubeconfig 2>/dev/null
83
+ unset -f kubectl _lazy_load_kubeconfig 2>/dev/null
48
84
  command kubectl "$@"
49
85
  }
50
86
  # Only wrap kubectl if config.d exists and kubectl is installed
@@ -57,19 +93,21 @@ if [[ -n "${KUBERNETES_SERVICE_HOST:-}" ]] || [[ -n "${KUBECONFIG:-}" ]]; then
57
93
  fi
58
94
 
59
95
  # Node.js (Global)
60
- export PATH="${HOME}/.node_modules/bin:${PATH}"
96
+ path_prepend "${HOME}/.node_modules/bin"
61
97
 
62
98
  # Lua (Luarocks)
63
- export PATH="${HOME}/.luarocks/bin:${PATH}"
99
+ path_prepend "${HOME}/.luarocks/bin"
64
100
 
65
- # 4. Applications (macOS Specifics from 99-custom)
66
- export PATH="/Library/Apple/usr/bin:/Library/TeX/texbin:${PATH}"
67
- export PATH="/Applications/Topaz Photo AI.app/Contents/Resources/bin:/Applications/Little Snitch.app/Contents/Components:/Applications/iTerm.app/Contents/Resources/utilities:${PATH}"
68
- export PATH="/Applications/Visual Studio Code.app/Contents/Resources/app/bin:${PATH}"
101
+ # 4. macOS System Paths
102
+ {{- if eq .chezmoi.os "darwin" }}
103
+ path_prepend "/Library/Apple/usr/bin"
104
+ {{- end }}
69
105
 
70
- # 5. Local Bin (Highest Priority)
71
- export PATH="${HOME}/.local/bin:${PATH}"
72
- export PATH="${HOME}/bin:${PATH}"
106
+ # 5. Local Bin and Tools (Highest Priority)
107
+ path_prepend "${HOME}/.fzf/bin"
108
+ path_prepend "${HOME}/.local/bin"
109
+ path_prepend "${HOME}/.local/share/mise/shims"
110
+ path_prepend "${HOME}/bin"
73
111
 
74
112
  # Deduplicate PATH (Keep first occurrence to maintain precedence)
75
113
  # Standard Zsh handles this with 'typeset -U path', but for bash compatibility/subshells:
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+
4
+ # 05-safety.sh: Core Safety Settings
5
+ # Part of the "Core Layer"
6
+
7
+ # Set sane defaults for safety, though be careful with -e in interactive shell
8
+ # Use 'set -o pipefail' to catch pipeline errors if supported
9
+ if [[ -n "$BASH_VERSION" ]] || [[ -n "$ZSH_VERSION" ]]; then
10
+ set -o pipefail 2>/dev/null || true
11
+ fi
12
+
13
+ # Prevent file overwrite with redirection (force use of >|)
14
+ set -o noclobber
15
+
16
+ # Strict destructive-operation confirmation helper.
17
+ # Enabled when DOTFILES_ALIAS_STRICT_MODE=1.
18
+ dot_confirm_destructive() {
19
+ local action="${1:-destructive operation}"
20
+ local log_file="${DOTFILES_DESTRUCTIVE_LOG:-$HOME/.dotfiles_destruction.log}"
21
+ local ts
22
+
23
+ if [[ "${DOTFILES_ALIAS_STRICT_MODE:-0}" != "1" ]]; then
24
+ return 0
25
+ fi
26
+
27
+ if [[ ! -t 0 ]]; then
28
+ if [[ "${DOTFILES_FORCE_DESTRUCTIVE:-0}" == "1" ]]; then
29
+ ts="$(date -u +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date)"
30
+ printf "%s\tuser=%s\thost=%s\tpwd=%s\taction=%s\tmode=forced\n" \
31
+ "$ts" "${USER:-unknown}" "${HOSTNAME:-unknown}" "${PWD:-unknown}" "$action" >> "$log_file" 2>/dev/null || true
32
+ return 0
33
+ fi
34
+ echo "[STRICT] Refusing ${action} without TTY confirmation." >&2
35
+ return 1
36
+ fi
37
+
38
+ echo "[STRICT] About to run: ${action}" >&2
39
+ read -r -p "Type YES to continue: " confirm
40
+ if [[ "$confirm" == "YES" ]]; then
41
+ ts="$(date -u +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date)"
42
+ printf "%s\tuser=%s\thost=%s\tpwd=%s\taction=%s\tmode=confirmed\n" \
43
+ "$ts" "${USER:-unknown}" "${HOSTNAME:-unknown}" "${PWD:-unknown}" "$action" >> "$log_file" 2>/dev/null || true
44
+ return 0
45
+ fi
46
+ return 1
47
+ }
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+
4
+ # 10-secrets.sh: Optional secret bucket auto-loader
5
+ # Loads configured secret buckets into the current shell via `dot env load`.
6
+
7
+ if [[ "${DOTFILES_SECRETS_AUTO_LOAD:-0}" != "1" ]]; then
8
+ return 0 2>/dev/null || exit 0
9
+ fi
10
+
11
+ if ! command -v dot >/dev/null 2>&1; then
12
+ return 0 2>/dev/null || exit 0
13
+ fi
14
+
15
+ _dot_secret_buckets=()
16
+ if [[ -n "${DOTFILES_SECRETS_BUCKET_NAMES:-}" ]]; then
17
+ while IFS= read -r _bucket; do
18
+ [[ -n "$_bucket" ]] || continue
19
+ _dot_secret_buckets+=("$_bucket")
20
+ done < <(printf '%s' "${DOTFILES_SECRETS_BUCKET_NAMES}" | tr ',' '\n')
21
+ fi
22
+
23
+ for _bucket in "${_dot_secret_buckets[@]}"; do
24
+ [[ -n "$_bucket" ]] || continue
25
+ _dot_secret_out="$(dot env load "$_bucket" 2>/dev/null || true)"
26
+ [[ -n "$_dot_secret_out" ]] || continue
27
+ case "$_dot_secret_out" in
28
+ export\ * | typeset\ * | unset\ *)
29
+ # Use process substitution instead of eval for safety
30
+ # shellcheck disable=SC1090
31
+ . /dev/stdin <<<"$_dot_secret_out"
32
+ ;;
33
+ *)
34
+ # Ignore non-shell output
35
+ ;;
36
+ esac
37
+ unset _dot_secret_out
38
+ done
39
+
40
+ unset _dot_secret_buckets _bucket
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+ # 🅳🅾🆃🅵🅸🅻🅴🆂 (v{{ .dotfiles_version }})
3
+ # FZF Shared Configuration for all shells (Zsh, Bash, Fish)
4
+
5
+ # Set FZF defaults to use 'fd' for speed and 'bat' for previews
6
+ export FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix --hidden --follow --exclude .git'
7
+ export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
8
+
9
+ # Sublime FZF Colors (Catppuccin Mocha)
10
+ export FZF_DEFAULT_OPTS="
11
+ --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8
12
+ --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc
13
+ --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8
14
+ --multi --layout=reverse --border --height=40%
15
+ --preview-window='right:60%:wrap'
16
+ --preview 'if [ -d {} ]; then eza --tree --level 2 --icons {} | head -200; else bat --style=numbers --color=always --line-range :500 {} 2>/dev/null || cat {} | head -500; fi'"
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+
4
+ # Set ls colors with GNU/BSD detection and caching
5
+ # GNU coreutils: LS_COLORS via dircolors
6
+ # BSD/macOS: LSCOLORS + CLICOLOR
7
+
8
+ _dircolors_cache="${XDG_CACHE_HOME:-$HOME/.cache}/shell/dircolors.sh"
9
+
10
+ _dircolors_cached_eval() {
11
+ local cmd="$1"
12
+ shift
13
+ if [ -f "$_dircolors_cache" ]; then
14
+ # shellcheck disable=SC1090
15
+ . "$_dircolors_cache"
16
+ else
17
+ mkdir -p "$(dirname "$_dircolors_cache")"
18
+ "$cmd" "$@" >"$_dircolors_cache" 2>/dev/null
19
+ # shellcheck disable=SC1090
20
+ . "$_dircolors_cache"
21
+ fi
22
+ }
23
+
24
+ if command -v dircolors >/dev/null 2>&1; then
25
+ if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/dircolors" ]; then
26
+ _dircolors_cached_eval dircolors -b "${XDG_CONFIG_HOME:-$HOME/.config}/dircolors"
27
+ else
28
+ _dircolors_cached_eval dircolors -b
29
+ fi
30
+ else
31
+ case "$(uname -s 2>/dev/null)" in
32
+ Darwin*)
33
+ export CLICOLOR=1
34
+ export LSCOLORS="ExFxCxDxBxegedabagacad"
35
+ if command -v gdircolors >/dev/null 2>&1; then
36
+ _dircolors_cached_eval gdircolors -b
37
+ fi
38
+ ;;
39
+ esac
40
+ fi
41
+
42
+ unset -f _dircolors_cached_eval
43
+ unset _dircolors_cache
44
+
45
+ # Ensure LS_COLORS is set for Zsh completion when only LSCOLORS exists
46
+ if [ -z "${LS_COLORS:-}" ] && [ -n "${LSCOLORS:-}" ]; then
47
+ export LS_COLORS=""
48
+ fi
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Core Functions (Generated by Chezmoi) - minimal set
4
+
5
+ {{- $globPattern := joinPath .chezmoi.sourceDir ".chezmoitemplates/functions/utils/*.sh" -}}
6
+ {{- $files := glob $globPattern -}}
7
+ {{- range $files -}}
8
+ {{- include . }}
9
+ {{- "\n" -}}
10
+ {{- end -}}
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Extra Functions (Generated by Chezmoi) - loaded on demand
4
+ # Group-wise lazy loaders to reduce first-load cost.
5
+
6
+ {{ $root := . }}
7
+ {{ $groupsPath := joinPath $root.chezmoi.sourceDir ".chezmoitemplates/functions/groups.json" }}
8
+ {{ $groups := (fromJson (include $groupsPath)) }}
9
+
10
+ {{ range $group, $files := $groups }}
11
+ _dotfiles_load_group_{{ $group }}() {
12
+ unset -f _dotfiles_load_group_{{ $group }} 2>/dev/null
13
+ # shellcheck disable=SC1090
14
+ . /dev/stdin <<'__DOTFILES_EOF__'
15
+ {{ range $files }}
16
+ {{ $p := joinPath $root.chezmoi.sourceDir ".chezmoitemplates/functions" . }}
17
+ {{ include $p }}
18
+
19
+ {{ end }}
20
+ __DOTFILES_EOF__
21
+ }
22
+
23
+ {{ range $files }}
24
+ {{ $func := trimSuffix ".sh" (base .) }}
25
+ {{ $func }}() { _dotfiles_load_group_{{ $group }}; {{ $func }} "$@"; }
26
+
27
+ {{ end }}
28
+ {{ end }}
29
+
30
+ # Pueue Background Task Wrappers (2026 Strategy)
31
+ # Use these for long-running blocking tasks.
32
+ if command -v pueue >/dev/null 2>&1; then
33
+ # silent-run: Submit a command to pueue and forget about it.
34
+ silent-run() {
35
+ local cmd="$*"
36
+ if [[ -z "$cmd" ]]; then
37
+ echo "Usage: silent-run <command>"
38
+ return 1
39
+ fi
40
+ pueue add -- "$cmd"
41
+ }
42
+
43
+ # notify-run: Submit a command and notify when done.
44
+ notify-run() {
45
+ local cmd="$*"
46
+ if [[ -z "$cmd" ]]; then
47
+ echo "Usage: notify-run <command>"
48
+ return 1
49
+ fi
50
+ local task_id
51
+ task_id=$(pueue add --print-id -- "$cmd")
52
+ echo "Task $task_id submitted: $cmd"
53
+ (pueue wait "$task_id" && echo "✅ Task $task_id finished: $cmd") &!
54
+ }
55
+
56
+ # bg-upgrade: Background upgrade of all package managers.
57
+ bg-upgrade() {
58
+ echo "🚀 Starting background upgrades (Homebrew, Nix, Chezmoi)..."
59
+ if command -v brew >/dev/null; then silent-run "brew upgrade"; fi
60
+ if command -v nix >/dev/null; then silent-run "nix flake update"; fi
61
+ silent-run "chezmoi update"
62
+ echo "Check status with 'pueue status'"
63
+ }
64
+ fi
@@ -1,27 +1,112 @@
1
1
  #!/usr/bin/env bash
2
-
3
- # Core Aliases Eager Load (Generated by Chezmoi)
4
- # These are lightweight, high-frequency aliases loaded at shell startup.
2
+ ## WARNING: Alias names must be unique across all alias source files in
3
+ ## .chezmoitemplates/aliases/. Duplicates silently overwrite earlier
4
+ ## definitions. Run the alias-conflict test to detect collisions.
5
+ ##
6
+ ## Core Aliases — Eager Load.
7
+ ##
8
+ ## High-frequency aliases loaded at shell startup (~40KB). Generated by Chezmoi
9
+ ## from alias definition files in .chezmoitemplates/aliases/. Edit the source
10
+ ## templates, not this file.
11
+ ##
12
+ ## # Data Flow
13
+ ## .chezmoidata.toml (profile, buckets) → 90-ux-aliases.sh.tmpl → aliases
14
+ ##
15
+ ## # Chezmoi Variables
16
+ ## | Variable | Default | Description |
17
+ ## |----------|---------|-------------|
18
+ ## | .aliases.profile | standard | minimal, standard, or full |
19
+ ## | .aliases.buckets | all true | Enable/disable alias categories |
20
+ ##
21
+ ## # Core Categories (14)
22
+ ## archives, cd, clear, configuration, default, diagnostics, disk-usage,
23
+ ## editor, git, interactive, installer, mkdir, modern, ps, rsync, sudo, system
24
+ ##
25
+ ## # Platform Notes
26
+ ## - macOS-specific aliases excluded from non-Darwin systems
27
+ ## - Bash and Zsh compatible
28
+ ##
29
+ ## # Idempotency
30
+ ## Safe to source multiple times. Aliases overwrite previous definitions.
5
31
  if [ -n "${BASH_VERSION:-}" ]; then
6
32
  shopt -s expand_aliases
7
33
  fi
34
+ if [ -n "${ZSH_VERSION:-}" ]; then
35
+ setopt aliases
36
+ fi
8
37
 
9
- {{ $coreCategories := list "cd" "clear" "configuration" "default" "diagnostics" "editor" "git" "interactive" "installer" "mkdir" "modern" "ps" "sudo" "compliance" -}}
38
+ {{ $coreCategories := list "archives" "cd" "clear" "configuration" "default" "diagnostics" "disk-usage" "editor" "git" "interactive" "installer" "mkdir" "modern" "ps" "rsync" "sudo" "system" "compliance" -}}
39
+ {{ $aliasProfile := lower (default "standard" (env "DOTFILES_ALIAS_PROFILE")) -}}
40
+ {{ $aliasBuckets := default (dict) .aliases.buckets -}}
10
41
  {{ $globPattern := joinPath .chezmoi.sourceDir ".chezmoitemplates/aliases/**/*.aliases.sh" -}}
11
42
  {{ $files := glob $globPattern -}}
12
43
  {{ range $files -}}
13
44
  {{ $name := . -}}
14
45
  {{ $isCore := false -}}
46
+ {{ $bucketEnabled := true -}}
47
+ {{ if contains "/system/" $name -}}
48
+ {{ $bucketEnabled = default true (index $aliasBuckets "system") -}}
49
+ {{ end -}}
50
+ {{ if contains "/subversion/" $name -}}
51
+ {{ $bucketEnabled = default true (index $aliasBuckets "svn") -}}
52
+ {{ end -}}
53
+ {{ $isCoreMinimalExcluded := or (contains "/interactive/" $name) (contains "/sudo/" $name) -}}
54
+ {{ $includeByProfile := true -}}
55
+ {{ if and (eq $aliasProfile "minimal") $isCoreMinimalExcluded -}}
56
+ {{ $includeByProfile = false -}}
57
+ {{ end -}}
15
58
  {{ range $coreCategories -}}
16
59
  {{ if contains (printf "/%s/" .) $name -}}
17
60
  {{ $isCore = true -}}
18
61
  {{ end -}}
19
62
  {{ end -}}
20
- {{ if and $isCore (not (contains "/macOS/" $name)) }}
63
+ {{ if and $isCore (not (contains "/macOS/" $name)) (not (contains "/archives/" $name)) $includeByProfile $bucketEnabled }}
21
64
  {{ include $name }}
22
65
  {{ end -}}
23
66
  {{ end }}
24
67
 
68
+ # Archive aliases loaded last among core aliases so extraction shortcuts
69
+ # take precedence over earlier generic shims.
70
+ {{- range $files -}}
71
+ {{- $name := . -}}
72
+ {{- if and (contains "/archives/" $name) (not (contains "/macOS/" $name)) }}
73
+ {{ include $name }}
74
+ {{- end -}}
75
+ {{- end }}
76
+
77
+ # Zsh fallback: if alias expansion is disabled, provide function shims.
78
+ _dotfiles_alias_shims() {
79
+ [[ -n "${_DOTFILES_ALIAS_SHIMS_LOADED:-}" ]] && return 0
80
+ _DOTFILES_ALIAS_SHIMS_LOADED=1
81
+ c() { clear_screen; }
82
+ q() { exit; }
83
+ e() { "${EDITOR:-nano}" "$@"; }
84
+ h() { history; }
85
+ l() { dot_ls "$@"; }
86
+ ll() { dot_ll "$@"; }
87
+ la() { dot_la "$@"; }
88
+ lt() { dot_lt "$@"; }
89
+ lr() { dot_lr "$@"; }
90
+ lra() { dot_lra "$@"; }
91
+ lta() { dot_lta "$@"; }
92
+ d() {
93
+ if command -v dot >/dev/null 2>&1; then
94
+ dot "$@"
95
+ elif command -v docker >/dev/null 2>&1; then
96
+ docker "$@"
97
+ fi
98
+ }
99
+ i() { command -v epoch >/dev/null 2>&1 && epoch "$@"; }
100
+ a() { command -v ai_core >/dev/null 2>&1 && ai_core query "$@"; }
101
+ _() { sudo "$@"; }
102
+ }
103
+
104
+ if [ -n "${ZSH_VERSION:-}" ]; then
105
+ if ! setopt | grep -q '^aliases$' || [[ "${DOTFILES_FORCE_ALIAS_SHIMS:-0}" == "1" ]]; then
106
+ _dotfiles_alias_shims
107
+ fi
108
+ fi
109
+
25
110
  # OS-Specific Core Aliases
26
111
 
27
112
  ## macOS
@@ -6,18 +6,49 @@ if [ -n "${BASH_VERSION:-}" ]; then
6
6
  shopt -s expand_aliases
7
7
  fi
8
8
 
9
- {{ $coreCategories := list "cd" "clear" "configuration" "default" "diagnostics" "editor" "git" "interactive" "installer" "mkdir" "modern" "ps" "sudo" "compliance" -}}
9
+ {{ $coreCategories := list "archives" "cd" "clear" "configuration" "default" "diagnostics" "disk-usage" "editor" "git" "interactive" "installer" "mkdir" "modern" "ps" "rsync" "sudo" "system" "compliance" -}}
10
+ {{ $aliasProfile := lower (default "standard" (env "DOTFILES_ALIAS_PROFILE")) -}}
11
+ {{ $ecosystems := lower (default "all" (env "DOTFILES_ALIAS_ECOSYSTEMS")) -}}
12
+ {{ $aliasBuckets := default (dict) .aliases.buckets -}}
10
13
  {{ $globPattern := joinPath .chezmoi.sourceDir ".chezmoitemplates/aliases/**/*.aliases.sh" -}}
11
14
  {{ $files := glob $globPattern -}}
12
15
  {{ range $files -}}
13
16
  {{ $name := . -}}
14
17
  {{ $isCore := false -}}
18
+ {{ $bucketEnabled := true -}}
19
+ {{ if contains "/system/" $name -}}
20
+ {{ $bucketEnabled = default true (index $aliasBuckets "system") -}}
21
+ {{ end -}}
22
+ {{ if contains "/subversion/" $name -}}
23
+ {{ $bucketEnabled = default true (index $aliasBuckets "svn") -}}
24
+ {{ end -}}
25
+ {{ $isPython := contains "/python/" $name -}}
26
+ {{ $isNode := or (contains "/npm/" $name) (contains "/pnpm/" $name) (contains "/yarn/" $name) -}}
27
+ {{ $isRust := contains "/rust/" $name -}}
28
+ {{ $isNetwork := or (contains "/dig/" $name) (contains "/security/" $name) -}}
29
+ {{ $isLegacy := or (contains "/subversion/" $name) (contains "/vagrant/" $name) -}}
30
+ {{ $isEcosystem := or $isPython (or $isNode (or $isRust (or $isNetwork $isLegacy))) -}}
31
+ {{ $ecosystemEnabled := true -}}
32
+ {{ if not (eq $ecosystems "all") -}}
33
+ {{ $ecosystemEnabled = false -}}
34
+ {{ if and $isPython (contains "python" $ecosystems) -}}{{ $ecosystemEnabled = true -}}{{ end -}}
35
+ {{ if and $isNode (contains "node" $ecosystems) -}}{{ $ecosystemEnabled = true -}}{{ end -}}
36
+ {{ if and $isRust (contains "rust" $ecosystems) -}}{{ $ecosystemEnabled = true -}}{{ end -}}
37
+ {{ if and $isNetwork (contains "network" $ecosystems) -}}{{ $ecosystemEnabled = true -}}{{ end -}}
38
+ {{ if and $isLegacy (contains "legacy" $ecosystems) -}}{{ $ecosystemEnabled = true -}}{{ end -}}
39
+ {{ end -}}
40
+ {{ $isHeavy := or (contains "/security/" $name) (contains "/docker/" $name) (contains "/kubernetes/" $name) (contains "/terraform/" $name) (contains "/gcloud/" $name) -}}
41
+ {{ $isMinimalExcluded := or $isHeavy (contains "/ai/" $name) (contains "/benchmarks/" $name) -}}
42
+ {{ $includeByProfile := true -}}
43
+ {{ if and (eq $aliasProfile "minimal") $isMinimalExcluded -}}
44
+ {{ $includeByProfile = false -}}
45
+ {{ end -}}
15
46
  {{ range $coreCategories -}}
16
47
  {{ if contains (printf "/%s/" .) $name -}}
17
48
  {{ $isCore = true -}}
18
49
  {{ end -}}
19
50
  {{ end -}}
20
- {{ if and (not $isCore) (not (contains "/macOS/" $name)) }}
51
+ {{ if and (not $isCore) (not (contains "/macOS/" $name)) $includeByProfile (or (not $isEcosystem) $ecosystemEnabled) $bucketEnabled }}
21
52
  {{ include $name }}
22
53
  {{ end -}}
23
54
  {{ end }}
@@ -25,11 +25,18 @@ brew "rename"
25
25
  # Shell & Prompt
26
26
  # -----------------------------------------------------------------------------
27
27
  brew "zsh"
28
+ brew "nushell"
28
29
  brew "starship"
29
30
  brew "zoxide"
30
31
  brew "atuin"
31
32
  brew "direnv"
32
33
 
34
+ # -----------------------------------------------------------------------------
35
+ # Advanced Utilities
36
+ # -----------------------------------------------------------------------------
37
+ brew "pueue"
38
+ brew "wasmtime"
39
+
33
40
  # -----------------------------------------------------------------------------
34
41
  # Development
35
42
  # -----------------------------------------------------------------------------
@@ -89,6 +96,7 @@ brew "fabric-ai"
89
96
  # -----------------------------------------------------------------------------
90
97
  # File & Text Processing
91
98
  # -----------------------------------------------------------------------------
99
+ brew "yazi"
92
100
  brew "hexyl"
93
101
  brew "glow"
94
102
  brew "gum"