@sebastienrousseau/dotfiles 0.2.499 → 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 (538) hide show
  1. package/CHANGELOG.md +375 -0
  2. package/LICENSE +1283 -0
  3. package/README.md +284 -0
  4. package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
  5. package/docs/AI.md +102 -0
  6. package/docs/COPYRIGHT +4 -3
  7. package/docs/NAMING_CONVENTIONS.md +95 -0
  8. package/docs/README.md +78 -0
  9. package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
  10. package/docs/adr/ADR-002-shell-performance.md +121 -0
  11. package/docs/adr/ADR-003-security-first.md +140 -0
  12. package/docs/adr/ADR-004-cli-architecture.md +157 -0
  13. package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
  14. package/docs/adr/ADR-006-shell-selection.md +115 -0
  15. package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
  16. package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
  17. package/docs/adr/README.md +32 -0
  18. package/docs/architecture/ARCHITECTURE.md +113 -0
  19. package/docs/architecture/INTEROP.md +36 -0
  20. package/docs/architecture/REPO_LAYOUT.md +237 -0
  21. package/docs/architecture/WALKTHROUGH.md +82 -0
  22. package/docs/architecture/fleet-deployment.md +73 -0
  23. package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
  24. package/docs/archive/LEGACY_ROADMAP.md +142 -0
  25. package/docs/archive/MILESTONE_v0.2.493.md +43 -0
  26. package/docs/{PLAN.md → archive/PLAN.md} +4 -4
  27. package/docs/archive/REPO_AUDIT.md +23 -0
  28. package/docs/guides/INSTALL.md +140 -0
  29. package/docs/guides/NEOVIM_IDE_GUIDE.md +52 -0
  30. package/docs/guides/THEMING.md +222 -0
  31. package/docs/guides/TROUBLESHOOTING.md +148 -0
  32. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +723 -0
  33. package/docs/index.md +39 -0
  34. package/docs/interop/A2A.md +32 -0
  35. package/docs/manual/00-introduction.md +85 -0
  36. package/docs/manual/01-concepts/01-architecture.md +134 -0
  37. package/docs/manual/01-concepts/02-trust-model.md +178 -0
  38. package/docs/manual/01-concepts/03-theme-engine.md +182 -0
  39. package/docs/manual/01-concepts/04-fleet.md +142 -0
  40. package/docs/manual/01-concepts/05-self-healing.md +197 -0
  41. package/docs/manual/02-tutorials/01-first-install.md +192 -0
  42. package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
  43. package/docs/manual/02-tutorials/03-create-profile.md +238 -0
  44. package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
  45. package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
  46. package/docs/manual/03-reference/01-dot-cli.md +413 -0
  47. package/docs/manual/03-reference/02-config-files.md +259 -0
  48. package/docs/manual/03-reference/03-environment.md +120 -0
  49. package/docs/manual/03-reference/04-templates.md +184 -0
  50. package/docs/manual/03-reference/05-feature-flags.md +118 -0
  51. package/docs/manual/04-cookbook/01-recipes.md +281 -0
  52. package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
  53. package/docs/manual/04-cookbook/03-faq.md +167 -0
  54. package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
  55. package/docs/manual/05-appendices/B-security-checklist.md +78 -0
  56. package/docs/manual/05-appendices/C-glossary.md +36 -0
  57. package/docs/manual/05-appendices/D-bibliography.md +54 -0
  58. package/docs/manual/05-appendices/E-license.md +34 -0
  59. package/docs/manual/_toc.yml +58 -0
  60. package/docs/manual/command-index.md +58 -0
  61. package/docs/manual/concept-index.md +164 -0
  62. package/docs/operations/ATTESTATION.md +39 -0
  63. package/docs/operations/MAINTENANCE.md +59 -0
  64. package/docs/operations/MIGRATION.md +101 -0
  65. package/docs/operations/OPERATIONS.md +164 -0
  66. package/docs/operations/RELIABILITY.md +116 -0
  67. package/docs/{ROADMAP.md → operations/ROADMAP.md} +22 -22
  68. package/docs/operations/TESTING.md +195 -0
  69. package/docs/operations/TRACEABILITY.md +31 -0
  70. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
  71. package/docs/operations/VERSION_SYNC.md +344 -0
  72. package/docs/reference/ALIASES.md +124 -0
  73. package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
  74. package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
  75. package/docs/reference/FEATURES.md +62 -0
  76. package/docs/reference/FONTS.md +108 -0
  77. package/docs/reference/PROFILES.md +65 -0
  78. package/docs/reference/SCREENSHOTS.md +117 -0
  79. package/docs/reference/SCRIPTS.md +67 -0
  80. package/docs/reference/SUPPORT_MATRIX.md +74 -0
  81. package/docs/reference/THEMES.md +113 -0
  82. package/docs/reference/TOOLS.md +105 -0
  83. package/docs/reference/UTILS.md +151 -0
  84. package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
  85. package/docs/security/AUTOMATION_SECRETS.md +22 -0
  86. package/docs/security/COMPLIANCE.md +453 -0
  87. package/docs/security/ENCRYPTION.md +52 -0
  88. package/docs/security/FMEA.md +155 -0
  89. package/docs/security/INCIDENT_RESPONSE.md +575 -0
  90. package/docs/security/KEYS.md +45 -0
  91. package/docs/security/KEY_ROTATION.md +219 -0
  92. package/docs/security/MCP_POLICY.md +69 -0
  93. package/docs/security/POLICY_RELEASES.md +33 -0
  94. package/docs/security/README.md +24 -0
  95. package/docs/security/SECRETS.md +146 -0
  96. package/docs/security/SECURITY.md +41 -0
  97. package/docs/security/SECURITY_CHECKLIST.md +44 -0
  98. package/docs/security/SOUP_REGISTER.md +32 -0
  99. package/docs/security/THREAT_MODEL.md +120 -0
  100. package/docs/security/VERIFICATION_VALIDATION.md +224 -0
  101. package/docs/themes/README.md +6 -0
  102. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
  103. package/docs/themes/hero-shot.svg +78 -0
  104. package/dot_config/.module-manifest.json +69 -0
  105. package/dot_config/ai/identity.md +20 -0
  106. package/dot_config/ai/patterns/architect.md +14 -0
  107. package/dot_config/ai/patterns/hardener.md +13 -0
  108. package/dot_config/ai/patterns/refactor.md +13 -0
  109. package/dot_config/aider/aider.conf.yml +32 -0
  110. package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
  111. package/dot_config/ansible/ansible.cfg +11 -0
  112. package/dot_config/atuin/config.toml +40 -0
  113. package/dot_config/bat/config +23 -0
  114. package/dot_config/brave-flags.conf.tmpl +7 -0
  115. package/dot_config/btop/btop.conf +16 -0
  116. package/dot_config/btop/themes/tokyonight.theme +34 -0
  117. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  118. package/dot_config/claude/mcp_servers.json +20 -0
  119. package/dot_config/containers/containers.conf +14 -0
  120. package/dot_config/curl/dot_curlrc +18 -0
  121. package/dot_config/dlv/config.yml +39 -0
  122. package/dot_config/docker/config.json +15 -0
  123. package/dot_config/dotfiles/agent-card.json +29 -0
  124. package/dot_config/dotfiles/agent-profiles.json +92 -0
  125. package/dot_config/dotfiles/boot/README.md +11 -0
  126. package/dot_config/dotfiles/grub/README.md +11 -0
  127. package/dot_config/dotfiles/lock/README.md +11 -0
  128. package/dot_config/dotfiles/mcp-lock.json +33 -0
  129. package/dot_config/dotfiles/mcp-policy.json +52 -0
  130. package/dot_config/dotfiles/mcp-registry.json +47 -0
  131. package/dot_config/dotfiles/model-registry.json +20 -0
  132. package/dot_config/dotfiles/policy-bundles.json +38 -0
  133. package/dot_config/dotfiles/prompt-registry.json +16 -0
  134. package/dot_config/dotfiles/versions.env +18 -0
  135. package/dot_config/duf/duf.conf +6 -0
  136. package/dot_config/duti/defaults.duti +5 -0
  137. package/dot_config/emoji/emoji.txt +34 -0
  138. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  139. package/dot_config/environment.d/90-wayland.conf +19 -0
  140. package/dot_config/fastfetch/config.jsonc +28 -0
  141. package/dot_config/firefox/user.js.tmpl +58 -0
  142. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  143. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  144. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  145. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  146. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  147. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  148. package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
  149. package/dot_config/fish/config.fish.tmpl +44 -0
  150. package/dot_config/fish/fish_plugins +1 -0
  151. package/dot_config/fish/functions/_.fish +3 -0
  152. package/dot_config/fish/functions/_cached_eval.fish +58 -0
  153. package/dot_config/fish/functions/als.fish +46 -0
  154. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  155. package/dot_config/fish/functions/c.fish +3 -0
  156. package/dot_config/fish/functions/cat.fish +9 -0
  157. package/dot_config/fish/functions/d.fish +7 -0
  158. package/dot_config/fish/functions/dot.fish +34 -0
  159. package/dot_config/fish/functions/h.fish +3 -0
  160. package/dot_config/fish/functions/l.fish +7 -0
  161. package/dot_config/fish/functions/la.fish +7 -0
  162. package/dot_config/fish/functions/ll.fish +7 -0
  163. package/dot_config/fish/functions/log_error.fish +13 -0
  164. package/dot_config/fish/functions/log_info.fish +13 -0
  165. package/dot_config/fish/functions/lr.fish +7 -0
  166. package/dot_config/fish/functions/lra.fish +7 -0
  167. package/dot_config/fish/functions/ls.fish +7 -0
  168. package/dot_config/fish/functions/lt.fish +7 -0
  169. package/dot_config/fish/functions/lta.fish +7 -0
  170. package/dot_config/fish/functions/notify-run.fish +11 -0
  171. package/dot_config/fish/functions/q.fish +3 -0
  172. package/dot_config/fish/functions/silent-run.fish +7 -0
  173. package/dot_config/fish/functions/yy.fish +8 -0
  174. package/dot_config/flatpak/flatpak.list +4 -0
  175. package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
  176. package/dot_config/foot/foot.ini.tmpl +33 -0
  177. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  178. package/dot_config/fzf/fzf.zsh +48 -0
  179. package/dot_config/gem/gemrc +9 -0
  180. package/dot_config/gh/config.yml +12 -0
  181. package/dot_config/ghostty/config.tmpl +165 -0
  182. package/dot_config/git/allowed_signers.tmpl +18 -0
  183. package/dot_config/git/attributes +12 -0
  184. package/dot_config/git/commit-template +10 -0
  185. package/dot_config/git/ignore +27 -0
  186. package/dot_config/gnupg/gpg-agent.conf +11 -0
  187. package/dot_config/go/golangci.yml +118 -0
  188. package/dot_config/go/gopls.json +30 -0
  189. package/dot_config/goose/config.yaml +29 -0
  190. package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
  191. package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
  192. package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
  193. package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
  194. package/dot_config/htop/htoprc +20 -0
  195. package/dot_config/inputrc +2 -0
  196. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  197. package/dot_config/just/justfile +122 -0
  198. package/dot_config/k9s/config.yaml +65 -0
  199. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  200. package/dot_config/kanshi/config.tmpl +22 -0
  201. package/dot_config/karabiner/karabiner.json +14 -0
  202. package/dot_config/kitty/kitty.conf.tmpl +53 -0
  203. package/dot_config/lazydocker/config.yml +186 -0
  204. package/dot_config/lazygit/config.yml +35 -0
  205. package/dot_config/mako/config +47 -0
  206. package/dot_config/mas/masapps.txt +5 -0
  207. package/dot_config/micro/settings.json +3 -0
  208. package/dot_config/mimeapps.list +77 -0
  209. package/dot_config/minikube/config.json +13 -0
  210. package/dot_config/mise/config.toml +99 -0
  211. package/dot_config/mongosh/mongoshrc.js +68 -0
  212. package/dot_config/mpv/input.conf +47 -0
  213. package/dot_config/mpv/mpv.conf +47 -0
  214. package/dot_config/mycli/myclirc +67 -0
  215. package/dot_config/nano/nanorc +28 -0
  216. package/dot_config/ncdu/config +12 -0
  217. package/dot_config/niri/config.kdl.tmpl +327 -0
  218. package/dot_config/nushell/aliases.nu +18 -0
  219. package/dot_config/nushell/completions.nu.tmpl +52 -0
  220. package/dot_config/nushell/config.nu.tmpl +86 -0
  221. package/dot_config/nushell/env.nu.tmpl +94 -0
  222. package/dot_config/nushell/functions.nu.tmpl +17 -0
  223. package/dot_config/nvim/init.lua +18 -0
  224. package/dot_config/nvim/lazy-lock.json +58 -0
  225. package/dot_config/nvim/lua/config/autocmds.lua +107 -0
  226. package/dot_config/nvim/lua/config/keymaps.lua +92 -0
  227. package/dot_config/nvim/lua/config/lazy.lua +44 -0
  228. package/dot_config/nvim/lua/config/options.lua +49 -0
  229. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  230. package/dot_config/nvim/lua/plugins/coding.lua +216 -0
  231. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  232. package/dot_config/nvim/lua/plugins/dap.lua +412 -0
  233. package/dot_config/nvim/lua/plugins/editor.lua +55 -0
  234. package/dot_config/nvim/lua/plugins/git.lua +10 -0
  235. package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
  236. package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
  237. package/dot_config/nvim/lua/plugins/rust.lua +34 -0
  238. package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
  239. package/dot_config/nvim/lua/plugins/ui.lua +509 -0
  240. package/dot_config/paru/paru.conf +10 -0
  241. package/dot_config/pip/pip.conf.tmpl +32 -0
  242. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  243. package/dot_config/pueue/pueue.yml +34 -0
  244. package/dot_config/pypoetry/config.toml +6 -0
  245. package/dot_config/pyrightconfig.json +5 -0
  246. package/dot_config/raycast/README.md +13 -0
  247. package/dot_config/redis/redisclirc +41 -0
  248. package/dot_config/ripgrep/ripgreprc +21 -0
  249. package/dot_config/shell/00-core-paths.sh.tmpl +133 -0
  250. package/dot_config/shell/05-core-safety.sh +47 -0
  251. package/dot_config/shell/10-secrets.sh +40 -0
  252. package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
  253. package/dot_config/shell/40-ls-colors.sh +48 -0
  254. package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
  255. package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
  256. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
  257. package/dot_config/shell/90-ux-aliases.sh.tmpl +120 -0
  258. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +54 -0
  259. package/dot_config/shell/Brewfile +207 -0
  260. package/dot_config/shell/Brewfile.cask +92 -0
  261. package/dot_config/shell/Brewfile.cli +127 -0
  262. package/dot_config/shell/README.md +267 -0
  263. package/dot_config/shell/als_data.txt.tmpl +65 -0
  264. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  265. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  266. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  267. package/dot_config/sops/dot_sops.yaml +23 -0
  268. package/dot_config/starship.toml.tmpl +202 -0
  269. package/dot_config/swaylock/config +43 -0
  270. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  271. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  272. package/dot_config/systemd/user/pueued.service +12 -0
  273. package/dot_config/systemd/user/ssh-agent.service +12 -0
  274. package/dot_config/task/Taskfile.yml +86 -0
  275. package/dot_config/tflint/tflint.hcl +9 -0
  276. package/dot_config/tmux/tmux.conf.tmpl +223 -0
  277. package/dot_config/topgrade.toml.tmpl +54 -0
  278. package/dot_config/user-dirs.dirs +9 -0
  279. package/dot_config/vscode/extensions.txt +11 -0
  280. package/dot_config/vscode/settings.json.tmpl +82 -0
  281. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  282. package/dot_config/waybar/style.css.tmpl +211 -0
  283. package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
  284. package/dot_config/wget/wgetrc +12 -0
  285. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  286. package/dot_config/yarn/yarnrc.yml +36 -0
  287. package/dot_config/yazi/keymap.toml +67 -0
  288. package/dot_config/yazi/theme.toml +102 -0
  289. package/dot_config/yazi/yazi.toml +40 -0
  290. package/dot_config/zathura/zathurarc +52 -0
  291. package/dot_config/zellij/config.kdl.tmpl +79 -0
  292. package/dot_config/zsh/dot_zprofile +7 -0
  293. package/dot_config/zsh/dot_zshenv +5 -0
  294. package/dot_config/zsh/dot_zshrc.tmpl +498 -0
  295. package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
  296. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
  297. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  298. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  299. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +194 -0
  300. package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
  301. package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
  302. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  303. package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
  304. package/dot_local/bin/executable_ai-update +195 -0
  305. package/dot_local/bin/executable_ai_core +152 -0
  306. package/dot_local/bin/executable_antigravity +11 -0
  307. package/dot_local/bin/executable_b64 +84 -0
  308. package/dot_local/bin/executable_bm +77 -0
  309. package/dot_local/bin/executable_cb +39 -0
  310. package/dot_local/bin/executable_dot +589 -0
  311. package/dot_local/bin/executable_dot-ai +36 -0
  312. package/dot_local/bin/executable_dot-bootstrap +77 -0
  313. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  314. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  315. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  316. package/dot_local/bin/executable_dot-theme-sync +952 -0
  317. package/dot_local/bin/executable_dot_completion +57 -0
  318. package/dot_local/bin/executable_dtags +28 -0
  319. package/dot_local/bin/executable_epoch +67 -0
  320. package/dot_local/bin/executable_extract +41 -0
  321. package/dot_local/bin/executable_gbd +52 -0
  322. package/dot_local/bin/executable_gd +42 -0
  323. package/dot_local/bin/executable_git-ai-commit +175 -0
  324. package/dot_local/bin/executable_git-ai-diff +169 -0
  325. package/dot_local/bin/executable_gl +101 -0
  326. package/dot_local/bin/executable_hash +161 -0
  327. package/dot_local/bin/executable_hashsum +160 -0
  328. package/dot_local/bin/executable_hex +115 -0
  329. package/dot_local/bin/executable_jsonv +78 -0
  330. package/dot_local/bin/executable_jwt +94 -0
  331. package/dot_local/bin/executable_kill-port +75 -0
  332. package/dot_local/bin/executable_lorem +118 -0
  333. package/dot_local/bin/executable_mkscript +35 -0
  334. package/dot_local/bin/executable_monitor +56 -0
  335. package/dot_local/bin/executable_myip +51 -0
  336. package/dot_local/bin/executable_notify +22 -0
  337. package/dot_local/bin/executable_open +36 -0
  338. package/dot_local/bin/executable_pw +27 -0
  339. package/dot_local/bin/executable_rec-start +46 -0
  340. package/dot_local/bin/executable_rec-stop +35 -0
  341. package/dot_local/bin/executable_regex +132 -0
  342. package/dot_local/bin/executable_start-niri +8 -0
  343. package/dot_local/bin/executable_tmux-sessionizer +314 -0
  344. package/dot_local/bin/executable_tour +175 -0
  345. package/dot_local/bin/executable_up +21 -0
  346. package/dot_local/bin/executable_update +142 -0
  347. package/dot_local/bin/executable_uuid +87 -0
  348. package/dot_local/bin/executable_win +32 -0
  349. package/dot_local/bin/executable_yamlv +57 -0
  350. package/dot_local/share/bash-completion/completions/dot +72 -0
  351. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  352. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  353. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  354. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  355. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  356. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  357. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  358. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  359. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  360. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  361. package/dot_local/share/man/man1/dot.1 +149 -0
  362. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  363. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  364. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  365. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  366. package/dot_local/share/zsh/completions/.keep +0 -0
  367. package/dot_local/share/zsh/completions/_dot +283 -0
  368. package/install.sh +342 -0
  369. package/package.json +1 -1
  370. package/scripts/ci/check-copyright-headers.sh +96 -0
  371. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  372. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  373. package/scripts/ci/validate-ci-config.sh +224 -0
  374. package/scripts/demo/record.sh +42 -0
  375. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  376. package/scripts/diagnostics/alias-governance.sh +137 -0
  377. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  378. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  379. package/scripts/diagnostics/benchmark.sh +381 -0
  380. package/scripts/diagnostics/conflicts.sh +72 -0
  381. package/scripts/diagnostics/doctor-unified.sh +38 -0
  382. package/scripts/diagnostics/doctor.sh +541 -0
  383. package/scripts/diagnostics/drift-dashboard.sh +37 -0
  384. package/scripts/diagnostics/health.sh +597 -0
  385. package/scripts/diagnostics/history-analysis.sh +85 -0
  386. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  387. package/scripts/diagnostics/perf.sh +225 -0
  388. package/scripts/diagnostics/scorecard.sh +118 -0
  389. package/scripts/diagnostics/secret-governance.sh +58 -0
  390. package/scripts/diagnostics/security-score.sh +438 -0
  391. package/scripts/diagnostics/smoke-test.sh +87 -0
  392. package/scripts/diagnostics/snapshot.sh +89 -0
  393. package/scripts/diagnostics/verify.sh +107 -0
  394. package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
  395. package/scripts/diagnostics/version-locks.sh +79 -0
  396. package/scripts/diagnostics/workstation-attestation.sh +181 -0
  397. package/scripts/docs/build-manual.sh +883 -0
  398. package/scripts/docs/check-manual.sh +213 -0
  399. package/scripts/dot/commands/agent.sh +465 -0
  400. package/scripts/dot/commands/ai.sh +416 -0
  401. package/scripts/dot/commands/aliases.sh +250 -0
  402. package/scripts/dot/commands/appearance.sh +80 -0
  403. package/scripts/dot/commands/core.sh +185 -0
  404. package/scripts/dot/commands/diagnostics.sh +229 -0
  405. package/scripts/dot/commands/fleet.sh +399 -0
  406. package/scripts/dot/commands/lint.sh +177 -0
  407. package/scripts/dot/commands/manual.sh +168 -0
  408. package/scripts/dot/commands/meta.sh +248 -0
  409. package/scripts/dot/commands/patterns.sh +54 -0
  410. package/scripts/dot/commands/restore.sh +231 -0
  411. package/scripts/dot/commands/secrets.sh +223 -0
  412. package/scripts/dot/commands/security.sh +76 -0
  413. package/scripts/dot/commands/tools.sh +469 -0
  414. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  415. package/scripts/dot/lib/bento.sh +49 -0
  416. package/scripts/dot/lib/log.sh +194 -0
  417. package/scripts/dot/lib/platform.sh +98 -0
  418. package/scripts/dot/lib/ui.sh +507 -0
  419. package/scripts/dot/lib/utils.sh +372 -0
  420. package/scripts/fonts/install-nerd-fonts.sh +68 -0
  421. package/scripts/fonts/patch-fonts.sh +35 -0
  422. package/scripts/git-hooks/install.sh +11 -0
  423. package/scripts/git-hooks/pre-commit +12 -0
  424. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  425. package/scripts/git-hooks/pre-push +29 -0
  426. package/scripts/git-hooks/prepare-commit-msg +29 -0
  427. package/scripts/lib/secrets_provider.sh +158 -0
  428. package/scripts/maintenance/check-updates.sh +131 -0
  429. package/scripts/ops/ai-setup.sh +55 -0
  430. package/scripts/ops/bundle.sh +77 -0
  431. package/scripts/ops/chaos.sh +49 -0
  432. package/scripts/ops/chezmoi-apply.sh +270 -0
  433. package/scripts/ops/chezmoi-diff.sh +15 -0
  434. package/scripts/ops/chezmoi-remove.sh +45 -0
  435. package/scripts/ops/chezmoi-update.sh +48 -0
  436. package/scripts/ops/heal-chezmoi.sh +51 -0
  437. package/scripts/ops/heal-system.sh +128 -0
  438. package/scripts/ops/heal-tools.sh +340 -0
  439. package/scripts/ops/heal.sh +222 -0
  440. package/scripts/ops/post-apply-repair.sh +106 -0
  441. package/scripts/ops/prewarm.sh +127 -0
  442. package/scripts/ops/release.sh +252 -0
  443. package/scripts/ops/rollback.sh +589 -0
  444. package/scripts/ops/setup.sh +137 -0
  445. package/scripts/ops/teleport.sh +33 -0
  446. package/scripts/qa/coverage-baseline.sh +60 -0
  447. package/scripts/qa/docs-coverage.sh +111 -0
  448. package/scripts/qa/reliability-audit.sh +138 -0
  449. package/scripts/qa/traceability-coverage.sh +116 -0
  450. package/scripts/qa/validate-examples.sh +26 -0
  451. package/scripts/qa/wsl-contract.sh +11 -0
  452. package/scripts/release/package-policy-bundles.sh +125 -0
  453. package/scripts/secrets/age-init.sh +70 -0
  454. package/scripts/secrets/create-secrets-file.sh +45 -0
  455. package/scripts/secrets/encrypt-ssh-key.sh +43 -0
  456. package/scripts/security/backup.sh +57 -0
  457. package/scripts/security/dns-doh.sh +51 -0
  458. package/scripts/security/encryption-check.sh +54 -0
  459. package/scripts/security/enforce-policies.sh +334 -0
  460. package/scripts/security/firewall.sh +90 -0
  461. package/scripts/security/lock-configs.sh +57 -0
  462. package/scripts/security/lock-screen.sh +55 -0
  463. package/scripts/security/manage-secrets.sh +428 -0
  464. package/scripts/security/ssh-cert.sh +203 -0
  465. package/scripts/security/telemetry-kill.sh +50 -0
  466. package/scripts/security/usb-safety.sh +51 -0
  467. package/scripts/theme/apply-gnome-theme.sh +328 -0
  468. package/scripts/theme/extract-theme.py +677 -0
  469. package/scripts/theme/install-boot-logo.sh +62 -0
  470. package/scripts/theme/install-catppuccin-themes.sh +370 -0
  471. package/scripts/theme/install-cursors.sh +25 -0
  472. package/scripts/theme/install-file-icons.sh +26 -0
  473. package/scripts/theme/install-grub-theme.sh +61 -0
  474. package/scripts/theme/install-lock-icon.sh +30 -0
  475. package/scripts/theme/merge-wallpaper.sh +141 -0
  476. package/scripts/theme/rebuild-themes.sh +309 -0
  477. package/scripts/theme/switch.sh +421 -0
  478. package/scripts/theme/wallpaper-rotate.sh +136 -0
  479. package/scripts/theme/wallpaper-sync.sh +397 -0
  480. package/scripts/tools/cmatrix.sh +21 -0
  481. package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
  482. package/scripts/tools/emoji-picker.sh +48 -0
  483. package/scripts/tools/figlet-banner.sh +18 -0
  484. package/scripts/tools/log-rotate.sh +30 -0
  485. package/scripts/tools/lolcat-wrap.sh +19 -0
  486. package/scripts/tools/pipes.sh +48 -0
  487. package/scripts/tuning/linux.sh +185 -0
  488. package/scripts/tuning/macos.sh +55 -0
  489. package/scripts/uninstall.sh +85 -0
  490. package/scripts/version-sync.sh +487 -0
  491. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  492. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  493. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  494. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  495. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  496. package/templates/projects/go/README.md +4 -0
  497. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  498. package/templates/projects/go/go.sum +0 -0
  499. package/templates/projects/molecule/README.md +7 -0
  500. package/templates/projects/molecule/converge.yml +7 -0
  501. package/templates/projects/molecule/molecule.yml +16 -0
  502. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  503. package/templates/projects/node/README.md +4 -0
  504. package/templates/projects/node/package-lock.json +12 -0
  505. package/templates/projects/node/src/index.js +1 -0
  506. package/templates/projects/packer/README.md +15 -0
  507. package/templates/projects/packer/main.pkr.hcl +15 -0
  508. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  509. package/templates/projects/python/README.md +4 -0
  510. package/templates/projects/python/pyproject.toml +15 -0
  511. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  512. package/templates/projects/python/tests/test_basic.py +1 -0
  513. package/docs/ARCHITECTURE.md +0 -62
  514. package/docs/COMPLIANCE.md +0 -47
  515. package/docs/OPERATIONS.md +0 -103
  516. package/docs/PR_DESCRIPTION.md +0 -150
  517. package/docs/ROADMAP_legacy.md +0 -556
  518. package/docs/SECURITY_CHECKLIST.md +0 -25
  519. package/docs/TASK.md +0 -99
  520. package/docs/WALKTHROUGH.md +0 -46
  521. package/scripts/backup.sh +0 -142
  522. package/scripts/banner.sh +0 -20
  523. package/scripts/benchmark.sh +0 -20
  524. package/scripts/build.sh +0 -41
  525. package/scripts/clean.sh +0 -31
  526. package/scripts/compile.sh +0 -54
  527. package/scripts/copy.sh +0 -108
  528. package/scripts/doctor.sh +0 -79
  529. package/scripts/dotfiles.sh +0 -63
  530. package/scripts/download.sh +0 -35
  531. package/scripts/help.sh +0 -57
  532. package/scripts/lock-configs.sh +0 -57
  533. package/scripts/package.sh +0 -46
  534. package/scripts/ssh.sh +0 -55
  535. package/scripts/teleport.sh +0 -23
  536. package/scripts/test-aliases.sh +0 -25
  537. package/scripts/test_smoke.sh +0 -88
  538. package/scripts/unpack.sh +0 -28
@@ -0,0 +1,498 @@
1
+ # .dotfiles (v{{ .dotfiles_version }}) - <https://dotfiles.io>
2
+ # Made With ❤️ in London, United Kingdom
3
+ # Designed by
4
+ # Copyright (c) 2015-2026. All rights reserved.
5
+ # License: MIT
6
+
7
+ # Performance optimization - skip if not interactive
8
+ [[ -o interactive ]] || return
9
+
10
+ # Only source once if being re-sourced (in the same shell scope)
11
+ if [[ -v DOTFILES_SOURCED ]]; then
12
+ return
13
+ fi
14
+ DOTFILES_SOURCED=1
15
+
16
+ {{- /* Input Validation: Ensure crucial variables are set */ -}}
17
+ {{- if not .chezmoi.homeDir -}}
18
+ {{- fail "Critical Error: .chezmoi.homeDir is not set!" -}}
19
+ {{- end -}}
20
+
21
+ {{- if eq .chezmoi.os "darwin" }}
22
+ export FORCE_COLOR_OS="macOS"
23
+ {{- else if eq .chezmoi.os "linux" }}
24
+ export FORCE_COLOR_OS="Linux"
25
+ {{- else if eq .chezmoi.os "windows" }}
26
+ export FORCE_COLOR_OS="Windows"
27
+ {{- end }}
28
+
29
+ {{- $profile := default "laptop" .profile -}}
30
+ {{- $features := default (dict "zsh" true "nvim" true "tmux" true "gui" true "secrets" true) .features -}}
31
+ {{- $theme := default "macos-monterey-dark" .theme -}}
32
+ {{- $strict_mode := default false (index . "strict_mode") -}}
33
+ {{- $enabled := list -}}
34
+ {{- range $k, $v := $features }}{{- if $v }}{{- $enabled = append $enabled $k }}{{- end }}{{- end }}
35
+
36
+ export DOTFILES_PROFILE="{{ $profile }}"
37
+ export DOTFILES_FEATURES="{{ join "," $enabled }}"
38
+ export DOTFILES_THEME="{{ $theme }}"
39
+ : ${DOTFILES_STARTUP_MODE:=full}
40
+ : ${DOTFILES_FAST:=0}
41
+ : ${DOTFILES_ULTRA_FAST:=0}
42
+ : ${DOTFILES_AI:=0}
43
+ : ${DOTFILES_ALIAS_STRICT_MODE:={{ if $strict_mode }}1{{ else }}0{{ end }}}
44
+ : ${DOTFILES_ULTRA_FAST_PROMPT:=1}
45
+ : ${DOTFILES_LAYERS_LOAD:=ondemand}
46
+ : ${DOTFILES_LAYERS_PREWARM:=system,text,api}
47
+ : ${DOTFILES_ALIAS_WRAPPER:={{ if .features.alias_wrapper }}1{{ else }}0{{ end }}}
48
+
49
+ # Default compinit based on profile (can be overridden by env)
50
+ if [[ -z "${DOTFILES_ENABLE_COMPINIT+x}" ]]; then
51
+ case "${DOTFILES_PROFILE}" in
52
+ laptop|desktop) DOTFILES_ENABLE_COMPINIT=1 ;;
53
+ *) DOTFILES_ENABLE_COMPINIT=0 ;;
54
+ esac
55
+ fi
56
+
57
+ # Startup mode override (if explicit mode set and flags not already set)
58
+ if [[ "${DOTFILES_FAST}" == "0" ]] && [[ "${DOTFILES_ULTRA_FAST}" == "0" ]]; then
59
+ if [[ "${DOTFILES_STARTUP_MODE}" == "fast" ]]; then
60
+ DOTFILES_FAST=1
61
+ elif [[ "${DOTFILES_STARTUP_MODE}" == "ultra" ]]; then
62
+ DOTFILES_ULTRA_FAST=1
63
+ DOTFILES_FAST=1
64
+ fi
65
+ fi
66
+
67
+ # Ultra-fast mode: minimal init (skip rc.d, plugins, prompts, AI, completions)
68
+ if [[ "${DOTFILES_ULTRA_FAST}" == "1" ]]; then
69
+ export DOTFILES_FAST=1
70
+ if [[ "${DOTFILES_ULTRA_FAST_PROMPT}" == "1" ]]; then
71
+ PROMPT='%n@%m:%~%# '
72
+ RPROMPT=''
73
+ fi
74
+ # Ensure no precmd/preexec hooks run in ultra-fast mode
75
+ precmd_functions=()
76
+ preexec_functions=()
77
+ unset -f precmd preexec
78
+ typeset -aU path
79
+ return
80
+ fi
81
+
82
+ # Cached eval helper — sources cached init scripts, regenerates when stale
83
+ # Debug/Trace modes — observability for shell startup
84
+ : ${DOTFILES_DEBUG:=0}
85
+ : ${DOTFILES_TRACE:=0}
86
+
87
+ if [[ "${DOTFILES_TRACE}" == "1" ]]; then
88
+ _dotfiles_trace_dir="${XDG_STATE_HOME:-$HOME/.local/state}/dotfiles"
89
+ mkdir -p "$_dotfiles_trace_dir"
90
+ exec 3>&2 2>"$_dotfiles_trace_dir/debug.log"
91
+ PS4='+%D{%s.%6.} %N:%i> '
92
+ set -x
93
+ fi
94
+
95
+ if [[ "${DOTFILES_DEBUG}" == "1" ]]; then
96
+ _dotfiles_debug_start=${EPOCHREALTIME:-$(date +%s.%N)}
97
+ _dotfiles_debug() {
98
+ local now=${EPOCHREALTIME:-$(date +%s.%N)}
99
+ local elapsed
100
+ elapsed=$(printf '%.0f' "$(( (now - _dotfiles_debug_start) * 1000 ))")
101
+ printf '[debug %4dms] %s\n' "$elapsed" "$1" >&2
102
+ }
103
+ _dotfiles_debug "startup begins"
104
+ else
105
+ _dotfiles_debug() { :; }
106
+ fi
107
+
108
+ _SHELL_CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh"
109
+ [[ -d "$_SHELL_CACHE" ]] || mkdir -p "$_SHELL_CACHE"
110
+
111
+ _cached_eval() {
112
+ local label=$1; shift
113
+ local cache="$_SHELL_CACHE/${label}.zsh"
114
+ local bin="${commands[$1]}"
115
+ if [[ -f "$cache" ]] && [[ -z "$bin" || "$cache" -nt "$bin" ]]; then
116
+ source "$cache"
117
+ else
118
+ local init_output
119
+ local suspicious_re
120
+ init_output=$("$@" 2>/dev/null)
121
+ suspicious_re='(curl[[:space:]].*\|[[:space:]]*(ba)?sh|wget[[:space:]].*\|[[:space:]]*(ba)?sh|nc[[:space:]]+-e|/dev/tcp/|base64[[:space:]]+-d[[:space:]]*\|)'
122
+ # Reject suspicious patterns indicating malicious payloads
123
+ if printf '%s\n' "$init_output" | LC_ALL=C grep -Eqs -- "$suspicious_re"; then
124
+ print -u2 "[WARN] Suspicious output from $label init, skipping"
125
+ return 1
126
+ fi
127
+ print -r -- "$init_output" > "${cache}.tmp.$$"
128
+ mv "${cache}.tmp.$$" "$cache"
129
+ source "$cache"
130
+ { zcompile "$cache" } &!
131
+ fi
132
+ }
133
+
134
+ # Lightweight precmd hook manager (faster than add-zsh-hook)
135
+ _dotfiles_add_precmd() {
136
+ local fn="$1"
137
+ [[ -z "$fn" ]] && return 0
138
+ precmd_functions=(${precmd_functions:#$fn} "$fn")
139
+ }
140
+
141
+ _dotfiles_del_precmd() {
142
+ local fn="$1"
143
+ [[ -z "$fn" ]] && return 0
144
+ precmd_functions=(${precmd_functions:#$fn})
145
+ }
146
+
147
+ # ==============================================================================
148
+ # Dotfiles 2026: Zero-Jank & Artifact-Only Mode Foundation
149
+ # ==============================================================================
150
+ export DOTFILES_ARTIFACT_MODE="${DOTFILES_ARTIFACT_MODE:-0}"
151
+
152
+ if [[ "$DOTFILES_ARTIFACT_MODE" == "1" ]]; then
153
+ # The Canvas: Strip away all visual noise.
154
+ export PROMPT="%F{green}➜ %f"
155
+ export RPROMPT=""
156
+ # Suppress all background job notifications
157
+ setopt NO_NOTIFY
158
+ setopt NO_MONITOR
159
+ fi
160
+ # ==============================================================================
161
+
162
+ # Lightweight preexec hook manager
163
+ _dotfiles_add_preexec() {
164
+ local fn="$1"
165
+ [[ -z "$fn" ]] && return 0
166
+ preexec_functions=(${preexec_functions:#$fn} "$fn")
167
+ }
168
+
169
+ _dotfiles_del_preexec() {
170
+ local fn="$1"
171
+ [[ -z "$fn" ]] && return 0
172
+ preexec_functions=(${preexec_functions:#$fn})
173
+ }
174
+
175
+ ## 🆅🅰🆁🅸🅰🆁🅸🅰🅱🅻🅴🆂 - Core variables, plugins, and options
176
+ ZSH_RC_DIR="${HOME}/.config/zsh/rc.d"
177
+ if [[ -d "${ZSH_RC_DIR}" ]]; then
178
+ for rc_file in "${ZSH_RC_DIR}"/**/*.zsh(N); do
179
+ source "${rc_file}"
180
+ done
181
+ fi
182
+
183
+ # User-local rc.d extensions (not managed by chezmoi)
184
+ if [[ -d "${ZDOTDIR:-$HOME/.config/zsh}/rc.d.local" ]]; then
185
+ for _rc_local in "${ZDOTDIR:-$HOME/.config/zsh}"/rc.d.local/*.zsh(N); do
186
+ source "$_rc_local"
187
+ done
188
+ unset _rc_local
189
+ fi
190
+
191
+ ###############################
192
+ # Performance: Auto-Zcompile #
193
+ ###############################
194
+ zcompile_many() {
195
+ local f
196
+ for f; do
197
+ # Compile if source is newer than .zwc or .zwc doesn't exist
198
+ if [[ -f "$f" ]]; then
199
+ if [[ ! -f "${f}.zwc" || "$f" -nt "${f}.zwc" ]]; then
200
+ zcompile "$f"
201
+ fi
202
+ fi
203
+ done
204
+ }
205
+
206
+ # Compile main config and generated files in background
207
+ if [[ -o interactive ]]; then
208
+ (
209
+ zcompile_many "${HOME}/.zshrc" \
210
+ "${HOME}/.config/shell/aliases.sh" \
211
+ "${HOME}/.config/shell/paths.sh" \
212
+ "${HOME}/.config/shell/functions.sh" \
213
+ "${HOME}/.config/shell/00-core-paths.sh" \
214
+ "${HOME}/.config/shell/05-core-safety.sh" \
215
+ "${HOME}/.config/shell/40-ls-colors.sh" \
216
+ "${HOME}/.config/shell/50-logic-functions-core.sh" \
217
+ "${HOME}/.config/shell/90-ux-aliases.sh" \
218
+ /opt/homebrew/opt/fzf/shell/completion.zsh \
219
+ /opt/homebrew/opt/fzf/shell/key-bindings.zsh &
220
+ )
221
+ fi
222
+
223
+ # Legacy Loader (Disabled in favor of Chezmoi Universal Config)
224
+ # _DOTFILES_CACHE="${HOME}/.zsh_dotfiles_cache"
225
+ # load_dotfiles() { ... }
226
+ # load_dotfiles
227
+
228
+ # Remove duplicates in zsh $PATH
229
+ typeset -aU path
230
+
231
+ # Load local customizations if they exist
232
+ [[ -f "${HOME}/.zshrc.local" ]] && source "${HOME}/.zshrc.local"
233
+
234
+ # Vendor / Enterprise Hooks (Site-local overrides)
235
+ # Supports drop-in configs from system management tools
236
+ if [[ -d "/etc/dotfiles/defaults.d" ]]; then
237
+ for hook in /etc/dotfiles/defaults.d/*.sh(N); do
238
+ source "$hook"
239
+ done
240
+ fi
241
+
242
+ # Load Chezmoi-managed Universal Configuration Layers (Lexical Order)
243
+ # 00-19: Core (Paths, Safety)
244
+ # 20-49: Middleware (Exports, Options)
245
+ # 50-89: Toolchain & Logic (Functions, Rust tools)
246
+ # 90-99: UX (Aliases, Prompts)
247
+ #
248
+ # Optimized loading of core configurations + eager aliases
249
+ if [[ "${DOTFILES_FAST}" == "1" ]]; then
250
+ _core_layers=(00-core-paths 05-core-safety)
251
+ else
252
+ _core_layers=(00-core-paths 05-core-safety 90-ux-aliases)
253
+ fi
254
+ for core_layer in "${_core_layers[@]}"; do
255
+ [[ -f "${HOME}/.config/shell/${core_layer}.sh" ]] && source "${HOME}/.config/shell/${core_layer}.sh"
256
+ done
257
+ unset _core_layers
258
+
259
+ # Starship prompt (eager — must survive cache clears for consistent UI)
260
+ if [[ "$DOTFILES_ARTIFACT_MODE" != "1" ]] && (( ${+commands[starship]} )); then
261
+ _cached_eval starship-init starship init zsh
262
+ fi
263
+
264
+ # User-local modules (aliases, functions — not managed by chezmoi)
265
+ for _mod_dir in "${XDG_CONFIG_HOME:-$HOME/.config}/dotfiles/modules.d"/*(N/); do
266
+ for _mod_file in "$_mod_dir"/*.sh(N); do
267
+ source "$_mod_file"
268
+ done
269
+ done
270
+ unset _mod_dir _mod_file
271
+
272
+ if [[ "${DOTFILES_FAST}" != "1" ]]; then
273
+ # On-demand loading of heavy layers (functions + aliases only when needed)
274
+ DOTFILES_LAYERS_LOADED=0
275
+ DOTFILES_LAYERS_LOAD_STATE=idle
276
+ unset DOTFILES_LAYERS_LOAD_STATUS
277
+ _dotfiles_load_heavy_layers_stage1() {
278
+ [[ "${DOTFILES_LAYERS_LOAD_STATE}" == "stage1" || "${DOTFILES_LAYERS_LOAD_STATE}" == "ready" ]] && return 0
279
+ DOTFILES_LAYERS_LOAD_STATE=loading
280
+ unset DOTFILES_LAYERS_LOAD_STATUS
281
+ [[ -f "${HOME}/.config/shell/10-secrets.sh" ]] && source "${HOME}/.config/shell/10-secrets.sh"
282
+ [[ -f "${HOME}/.config/shell/40-ls-colors.sh" ]] && source "${HOME}/.config/shell/40-ls-colors.sh"
283
+ [[ -f "${HOME}/.config/shell/50-logic-functions-core.sh" ]] && source "${HOME}/.config/shell/50-logic-functions-core.sh"
284
+ [[ -f "${HOME}/.config/shell/91-ux-aliases-lazy.sh" ]] && source "${HOME}/.config/shell/91-ux-aliases-lazy.sh"
285
+ DOTFILES_LAYERS_LOAD_STATE=stage1
286
+ }
287
+
288
+ _dotfiles_load_heavy_layers_stage2() {
289
+ [[ "${DOTFILES_LAYERS_LOAD_STATE}" == "ready" ]] && return 0
290
+ [[ -f "${HOME}/.config/shell/51-logic-functions-extra.sh" ]] && source "${HOME}/.config/shell/51-logic-functions-extra.sh"
291
+ # Compile extra functions for faster future loads
292
+ if command -v zcompile >/dev/null 2>&1; then
293
+ { [[ ! -f "${HOME}/.config/shell/51-logic-functions-extra.sh.zwc" || "${HOME}/.config/shell/51-logic-functions-extra.sh" -nt "${HOME}/.config/shell/51-logic-functions-extra.sh.zwc" ]] && zcompile "${HOME}/.config/shell/51-logic-functions-extra.sh" } &!
294
+ fi
295
+ DOTFILES_LAYERS_LOAD_STATE=ready
296
+ DOTFILES_LAYERS_LOAD_STATUS=ready
297
+ export DOTFILES_LAYERS_LOAD_STATUS
298
+ }
299
+
300
+ _dotfiles_prewarm_groups() {
301
+ local -a _groups
302
+ _groups=(${(s:,:)DOTFILES_LAYERS_PREWARM})
303
+ local g
304
+ for g in "${_groups[@]}"; do
305
+ [[ -z "$g" ]] && continue
306
+ if (( ${+functions[_dotfiles_load_group_${g}]} )); then
307
+ "_dotfiles_load_group_${g}"
308
+ fi
309
+ done
310
+ }
311
+
312
+ _dotfiles_load_heavy_layers() {
313
+ [[ "${DOTFILES_LAYERS_LOADED}" == "1" ]] && return 0
314
+ DOTFILES_LAYERS_LOADED=1
315
+ _dotfiles_load_heavy_layers_stage1
316
+ _dotfiles_load_heavy_layers_stage2
317
+ }
318
+
319
+ # Optional background prewarm for heavy layers (idle after first prompt)
320
+ _dotfiles_schedule_heavy_layers() {
321
+ if [[ "${DOTFILES_LAYERS_LOAD}" == "background" ]]; then
322
+ if [[ -n "${ZSH_EXECUTION_STRING:-}" ]]; then
323
+ (sleep 1; _dotfiles_load_heavy_layers_stage1; _dotfiles_load_heavy_layers_stage2; _dotfiles_prewarm_groups) &
324
+ else
325
+ zmodload zsh/sched 2>/dev/null || return 0
326
+ sched +1 _dotfiles_load_heavy_layers_stage1
327
+ sched +2 _dotfiles_load_heavy_layers_stage2
328
+ # Prewarm selected groups after stage2 loads stubs
329
+ sched +3 _dotfiles_prewarm_groups
330
+ fi
331
+ fi
332
+ }
333
+ # Compatibility: use add-zsh-hook when available (tests rely on this)
334
+ autoload -Uz add-zsh-hook
335
+ _load_deferred_layers() {
336
+ if (( ${+functions[add-zsh-hook]} )); then
337
+ add-zsh-hook -d precmd _load_deferred_layers
338
+ else
339
+ _dotfiles_del_precmd _load_deferred_layers
340
+ fi
341
+ _dotfiles_schedule_heavy_layers
342
+ }
343
+ if (( ${+functions[add-zsh-hook]} )); then
344
+ add-zsh-hook precmd _load_deferred_layers
345
+ else
346
+ _dotfiles_add_precmd _load_deferred_layers
347
+ fi
348
+
349
+ # Capture existing command_not_found handler (if any)
350
+ if (( ${+functions[command_not_found_handler]} )); then
351
+ functions[_dotfiles_prev_command_not_found_handler]="${functions[command_not_found_handler]}"
352
+ fi
353
+
354
+ command_not_found_handler() {
355
+ local cmd="$1"
356
+ shift || true
357
+
358
+ if [[ "${DOTFILES_LAYERS_LOADED}" != "1" ]]; then
359
+ _dotfiles_load_heavy_layers_stage1
360
+ if (( ${+functions[$cmd]} )); then
361
+ "$cmd" "$@"
362
+ return $?
363
+ fi
364
+ if alias "$cmd" >/dev/null 2>&1; then
365
+ local -a _args
366
+ _args=("$@")
367
+ eval "$cmd ${(@q)_args}"
368
+ unset _args
369
+ return $?
370
+ fi
371
+ _dotfiles_load_heavy_layers_stage2
372
+ if (( ${+functions[$cmd]} )); then
373
+ "$cmd" "$@"
374
+ return $?
375
+ fi
376
+ if alias "$cmd" >/dev/null 2>&1; then
377
+ local -a _args2
378
+ _args2=("$@")
379
+ eval "$cmd ${(@q)_args2}"
380
+ unset _args2
381
+ return $?
382
+ fi
383
+ fi
384
+
385
+ if (( ${+functions[_dotfiles_prev_command_not_found_handler]} )); then
386
+ _dotfiles_prev_command_not_found_handler "$cmd" "$@"
387
+ return $?
388
+ fi
389
+
390
+ print -r -- "zsh: command not found: ${cmd}" >&2
391
+ return 127
392
+ }
393
+
394
+ # dot load: force heavy layers now
395
+ unalias dot 2>/dev/null
396
+ functions[dot]='
397
+ if [[ "$1" == "load" ]]; then
398
+ if [[ "$2" == "--background" ]]; then
399
+ DOTFILES_LAYERS_LOAD=background
400
+ _dotfiles_schedule_heavy_layers
401
+ return 0
402
+ fi
403
+ if [[ "$2" == "--status" ]]; then
404
+ if [[ "$3" == "--watch" ]]; then
405
+ local _timeout="${4:-5}"
406
+ local _t0=$EPOCHREALTIME
407
+ if [[ "${DOTFILES_LAYERS_LOAD_STATE:-idle}" == "idle" ]]; then
408
+ _dotfiles_load_heavy_layers
409
+ fi
410
+ while [[ "${DOTFILES_LAYERS_LOAD_STATE:-idle}" != "ready" ]]; do
411
+ sleep 0.1
412
+ if [[ -n "${_timeout}" && "${_timeout}" != "0" ]]; then
413
+ local _t1=$EPOCHREALTIME
414
+ if (( (_t1 - _t0) >= _timeout )); then
415
+ print -r -- "timeout"
416
+ return 124
417
+ fi
418
+ fi
419
+ done
420
+ fi
421
+ print -r -- "${DOTFILES_LAYERS_LOAD_STATE:-idle}"
422
+ return 0
423
+ fi
424
+ _dotfiles_load_heavy_layers
425
+ return 0
426
+ fi
427
+ "$HOME/.local/bin/dot" "$@"
428
+ '
429
+ fi
430
+
431
+ # Essential Aliases (fallback if 90-ux-aliases.sh is unavailable)
432
+ if command -v bat >/dev/null; then
433
+ alias cat="bat"
434
+ fi
435
+
436
+
437
+ if [[ "${DOTFILES_FAST}" != "1" ]]; then
438
+ ## AI / Predictive Shell (opt-in)
439
+ if [[ "${DOTFILES_AI}" == "1" ]]; then
440
+ [[ -f "$HOME/.config/shell/custom/context_suggest.zsh" ]] && source "$HOME/.config/shell/custom/context_suggest.zsh"
441
+ [[ -f "$HOME/.config/shell/custom/error_analysis.zsh" ]] && source "$HOME/.config/shell/custom/error_analysis.zsh"
442
+ fi
443
+
444
+ : ${DOTFILES_DEFER_TOOLS:=1}
445
+
446
+ # Dotfiles 2026 Async Loader: Move heavy binary path resolution to background
447
+ _dotfiles_async_init() {
448
+ [[ "$DOTFILES_FAST" == "1" ]] && return
449
+ local tools=(mise atuin starship zoxide)
450
+ local t
451
+ for t in $tools; do
452
+ if [[ -x "${commands[$t]}" ]]; then
453
+ case "$t" in
454
+ mise)
455
+ _cached_eval mise-init mise activate zsh
456
+ ;;
457
+ atuin)
458
+ _cached_eval atuin-init atuin init zsh
459
+ ;;
460
+ starship)
461
+ [[ "$DOTFILES_ARTIFACT_MODE" == "0" ]] && _cached_eval starship-init starship init zsh
462
+ ;;
463
+ zoxide)
464
+ _cached_eval zoxide-init zoxide init zsh
465
+ ;;
466
+ esac
467
+ fi
468
+ done
469
+ }
470
+
471
+ # Deferred Hydration for Zero-Jank Experience
472
+ _dotfiles_deferred_hydration() {
473
+ # Unregister self
474
+ _dotfiles_del_precmd _dotfiles_deferred_hydration
475
+ _dotfiles_del_preexec _dotfiles_deferred_hydration
476
+
477
+ # Check if already hydrated in this shell instance
478
+ [[ -n "$DOTFILES_HYDRATED" ]] && return 0
479
+ export DOTFILES_HYDRATED=1
480
+
481
+ _dotfiles_async_init
482
+
483
+ # Bento-Grid 2.0 (Liquid Glass Dashboard)
484
+ # Only render if interactive and not in restricted ultra-fast mode
485
+ if [[ "$DOTFILES_ARTIFACT_MODE" == "1" ]]; then
486
+ [[ -f "$HOME/.dotfiles/scripts/dot/lib/bento.sh" ]] && (bash "$HOME/.dotfiles/scripts/dot/lib/bento.sh" </dev/null; kill -WINCH $$) &!
487
+ fi
488
+ }
489
+
490
+ # 1. Idle trigger (500ms)
491
+ zmodload zsh/sched 2>/dev/null
492
+ sched +1 _dotfiles_deferred_hydration 2>/dev/null
493
+
494
+ # 2. First-action trigger (Prompt or Enter)
495
+ _dotfiles_add_precmd _dotfiles_deferred_hydration
496
+ _dotfiles_add_preexec _dotfiles_deferred_hydration
497
+
498
+ fi
@@ -0,0 +1,77 @@
1
+ # shellcheck shell=bash
2
+ # Cognitive Shell Enhancements
3
+ if [[ -o interactive ]]; then
4
+ # Carapace completions — cached to avoid subshell on every startup
5
+ if command -v carapace >/dev/null 2>&1; then
6
+ if typeset -f _cached_eval >/dev/null 2>&1; then
7
+ _cached_eval carapace carapace _carapace zsh
8
+ else
9
+ source <(carapace _zsh)
10
+ fi
11
+ fi
12
+
13
+ # thefuck — lazy-loaded to avoid ~200ms startup penalty
14
+ if command -v thefuck >/dev/null 2>&1; then
15
+ _lazy_load_thefuck() {
16
+ unset -f fuck _lazy_load_thefuck 2>/dev/null
17
+ _cached_eval "thefuck-alias" thefuck --alias
18
+ }
19
+ fuck() { _lazy_load_thefuck; fuck "$@"; }
20
+ alias fix='fuck'
21
+ fi
22
+ fi
23
+
24
+ # Fallback command shims for environments with aliases disabled.
25
+ # These are lightweight functions to ensure core shortcuts still work.
26
+
27
+ # Opt-out with: export DOTFILES_ALIAS_SHIMS=0
28
+ if [[ "${DOTFILES_ALIAS_SHIMS:-1}" != "1" ]]; then
29
+ return 0
30
+ fi
31
+
32
+ # Avoid redefining if already present.
33
+ if ! typeset -f c >/dev/null 2>&1; then
34
+ c() { clear; }
35
+ fi
36
+ if ! typeset -f q >/dev/null 2>&1; then
37
+ q() { exit; }
38
+ fi
39
+ if ! typeset -f e >/dev/null 2>&1; then
40
+ e() { "${EDITOR:-nano}" "$@"; }
41
+ fi
42
+ if ! typeset -f h >/dev/null 2>&1; then
43
+ h() { history; }
44
+ fi
45
+ if ! typeset -f l >/dev/null 2>&1; then
46
+ l() { command -v eza >/dev/null 2>&1 && eza --sort Name --icons --group-directories-first "$@" || command ls "$@"; }
47
+ fi
48
+ if ! typeset -f ll >/dev/null 2>&1; then
49
+ ll() { command -v eza >/dev/null 2>&1 && eza -alF --sort Name --icons --group-directories-first "$@" || command ls -lA "$@"; }
50
+ fi
51
+ if ! typeset -f la >/dev/null 2>&1; then
52
+ la() { command -v eza >/dev/null 2>&1 && eza -a --sort Name --icons --group-directories-first "$@" || command ls -a "$@"; }
53
+ fi
54
+ if ! typeset -f lt >/dev/null 2>&1; then
55
+ lt() { command -v eza >/dev/null 2>&1 && eza -aT --sort Name --icons --group-directories-first "$@" || command ls -R "$@"; }
56
+ fi
57
+ if ! typeset -f lr >/dev/null 2>&1; then
58
+ lr() { command -v eza >/dev/null 2>&1 && eza -alF --recurse --sort Name --icons --group-directories-first "$@" || command ls -lAR "$@"; }
59
+ fi
60
+ if ! typeset -f lra >/dev/null 2>&1; then
61
+ lra() { command -v eza >/dev/null 2>&1 && eza -alF --recurse --all --sort Name --icons --group-directories-first "$@" || command ls -lAR "$@"; }
62
+ fi
63
+ if ! typeset -f lta >/dev/null 2>&1; then
64
+ lta() { command -v eza >/dev/null 2>&1 && eza -aT --all --sort Name --icons --group-directories-first "$@" || command ls -aR "$@"; }
65
+ fi
66
+ if ! typeset -f d >/dev/null 2>&1; then
67
+ d() { command -v dot >/dev/null 2>&1 && dot "$@" || command -v docker >/dev/null 2>&1 && docker "$@"; }
68
+ fi
69
+ if ! typeset -f i >/dev/null 2>&1; then
70
+ i() { command -v epoch >/dev/null 2>&1 && epoch "$@"; }
71
+ fi
72
+ if ! typeset -f a >/dev/null 2>&1; then
73
+ a() { command -v ai_core >/dev/null 2>&1 && ai_core query "$@"; }
74
+ fi
75
+ if ! typeset -f _ >/dev/null 2>&1; then
76
+ _() { sudo "$@"; }
77
+ fi
@@ -0,0 +1,18 @@
1
+ # YubiKey FIDO2/U2F security key helper
2
+ if [[ -x /usr/lib/ssh/ssh-sk-helper ]]; then
3
+ export SSH_SK_HELPER=/usr/lib/ssh/ssh-sk-helper
4
+ fi
5
+
6
+ # SSH agent: auto-start if no agent is running (interactive only)
7
+ if [[ -o interactive ]] && [[ -z "$SSH_AUTH_SOCK" ]]; then
8
+ eval "$(ssh-agent -s)" >/dev/null 2>&1
9
+
10
+ # Add default key with timeout guard (2s max) to prevent startup hangs
11
+ if [[ -f ~/.ssh/id_ed25519 ]]; then
12
+ if [[ "$OSTYPE" == darwin* ]]; then
13
+ timeout 2 ssh-add --apple-use-keychain ~/.ssh/id_ed25519 2>/dev/null || true
14
+ else
15
+ timeout 2 ssh-add ~/.ssh/id_ed25519 2>/dev/null || true
16
+ fi
17
+ fi
18
+ fi
@@ -0,0 +1,28 @@
1
+ # Environment and core variables
2
+ export HOSTNAME="${HOST}"
3
+ export INPUTRC="${HOME}/.inputrc"
4
+ export OS_ARCH='{{ output "uname" "-m" | trim }}'
5
+ export OS_NAME='{{ output "uname" | trim }}'
6
+ export OS_VERSION='{{ output "uname" "-r" | trim }}'
7
+ export USER_LANGUAGE="en_GB.UTF-8"
8
+ export ARCHFLAGS="-arch ${OS_ARCH}"
9
+ export DOTFILES_VERSION='{{ .dotfiles_version }}'
10
+ export DOTFILES="${HOME}/.dotfiles/lib"
11
+ export LANG="${USER_LANGUAGE}"
12
+ export LANGUAGE="${USER_LANGUAGE}"
13
+ export LC_ALL="${USER_LANGUAGE}"
14
+ export LC_CTYPE="${USER_LANGUAGE}"
15
+ export TERM="xterm-256color"
16
+
17
+ # fnm multishell path for environments without /run/user/... access
18
+ if [[ -z "${XDG_RUNTIME_DIR:-}" ]]; then
19
+ export XDG_RUNTIME_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/run"
20
+ fi
21
+ if [[ ! -d "${XDG_RUNTIME_DIR}" ]]; then
22
+ mkdir -p "${XDG_RUNTIME_DIR}" 2>/dev/null || true
23
+ fi
24
+
25
+ export FNM_MULTISHELL_PATH="${FNM_MULTISHELL_PATH:-${XDG_RUNTIME_DIR}/fnm_multishells}"
26
+ if [[ ! -d "${FNM_MULTISHELL_PATH}" ]]; then
27
+ mkdir -p "${FNM_MULTISHELL_PATH}" 2>/dev/null || true
28
+ fi
@@ -0,0 +1,65 @@
1
+ # Zinit plugin manager
2
+ [[ "${DOTFILES_FAST:-0}" == "1" ]] && return 0
3
+ [[ "${DOTFILES_ULTRA_FAST:-0}" == "1" ]] && return 0
4
+
5
+ ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git"
6
+
7
+ _dotfiles_zinit_git_policy() {
8
+ [[ -d "$ZINIT_HOME/.git" ]] || return 0
9
+ command git -C "$ZINIT_HOME" config --local merge.verifySignatures false >/dev/null 2>&1 || true
10
+ }
11
+
12
+ _dotfiles_zinit_init() {
13
+ if [[ ! -f "$ZINIT_HOME/zinit.zsh" ]]; then
14
+ print -P "%F{33}▓▒░ %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
15
+ command mkdir -p "$(dirname "$ZINIT_HOME")" && command chmod g-rwX "$(dirname "$ZINIT_HOME")"
16
+ command git clone https://github.com/zdharma-continuum/zinit "$ZINIT_HOME" && \
17
+ print -P "%F{33}▓▒░ %F{34}Installation successful.%f%b" || \
18
+ print -P "%F{160}▓▒░ The clone has failed.%f%b"
19
+ fi
20
+
21
+ _dotfiles_zinit_git_policy
22
+
23
+ source "$ZINIT_HOME/zinit.zsh"
24
+ autoload -Uz _zinit
25
+ (( ${+_comps} )) && _comps[zinit]=_zinit
26
+
27
+ # Load Zsh Plugins (Turbo mode - deferred loading, pinned to stable releases)
28
+ zinit ice wait lucid ver"0.8.0"
29
+ zinit light zsh-users/zsh-syntax-highlighting
30
+ zinit ice wait lucid ver"v0.7.1" atload"_zsh_autosuggest_start"
31
+ zinit light zsh-users/zsh-autosuggestions
32
+ zinit ice wait lucid ver"0.35.0" blockf atpull"zinit creinstall -q ."
33
+ zinit light zsh-users/zsh-completions
34
+ }
35
+
36
+ # Defer Zinit init for faster first prompt (opt-out by setting DOTFILES_DEFER_ZINIT=0)
37
+ : ${DOTFILES_DEFER_ZINIT:=1}
38
+ : ${DOTFILES_DEFER_ZINIT_MODE:=preexec}
39
+
40
+ if [[ "${DOTFILES_DEFER_ZINIT}" == "1" ]]; then
41
+ # Stub to auto-load zinit on first call (e.g. by topgrade)
42
+ zinit() {
43
+ unfunction zinit
44
+ _dotfiles_zinit_init
45
+ zinit "$@"
46
+ }
47
+
48
+ _dotfiles_zinit_deferred() {
49
+ if [[ "${DOTFILES_DEFER_ZINIT_MODE}" == "preexec" ]]; then
50
+ _dotfiles_del_preexec _dotfiles_zinit_deferred
51
+ else
52
+ _dotfiles_del_precmd _dotfiles_zinit_deferred
53
+ fi
54
+ # If zinit was already loaded via the stub, this is a no-op
55
+ (( ${+functions[zinit]} )) && [[ "$(whence -w zinit)" == "zinit: function" ]] || _dotfiles_zinit_init
56
+ }
57
+
58
+ if [[ "${DOTFILES_DEFER_ZINIT_MODE}" == "preexec" ]]; then
59
+ _dotfiles_add_preexec _dotfiles_zinit_deferred
60
+ else
61
+ _dotfiles_add_precmd _dotfiles_zinit_deferred
62
+ fi
63
+ else
64
+ _dotfiles_zinit_init
65
+ fi