@sebastienrousseau/dotfiles 0.2.481 → 0.2.500

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (546) hide show
  1. package/CHANGELOG.md +122 -32
  2. package/LICENSE +1 -1
  3. package/README.md +211 -242
  4. package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
  5. package/docs/AI.md +102 -0
  6. package/docs/COPYRIGHT +2 -2
  7. package/docs/NAMING_CONVENTIONS.md +95 -0
  8. package/docs/README.md +58 -249
  9. package/docs/adr/ADR-004-cli-architecture.md +2 -2
  10. package/docs/adr/ADR-006-shell-selection.md +2 -2
  11. package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
  12. package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
  13. package/docs/adr/README.md +2 -3
  14. package/docs/architecture/ARCHITECTURE.md +113 -0
  15. package/docs/architecture/INTEROP.md +36 -0
  16. package/docs/architecture/REPO_LAYOUT.md +237 -0
  17. package/docs/architecture/WALKTHROUGH.md +82 -0
  18. package/docs/architecture/fleet-deployment.md +73 -0
  19. package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
  20. package/docs/archive/MILESTONE_v0.2.493.md +43 -0
  21. package/docs/{PLAN.md → archive/PLAN.md} +1 -1
  22. package/docs/guides/INSTALL.md +140 -0
  23. package/docs/{NEOVIM_IDE_GUIDE.md → guides/NEOVIM_IDE_GUIDE.md} +12 -12
  24. package/docs/guides/THEMING.md +222 -0
  25. package/docs/{TROUBLESHOOTING.md → guides/TROUBLESHOOTING.md} +36 -0
  26. package/docs/{WSL2_NIX_TROUBLESHOOTING.md → guides/WSL2_NIX_TROUBLESHOOTING.md} +8 -8
  27. package/docs/index.md +39 -0
  28. package/docs/interop/A2A.md +32 -0
  29. package/docs/manual/00-introduction.md +85 -0
  30. package/docs/manual/01-concepts/01-architecture.md +134 -0
  31. package/docs/manual/01-concepts/02-trust-model.md +178 -0
  32. package/docs/manual/01-concepts/03-theme-engine.md +182 -0
  33. package/docs/manual/01-concepts/04-fleet.md +142 -0
  34. package/docs/manual/01-concepts/05-self-healing.md +197 -0
  35. package/docs/manual/02-tutorials/01-first-install.md +192 -0
  36. package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
  37. package/docs/manual/02-tutorials/03-create-profile.md +238 -0
  38. package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
  39. package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
  40. package/docs/manual/03-reference/01-dot-cli.md +413 -0
  41. package/docs/manual/03-reference/02-config-files.md +259 -0
  42. package/docs/manual/03-reference/03-environment.md +120 -0
  43. package/docs/manual/03-reference/04-templates.md +184 -0
  44. package/docs/manual/03-reference/05-feature-flags.md +118 -0
  45. package/docs/manual/04-cookbook/01-recipes.md +281 -0
  46. package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
  47. package/docs/manual/04-cookbook/03-faq.md +167 -0
  48. package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
  49. package/docs/manual/05-appendices/B-security-checklist.md +78 -0
  50. package/docs/manual/05-appendices/C-glossary.md +36 -0
  51. package/docs/manual/05-appendices/D-bibliography.md +54 -0
  52. package/docs/manual/05-appendices/E-license.md +34 -0
  53. package/docs/manual/_toc.yml +58 -0
  54. package/docs/manual/command-index.md +58 -0
  55. package/docs/manual/concept-index.md +164 -0
  56. package/docs/operations/ATTESTATION.md +39 -0
  57. package/docs/operations/MAINTENANCE.md +59 -0
  58. package/docs/operations/MIGRATION.md +101 -0
  59. package/docs/operations/OPERATIONS.md +164 -0
  60. package/docs/operations/RELIABILITY.md +116 -0
  61. package/docs/{ROADMAP.md → operations/ROADMAP.md} +11 -11
  62. package/docs/operations/TESTING.md +195 -0
  63. package/docs/operations/TRACEABILITY.md +31 -0
  64. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
  65. package/docs/operations/VERSION_SYNC.md +344 -0
  66. package/docs/{ALIASES.md → reference/ALIASES.md} +2 -6
  67. package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
  68. package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
  69. package/docs/reference/FEATURES.md +62 -0
  70. package/docs/reference/FONTS.md +108 -0
  71. package/docs/reference/PROFILES.md +65 -0
  72. package/docs/{SCREENSHOTS.md → reference/SCREENSHOTS.md} +26 -25
  73. package/docs/reference/SCRIPTS.md +67 -0
  74. package/docs/reference/SUPPORT_MATRIX.md +74 -0
  75. package/docs/reference/THEMES.md +113 -0
  76. package/docs/reference/TOOLS.md +105 -0
  77. package/docs/reference/UTILS.md +151 -0
  78. package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
  79. package/docs/security/AUTOMATION_SECRETS.md +22 -0
  80. package/docs/security/COMPLIANCE.md +453 -0
  81. package/docs/security/ENCRYPTION.md +52 -0
  82. package/docs/security/FMEA.md +155 -0
  83. package/docs/security/INCIDENT_RESPONSE.md +575 -0
  84. package/docs/security/KEYS.md +45 -0
  85. package/docs/security/MCP_POLICY.md +69 -0
  86. package/docs/security/POLICY_RELEASES.md +33 -0
  87. package/docs/security/README.md +24 -0
  88. package/docs/security/SECRETS.md +146 -0
  89. package/docs/security/SECURITY.md +41 -0
  90. package/docs/security/SECURITY_CHECKLIST.md +44 -0
  91. package/docs/security/SOUP_REGISTER.md +32 -0
  92. package/docs/security/THREAT_MODEL.md +120 -0
  93. package/docs/security/VERIFICATION_VALIDATION.md +224 -0
  94. package/docs/themes/README.md +3 -17
  95. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
  96. package/docs/themes/hero-shot.svg +78 -0
  97. package/dot_config/.module-manifest.json +69 -0
  98. package/dot_config/ai/identity.md +20 -0
  99. package/dot_config/ai/patterns/architect.md +14 -0
  100. package/dot_config/ai/patterns/hardener.md +13 -0
  101. package/dot_config/ai/patterns/refactor.md +13 -0
  102. package/dot_config/aider/aider.conf.yml +1 -1
  103. package/dot_config/alacritty/alacritty.toml.tmpl +41 -469
  104. package/dot_config/atuin/config.toml +18 -1
  105. package/dot_config/bat/config +16 -1
  106. package/dot_config/claude/mcp_servers.json +3 -32
  107. package/dot_config/dotfiles/agent-card.json +29 -0
  108. package/dot_config/dotfiles/agent-profiles.json +92 -0
  109. package/dot_config/dotfiles/boot/README.md +1 -1
  110. package/dot_config/dotfiles/grub/README.md +1 -1
  111. package/dot_config/dotfiles/lock/README.md +1 -1
  112. package/dot_config/dotfiles/mcp-lock.json +33 -0
  113. package/dot_config/dotfiles/mcp-policy.json +52 -0
  114. package/dot_config/dotfiles/mcp-registry.json +47 -0
  115. package/dot_config/dotfiles/model-registry.json +20 -0
  116. package/dot_config/dotfiles/policy-bundles.json +38 -0
  117. package/dot_config/dotfiles/prompt-registry.json +16 -0
  118. package/dot_config/dotfiles/versions.env +18 -0
  119. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  120. package/dot_config/environment.d/90-wayland.conf +19 -0
  121. package/dot_config/firefox/user.js.tmpl +58 -0
  122. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  123. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  124. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  125. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  126. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  127. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  128. package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
  129. package/dot_config/fish/config.fish.tmpl +44 -0
  130. package/dot_config/fish/fish_plugins +1 -0
  131. package/dot_config/fish/functions/_.fish +3 -0
  132. package/dot_config/fish/functions/_cached_eval.fish +58 -0
  133. package/dot_config/fish/functions/als.fish +46 -0
  134. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  135. package/dot_config/fish/functions/c.fish +3 -0
  136. package/dot_config/fish/functions/cat.fish +9 -0
  137. package/dot_config/fish/functions/d.fish +7 -0
  138. package/dot_config/fish/functions/dot.fish +34 -0
  139. package/dot_config/fish/functions/h.fish +3 -0
  140. package/dot_config/fish/functions/l.fish +7 -0
  141. package/dot_config/fish/functions/la.fish +7 -0
  142. package/dot_config/fish/functions/ll.fish +7 -0
  143. package/dot_config/fish/functions/log_error.fish +13 -0
  144. package/dot_config/fish/functions/log_info.fish +13 -0
  145. package/dot_config/fish/functions/lr.fish +7 -0
  146. package/dot_config/fish/functions/lra.fish +7 -0
  147. package/dot_config/fish/functions/ls.fish +7 -0
  148. package/dot_config/fish/functions/lt.fish +7 -0
  149. package/dot_config/fish/functions/lta.fish +7 -0
  150. package/dot_config/fish/functions/notify-run.fish +11 -0
  151. package/dot_config/fish/functions/q.fish +3 -0
  152. package/dot_config/fish/functions/silent-run.fish +7 -0
  153. package/dot_config/fish/functions/yy.fish +8 -0
  154. package/dot_config/fontconfig/fonts.conf.tmpl +13 -0
  155. package/dot_config/foot/foot.ini.tmpl +33 -0
  156. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  157. package/dot_config/fzf/fzf.zsh +48 -0
  158. package/dot_config/ghostty/config.tmpl +69 -565
  159. package/dot_config/git/allowed_signers.tmpl +18 -0
  160. package/dot_config/git/commit-template +10 -0
  161. package/dot_config/gnupg/{gpg-agent.conf.tmpl → gpg-agent.conf} +3 -3
  162. package/dot_config/goose/config.yaml +2 -2
  163. package/dot_config/gtk-3.0/gtk.css.tmpl +59 -180
  164. package/dot_config/gtk-3.0/settings.ini.tmpl +5 -44
  165. package/dot_config/gtk-4.0/gtk.css.tmpl +79 -136
  166. package/dot_config/gtk-4.0/settings.ini.tmpl +5 -8
  167. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  168. package/dot_config/just/justfile +18 -0
  169. package/dot_config/kanshi/config.tmpl +22 -0
  170. package/dot_config/kitty/kitty.conf.tmpl +44 -508
  171. package/dot_config/lazygit/config.yml +18 -6
  172. package/dot_config/mako/config +47 -0
  173. package/dot_config/micro/settings.json +3 -0
  174. package/dot_config/mimeapps.list +77 -0
  175. package/dot_config/mise/config.toml +63 -5
  176. package/dot_config/mongosh/mongoshrc.js +1 -0
  177. package/dot_config/mpv/input.conf +47 -0
  178. package/dot_config/mpv/mpv.conf +47 -0
  179. package/dot_config/niri/config.kdl.tmpl +327 -0
  180. package/dot_config/nushell/aliases.nu +18 -0
  181. package/dot_config/nushell/completions.nu.tmpl +52 -0
  182. package/dot_config/nushell/config.nu.tmpl +86 -0
  183. package/dot_config/nushell/env.nu.tmpl +94 -0
  184. package/dot_config/nushell/functions.nu.tmpl +17 -0
  185. package/dot_config/nvim/init.lua +14 -0
  186. package/dot_config/nvim/lazy-lock.json +45 -14
  187. package/dot_config/nvim/lua/config/autocmds.lua +45 -1
  188. package/dot_config/nvim/lua/config/keymaps.lua +13 -8
  189. package/dot_config/nvim/lua/config/lazy.lua +22 -12
  190. package/dot_config/nvim/lua/config/options.lua +1 -0
  191. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  192. package/dot_config/nvim/lua/plugins/coding.lua +11 -29
  193. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  194. package/dot_config/nvim/lua/plugins/dap.lua +215 -4
  195. package/dot_config/nvim/lua/plugins/editor.lua +6 -10
  196. package/dot_config/nvim/lua/plugins/git.lua +1 -0
  197. package/dot_config/nvim/lua/plugins/lsp.lua +16 -81
  198. package/dot_config/nvim/lua/plugins/markdown.lua +1 -0
  199. package/dot_config/nvim/lua/plugins/rust.lua +1 -0
  200. package/dot_config/nvim/lua/plugins/sessions.lua +1 -0
  201. package/dot_config/nvim/lua/plugins/ui.lua +23 -51
  202. package/dot_config/paru/paru.conf +10 -0
  203. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  204. package/dot_config/pueue/pueue.yml +34 -0
  205. package/dot_config/raycast/README.md +1 -1
  206. package/dot_config/ripgrep/ripgreprc +21 -0
  207. package/dot_config/shell/00-core-paths.sh.tmpl +62 -24
  208. package/dot_config/shell/05-core-safety.sh +47 -0
  209. package/dot_config/shell/10-secrets.sh +40 -0
  210. package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
  211. package/dot_config/shell/40-ls-colors.sh +48 -0
  212. package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
  213. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
  214. package/dot_config/shell/90-ux-aliases.sh.tmpl +90 -5
  215. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +33 -2
  216. package/dot_config/shell/Brewfile.cli +8 -0
  217. package/dot_config/shell/README.md +9 -9
  218. package/dot_config/shell/als_data.txt.tmpl +65 -0
  219. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  220. package/dot_config/shell/custom/context_suggest.zsh +50 -50
  221. package/dot_config/shell/custom/error_analysis.zsh +29 -29
  222. package/dot_config/starship.toml.tmpl +85 -7
  223. package/dot_config/swaylock/config +43 -0
  224. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  225. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  226. package/dot_config/systemd/user/pueued.service +12 -0
  227. package/dot_config/systemd/user/ssh-agent.service +12 -0
  228. package/dot_config/tmux/tmux.conf.tmpl +80 -38
  229. package/dot_config/topgrade.toml.tmpl +54 -0
  230. package/dot_config/user-dirs.dirs +9 -0
  231. package/dot_config/vscode/settings.json.tmpl +9 -50
  232. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  233. package/dot_config/waybar/style.css.tmpl +211 -0
  234. package/dot_config/wezterm/wezterm.lua.tmpl +31 -203
  235. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  236. package/dot_config/yazi/keymap.toml +67 -0
  237. package/dot_config/yazi/theme.toml +102 -0
  238. package/dot_config/zathura/zathurarc +52 -0
  239. package/dot_config/zellij/{config.kdl → config.kdl.tmpl} +1 -1
  240. package/dot_config/zsh/dot_zprofile +1 -7
  241. package/dot_config/zsh/dot_zshenv +2 -3
  242. package/dot_config/zsh/dot_zshrc.tmpl +368 -69
  243. package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
  244. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +17 -4
  245. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +4 -4
  246. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  247. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +101 -30
  248. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  249. package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
  250. package/dot_local/bin/executable_ai-update +195 -0
  251. package/dot_local/bin/executable_ai_core +113 -91
  252. package/dot_local/bin/executable_antigravity +11 -0
  253. package/dot_local/bin/executable_b64 +61 -36
  254. package/dot_local/bin/executable_bm +77 -0
  255. package/dot_local/bin/executable_cb +39 -0
  256. package/dot_local/bin/executable_dot +543 -132
  257. package/dot_local/bin/executable_dot-ai +36 -0
  258. package/dot_local/bin/executable_dot-bootstrap +77 -0
  259. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  260. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  261. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  262. package/dot_local/bin/executable_dot-theme-sync +952 -0
  263. package/dot_local/bin/executable_dot_completion +2 -0
  264. package/dot_local/bin/executable_dtags +28 -0
  265. package/dot_local/bin/executable_epoch +43 -38
  266. package/dot_local/bin/executable_extract +32 -99
  267. package/dot_local/bin/executable_gbd +52 -0
  268. package/dot_local/bin/executable_gd +42 -0
  269. package/dot_local/bin/executable_git-ai-commit +35 -20
  270. package/dot_local/bin/executable_git-ai-diff +33 -18
  271. package/dot_local/bin/executable_gl +101 -0
  272. package/dot_local/bin/executable_hash +56 -18
  273. package/dot_local/bin/executable_hashsum +160 -0
  274. package/dot_local/bin/executable_hex +44 -8
  275. package/dot_local/bin/executable_jsonv +34 -10
  276. package/dot_local/bin/executable_jwt +22 -6
  277. package/dot_local/bin/executable_kill-port +18 -2
  278. package/dot_local/bin/executable_lorem +21 -6
  279. package/dot_local/bin/executable_mkscript +35 -0
  280. package/dot_local/bin/executable_monitor +56 -0
  281. package/dot_local/bin/{executable_ip → executable_myip} +16 -2
  282. package/dot_local/bin/executable_notify +22 -0
  283. package/dot_local/bin/executable_open +36 -0
  284. package/dot_local/bin/executable_pw +27 -0
  285. package/dot_local/bin/executable_rec-start +46 -0
  286. package/dot_local/bin/executable_rec-stop +35 -0
  287. package/dot_local/bin/executable_regex +49 -13
  288. package/dot_local/bin/executable_start-niri +8 -0
  289. package/dot_local/bin/executable_tmux-sessionizer +276 -149
  290. package/dot_local/bin/executable_tour +112 -74
  291. package/dot_local/bin/executable_up +21 -0
  292. package/dot_local/bin/executable_update +45 -11
  293. package/dot_local/bin/executable_uuid +37 -7
  294. package/dot_local/bin/executable_win +32 -0
  295. package/dot_local/bin/executable_yamlv +25 -7
  296. package/dot_local/share/bash-completion/completions/dot +62 -44
  297. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  298. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  299. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  300. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  301. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  302. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  303. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  304. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  305. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  306. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  307. package/dot_local/share/man/man1/dot.1 +149 -0
  308. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  309. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  310. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  311. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  312. package/dot_local/share/zsh/completions/_dot +283 -0
  313. package/install.sh +297 -210
  314. package/package.json +17 -5
  315. package/scripts/ci/check-copyright-headers.sh +96 -0
  316. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  317. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  318. package/scripts/ci/validate-ci-config.sh +41 -39
  319. package/scripts/demo/record.sh +3 -2
  320. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  321. package/scripts/diagnostics/alias-governance.sh +137 -0
  322. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  323. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  324. package/scripts/diagnostics/benchmark.sh +209 -29
  325. package/scripts/diagnostics/conflicts.sh +72 -0
  326. package/scripts/diagnostics/doctor-unified.sh +38 -0
  327. package/scripts/diagnostics/doctor.sh +491 -65
  328. package/scripts/diagnostics/drift-dashboard.sh +17 -6
  329. package/scripts/diagnostics/health.sh +351 -110
  330. package/scripts/diagnostics/history-analysis.sh +12 -4
  331. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  332. package/scripts/diagnostics/perf.sh +225 -0
  333. package/scripts/diagnostics/scorecard.sh +118 -0
  334. package/scripts/diagnostics/secret-governance.sh +58 -0
  335. package/scripts/diagnostics/security-score.sh +139 -93
  336. package/scripts/diagnostics/smoke-test.sh +87 -0
  337. package/scripts/diagnostics/snapshot.sh +89 -0
  338. package/scripts/diagnostics/verify.sh +107 -0
  339. package/scripts/diagnostics/verify_state.sh +2 -2
  340. package/scripts/diagnostics/version-locks.sh +79 -0
  341. package/scripts/diagnostics/workstation-attestation.sh +181 -0
  342. package/scripts/docs/build-manual.sh +883 -0
  343. package/scripts/docs/check-manual.sh +213 -0
  344. package/scripts/dot/commands/agent.sh +465 -0
  345. package/scripts/dot/commands/ai.sh +416 -0
  346. package/scripts/dot/commands/aliases.sh +250 -0
  347. package/scripts/dot/commands/appearance.sh +21 -4
  348. package/scripts/dot/commands/core.sh +59 -4
  349. package/scripts/dot/commands/diagnostics.sh +132 -3
  350. package/scripts/dot/commands/fleet.sh +399 -0
  351. package/scripts/dot/commands/lint.sh +177 -0
  352. package/scripts/dot/commands/manual.sh +168 -0
  353. package/scripts/dot/commands/meta.sh +148 -17
  354. package/scripts/dot/commands/patterns.sh +54 -0
  355. package/scripts/dot/commands/restore.sh +57 -35
  356. package/scripts/dot/commands/secrets.sh +151 -9
  357. package/scripts/dot/commands/security.sh +3 -0
  358. package/scripts/dot/commands/tools.sh +268 -27
  359. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  360. package/scripts/dot/lib/bento.sh +49 -0
  361. package/scripts/dot/lib/log.sh +194 -0
  362. package/scripts/dot/lib/platform.sh +98 -0
  363. package/scripts/dot/lib/ui.sh +507 -0
  364. package/scripts/dot/lib/utils.sh +318 -18
  365. package/scripts/fonts/install-nerd-fonts.sh +19 -10
  366. package/scripts/fonts/patch-fonts.sh +1 -0
  367. package/scripts/git-hooks/install.sh +11 -0
  368. package/scripts/git-hooks/pre-commit +12 -0
  369. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  370. package/scripts/git-hooks/pre-push +29 -0
  371. package/scripts/git-hooks/prepare-commit-msg +29 -0
  372. package/scripts/lib/secrets_provider.sh +158 -0
  373. package/scripts/maintenance/check-updates.sh +131 -0
  374. package/scripts/ops/ai-setup.sh +55 -0
  375. package/scripts/ops/bundle.sh +77 -0
  376. package/scripts/ops/chaos.sh +49 -0
  377. package/scripts/ops/chezmoi-apply.sh +245 -17
  378. package/scripts/ops/chezmoi-diff.sh +1 -0
  379. package/scripts/ops/chezmoi-remove.sh +2 -0
  380. package/scripts/ops/chezmoi-update.sh +34 -2
  381. package/scripts/ops/heal-chezmoi.sh +51 -0
  382. package/scripts/ops/heal-system.sh +128 -0
  383. package/scripts/ops/heal-tools.sh +340 -0
  384. package/scripts/ops/heal.sh +98 -342
  385. package/scripts/ops/post-apply-repair.sh +106 -0
  386. package/scripts/ops/prewarm.sh +127 -0
  387. package/scripts/ops/release.sh +252 -0
  388. package/scripts/ops/rollback.sh +86 -28
  389. package/scripts/ops/setup.sh +137 -0
  390. package/scripts/ops/teleport.sh +2 -1
  391. package/scripts/qa/coverage-baseline.sh +60 -0
  392. package/scripts/qa/docs-coverage.sh +111 -0
  393. package/scripts/qa/reliability-audit.sh +138 -0
  394. package/scripts/qa/traceability-coverage.sh +116 -0
  395. package/scripts/qa/validate-examples.sh +26 -0
  396. package/scripts/qa/wsl-contract.sh +11 -0
  397. package/scripts/release/package-policy-bundles.sh +125 -0
  398. package/scripts/secrets/age-init.sh +1 -0
  399. package/scripts/secrets/create-secrets-file.sh +1 -0
  400. package/scripts/secrets/encrypt-ssh-key.sh +1 -0
  401. package/scripts/security/backup.sh +44 -4
  402. package/scripts/security/dns-doh.sh +36 -14
  403. package/scripts/security/encryption-check.sh +27 -12
  404. package/scripts/security/enforce-policies.sh +11 -16
  405. package/scripts/security/firewall.sh +76 -20
  406. package/scripts/security/lock-configs.sh +2 -2
  407. package/scripts/security/lock-screen.sh +40 -18
  408. package/scripts/security/manage-secrets.sh +42 -29
  409. package/scripts/security/ssh-cert.sh +203 -0
  410. package/scripts/security/telemetry-kill.sh +40 -18
  411. package/scripts/security/usb-safety.sh +37 -15
  412. package/scripts/theme/apply-gnome-theme.sh +87 -56
  413. package/scripts/theme/extract-theme.py +677 -0
  414. package/scripts/theme/install-boot-logo.sh +1 -0
  415. package/scripts/theme/install-catppuccin-themes.sh +57 -33
  416. package/scripts/theme/install-cursors.sh +1 -0
  417. package/scripts/theme/install-file-icons.sh +1 -0
  418. package/scripts/theme/install-grub-theme.sh +11 -1
  419. package/scripts/theme/install-lock-icon.sh +1 -0
  420. package/scripts/theme/merge-wallpaper.sh +141 -0
  421. package/scripts/theme/rebuild-themes.sh +309 -0
  422. package/scripts/theme/switch.sh +308 -137
  423. package/scripts/theme/wallpaper-rotate.sh +66 -12
  424. package/scripts/theme/wallpaper-sync.sh +386 -31
  425. package/scripts/tools/cmatrix.sh +1 -0
  426. package/scripts/tools/detect-collisions.py +1 -1
  427. package/scripts/tools/emoji-picker.sh +4 -1
  428. package/scripts/tools/figlet-banner.sh +1 -0
  429. package/scripts/tools/log-rotate.sh +2 -1
  430. package/scripts/tools/lolcat-wrap.sh +1 -0
  431. package/scripts/tools/pipes.sh +1 -0
  432. package/scripts/tuning/linux.sh +23 -13
  433. package/scripts/tuning/macos.sh +13 -4
  434. package/scripts/uninstall.sh +85 -0
  435. package/scripts/version-sync.sh +487 -0
  436. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  437. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  438. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  439. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  440. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  441. package/templates/projects/go/README.md +1 -1
  442. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  443. package/templates/projects/go/go.sum +0 -0
  444. package/templates/projects/molecule/README.md +1 -1
  445. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  446. package/templates/projects/node/README.md +1 -1
  447. package/templates/projects/node/package-lock.json +12 -0
  448. package/templates/projects/node/src/index.js +1 -0
  449. package/templates/projects/packer/README.md +1 -1
  450. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  451. package/templates/projects/python/README.md +1 -1
  452. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  453. package/templates/projects/python/tests/test_basic.py +1 -0
  454. package/docs/ARCHITECTURE.md +0 -229
  455. package/docs/COMPLIANCE.md +0 -47
  456. package/docs/FEATURES.md +0 -166
  457. package/docs/FONTS.md +0 -147
  458. package/docs/INSTALL.md +0 -119
  459. package/docs/KEYS.md +0 -40
  460. package/docs/OPERATIONS.md +0 -130
  461. package/docs/PR_DESCRIPTION.md +0 -149
  462. package/docs/SECRETS.md +0 -76
  463. package/docs/SECURITY.md +0 -30
  464. package/docs/SECURITY_CHECKLIST.md +0 -25
  465. package/docs/TASK.md +0 -99
  466. package/docs/TESTING.md +0 -190
  467. package/docs/TOOLS.md +0 -146
  468. package/docs/UTILS.md +0 -105
  469. package/docs/WALKTHROUGH.md +0 -165
  470. package/dot_config/clippy.toml +0 -55
  471. package/dot_config/dotfiles/versions.env.tmpl +0 -19
  472. package/dot_config/firefox/user.js +0 -8
  473. package/dot_config/git/config.tmpl +0 -77
  474. package/dot_config/go/aliases.sh +0 -61
  475. package/dot_config/go/env.sh +0 -24
  476. package/dot_config/ice/README.md +0 -13
  477. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +0 -5
  478. package/dot_config/lsd/config.yaml +0 -19
  479. package/dot_config/nvim/snippets/all.lua +0 -9
  480. package/dot_config/nvim/snippets/python.lua +0 -16
  481. package/dot_config/shell/00-container-detect.sh +0 -53
  482. package/dot_config/shell/05-core-safety.sh.tmpl +0 -13
  483. package/dot_config/shell/40-ls-colors.sh.tmpl +0 -31
  484. package/dot_config/shell/90-theme-switch.sh +0 -70
  485. package/dot_config/topgrade/topgrade.toml.tmpl +0 -42
  486. package/dot_config/waybar/style.css +0 -8
  487. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +0 -22
  488. package/dot_local/bin/executable_zig-install +0 -89
  489. package/dot_local/bin/voice_ops +0 -7
  490. package/scripts/ops/health-check.sh +0 -380
  491. package/scripts/tests/README.md +0 -241
  492. package/scripts/tests/benchmark.sh +0 -91
  493. package/scripts/tests/framework/assertions.sh +0 -283
  494. package/scripts/tests/framework/mocks.sh +0 -201
  495. package/scripts/tests/framework/test_runner.sh +0 -189
  496. package/scripts/tests/integration/test_install.sh +0 -237
  497. package/scripts/tests/performance/benchmark_runner.sh +0 -156
  498. package/scripts/tests/performance/regression_check.sh +0 -73
  499. package/scripts/tests/performance/stress_test.sh +0 -65
  500. package/scripts/tests/test-aliases.sh +0 -25
  501. package/scripts/tests/test-docker.sh +0 -48
  502. package/scripts/tests/unit/test_ai_aliases.sh +0 -158
  503. package/scripts/tests/unit/test_ai_cli_checks.sh +0 -47
  504. package/scripts/tests/unit/test_backup.sh +0 -227
  505. package/scripts/tests/unit/test_case_functions.sh +0 -238
  506. package/scripts/tests/unit/test_cd_aliases.sh +0 -367
  507. package/scripts/tests/unit/test_dot_cli.sh +0 -217
  508. package/scripts/tests/unit/test_encode64.sh +0 -67
  509. package/scripts/tests/unit/test_environment.sh +0 -78
  510. package/scripts/tests/unit/test_extract.sh +0 -163
  511. package/scripts/tests/unit/test_framework_edge_cases.sh +0 -113
  512. package/scripts/tests/unit/test_genpass.sh +0 -298
  513. package/scripts/tests/unit/test_install_edge_cases.sh +0 -167
  514. package/scripts/tests/unit/test_installers.sh +0 -172
  515. package/scripts/tests/unit/test_keygen.sh +0 -68
  516. package/scripts/tests/unit/test_logging.sh +0 -96
  517. package/scripts/tests/unit/test_os_detection_comprehensive.sh +0 -388
  518. package/scripts/tests/unit/test_package_managers_comprehensive.sh +0 -321
  519. package/scripts/tests/unit/test_prependpath.sh +0 -66
  520. package/scripts/tests/unit/test_prependpath_refactored.sh +0 -89
  521. package/scripts/tests/unit/test_rd.sh +0 -230
  522. package/scripts/tests/unit/test_security_fixes.sh +0 -130
  523. package/scripts/tests/unit/test_security_scripts.sh +0 -87
  524. package/scripts/tests/unit/test_template_validation.sh +0 -238
  525. package/scripts/tests/unit/test_utility_functions.sh +0 -144
  526. package/scripts/tests/unit/test_wave1_alias_split.sh +0 -132
  527. package/scripts/tests/unit/test_wave1_ci_pinning.sh +0 -61
  528. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +0 -52
  529. package/scripts/tests/unit/test_wave1_heal_fixes.sh +0 -97
  530. package/scripts/tests/unit/test_wave1_install_gpg.sh +0 -35
  531. package/scripts/tests/unit/test_wave1_zshenv_path.sh +0 -89
  532. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +0 -115
  533. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +0 -75
  534. package/scripts/tests/unit/test_zipf.sh +0 -76
  535. /package/docs/{LEGACY_ROADMAP.md → archive/LEGACY_ROADMAP.md} +0 -0
  536. /package/docs/{REPO_AUDIT.md → archive/REPO_AUDIT.md} +0 -0
  537. /package/docs/{KEY_ROTATION.md → security/KEY_ROTATION.md} +0 -0
  538. /package/dot_config/ansible/{ansible.cfg.tmpl → ansible.cfg} +0 -0
  539. /package/dot_config/docker/{config.json.tmpl → config.json} +0 -0
  540. /package/dot_config/k9s/{config.yaml.tmpl → config.yaml} +0 -0
  541. /package/dot_config/pypoetry/{config.toml.tmpl → config.toml} +0 -0
  542. /package/dot_config/{pyrightconfig.json.tmpl → pyrightconfig.json} +0 -0
  543. /package/dot_config/tflint/{tflint.hcl.tmpl → tflint.hcl} +0 -0
  544. /package/dot_config/yarn/{yarnrc.yml.tmpl → yarnrc.yml} +0 -0
  545. /package/dot_config/zsh/rc.d/{40-bell.zsh.tmpl → 40-bell.zsh} +0 -0
  546. /package/dot_config/zsh/rc.d/{50-login-fortune.zsh.tmpl → 50-login-fortune.zsh} +0 -0
@@ -1,11 +1,16 @@
1
- -- Debug Adapter Protocol (DAP) Configuration
1
+ -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ -- @module nvim.plugins.dap
3
+ -- Debug Adapter Protocol (DAP) Configuration.
4
+ -- Provides in-editor debugging with nvim-dap and a VS Code-like UI via dap-ui.
5
+ -- js-debug-adapter handles Node/Chrome/Edge; the dev server port defaults to
6
+ -- 3000 but can be overridden via DAP_DEV_SERVER_PORT.
2
7
 
3
8
  -- Layout constants
4
9
  local SIDEBAR_WIDTH = 40
5
10
  local BOTTOM_PANEL_HEIGHT = 10
6
11
  local QUARTER_SIZE = 0.25
7
12
  local HALF_SIZE = 0.5
8
- local DEFAULT_DEV_SERVER_PORT = 3000
13
+ local DEFAULT_DEV_SERVER_PORT = tonumber(vim.env.DAP_DEV_SERVER_PORT) or 3000
9
14
 
10
15
  return {
11
16
  -- DAP Core
@@ -101,7 +106,7 @@ return {
101
106
  }
102
107
  end
103
108
 
104
- -- JavaScript configurations
109
+ -- JavaScript/TypeScript configurations
105
110
  for _, lang in ipairs({ "javascript", "typescript", "javascriptreact", "typescriptreact" }) do
106
111
  dap.configurations[lang] = {
107
112
  {
@@ -127,6 +132,212 @@ return {
127
132
  },
128
133
  }
129
134
  end
135
+
136
+ -- Python debugging with debugpy
137
+ -- Requires: MasonInstall debugpy
138
+ dap.adapters.python = function(cb, config)
139
+ if config.request == "attach" then
140
+ local port = (config.connect or config).port
141
+ local host = (config.connect or config).host or "127.0.0.1"
142
+ cb({ type = "server", port = assert(port, "port required for attach"), host = host })
143
+ else
144
+ cb({
145
+ type = "executable",
146
+ command = vim.fn.exepath("python3"),
147
+ args = { "-m", "debugpy.adapter" },
148
+ })
149
+ end
150
+ end
151
+
152
+ dap.configurations.python = {
153
+ {
154
+ type = "python",
155
+ request = "launch",
156
+ name = "Launch file",
157
+ program = "${file}",
158
+ cwd = "${workspaceFolder}",
159
+ pythonPath = function()
160
+ -- Use venv if available, else system python
161
+ local venv = os.getenv("VIRTUAL_ENV")
162
+ if venv then
163
+ return venv .. "/bin/python"
164
+ end
165
+ return vim.fn.exepath("python3") or "python3"
166
+ end,
167
+ },
168
+ {
169
+ type = "python",
170
+ request = "launch",
171
+ name = "Launch with arguments",
172
+ program = "${file}",
173
+ args = function()
174
+ local args_str = vim.fn.input("Arguments: ")
175
+ return vim.split(args_str, " +")
176
+ end,
177
+ cwd = "${workspaceFolder}",
178
+ },
179
+ {
180
+ type = "python",
181
+ request = "launch",
182
+ name = "Launch module",
183
+ module = function()
184
+ return vim.fn.input("Module: ")
185
+ end,
186
+ cwd = "${workspaceFolder}",
187
+ },
188
+ {
189
+ type = "python",
190
+ request = "launch",
191
+ name = "Django",
192
+ program = "${workspaceFolder}/manage.py",
193
+ args = { "runserver", "--noreload" },
194
+ django = true,
195
+ cwd = "${workspaceFolder}",
196
+ },
197
+ {
198
+ type = "python",
199
+ request = "launch",
200
+ name = "FastAPI (uvicorn)",
201
+ module = "uvicorn",
202
+ args = function()
203
+ local app = vim.fn.input("App module (e.g. main:app): ", "main:app")
204
+ return { app, "--reload" }
205
+ end,
206
+ cwd = "${workspaceFolder}",
207
+ },
208
+ {
209
+ type = "python",
210
+ request = "launch",
211
+ name = "pytest",
212
+ module = "pytest",
213
+ args = { "${file}", "-v", "--tb=short" },
214
+ cwd = "${workspaceFolder}",
215
+ },
216
+ {
217
+ type = "python",
218
+ request = "attach",
219
+ name = "Attach to remote",
220
+ connect = function()
221
+ local host = vim.fn.input("Host (127.0.0.1): ", "127.0.0.1")
222
+ local port = tonumber(vim.fn.input("Port (5678): ", "5678"))
223
+ return { host = host, port = port }
224
+ end,
225
+ },
226
+ }
227
+
228
+ -- Go debugging with delve
229
+ -- Requires: MasonInstall delve
230
+ dap.adapters.delve = {
231
+ type = "server",
232
+ port = "${port}",
233
+ executable = {
234
+ command = "dlv",
235
+ args = { "dap", "-l", "127.0.0.1:${port}" },
236
+ },
237
+ }
238
+
239
+ dap.configurations.go = {
240
+ {
241
+ type = "delve",
242
+ name = "Launch file",
243
+ request = "launch",
244
+ program = "${file}",
245
+ },
246
+ {
247
+ type = "delve",
248
+ name = "Launch package",
249
+ request = "launch",
250
+ program = "${workspaceFolder}",
251
+ },
252
+ {
253
+ type = "delve",
254
+ name = "Launch test",
255
+ request = "launch",
256
+ mode = "test",
257
+ program = "${file}",
258
+ },
259
+ {
260
+ type = "delve",
261
+ name = "Launch test (package)",
262
+ request = "launch",
263
+ mode = "test",
264
+ program = "${workspaceFolder}",
265
+ },
266
+ {
267
+ type = "delve",
268
+ name = "Attach to process",
269
+ request = "attach",
270
+ mode = "local",
271
+ processId = require("dap.utils").pick_process,
272
+ },
273
+ }
274
+
275
+ -- Rust/C/C++ debugging with codelldb
276
+ -- Requires: MasonInstall codelldb
277
+ dap.adapters.codelldb = {
278
+ type = "server",
279
+ port = "${port}",
280
+ executable = {
281
+ command = vim.fn.stdpath("data") .. "/mason/bin/codelldb",
282
+ args = { "--port", "${port}" },
283
+ },
284
+ }
285
+
286
+ for _, lang in ipairs({ "rust", "c", "cpp" }) do
287
+ dap.configurations[lang] = {
288
+ {
289
+ type = "codelldb",
290
+ request = "launch",
291
+ name = "Launch executable",
292
+ program = function()
293
+ return vim.fn.input("Executable: ", vim.fn.getcwd() .. "/target/debug/", "file")
294
+ end,
295
+ cwd = "${workspaceFolder}",
296
+ stopOnEntry = false,
297
+ },
298
+ {
299
+ type = "codelldb",
300
+ request = "launch",
301
+ name = "Launch with arguments",
302
+ program = function()
303
+ return vim.fn.input("Executable: ", vim.fn.getcwd() .. "/target/debug/", "file")
304
+ end,
305
+ args = function()
306
+ return vim.split(vim.fn.input("Arguments: "), " +")
307
+ end,
308
+ cwd = "${workspaceFolder}",
309
+ },
310
+ }
311
+ end
312
+
313
+ -- Bash debugging with bash-debug-adapter
314
+ -- Requires: MasonInstall bash-debug-adapter
315
+ dap.adapters.bashdb = {
316
+ type = "executable",
317
+ command = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/bash-debug-adapter",
318
+ name = "bashdb",
319
+ }
320
+
321
+ dap.configurations.sh = {
322
+ {
323
+ type = "bashdb",
324
+ request = "launch",
325
+ name = "Launch script",
326
+ showDebugOutput = true,
327
+ pathBashdb = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/extension/bashdb_dir/bashdb",
328
+ pathBashdbLib = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/extension/bashdb_dir",
329
+ trace = true,
330
+ file = "${file}",
331
+ program = "${file}",
332
+ cwd = "${workspaceFolder}",
333
+ pathCat = "cat",
334
+ pathBash = "/bin/bash",
335
+ pathMkfifo = "mkfifo",
336
+ pathPkill = "pkill",
337
+ env = {},
338
+ args = {},
339
+ },
340
+ }
130
341
  end,
131
342
  },
132
343
 
@@ -135,7 +346,7 @@ return {
135
346
  "jay-babu/mason-nvim-dap.nvim",
136
347
  dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap" },
137
348
  opts = {
138
- ensure_installed = { "js-debug-adapter" },
349
+ ensure_installed = { "js-debug-adapter", "debugpy", "delve", "codelldb", "bash-debug-adapter" },
139
350
  automatic_installation = true,
140
351
  handlers = {},
141
352
  },
@@ -1,6 +1,11 @@
1
+ -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ -- @module nvim.plugins.editor
3
+ -- Editor enhancement plugins.
4
+ -- toggleterm.nvim provides a floating terminal toggled with a single keymap,
5
+ -- pinned to ^2 for API stability.
1
6
  return {
2
7
  "akinsho/toggleterm.nvim",
3
- version = "*",
8
+ version = "^2",
4
9
  config = function()
5
10
  require("toggleterm").setup({
6
11
  -- Automatically close the terminal when the process exits.
@@ -46,14 +51,5 @@ return {
46
51
  -- Set the terminal size (this can also be a function returning a size).
47
52
  size = 20,
48
53
  })
49
-
50
- -- Custom keybindings for toggling a floating terminal:
51
- -- <leader>ft toggles the floating terminal.
52
- vim.api.nvim_set_keymap(
53
- "n", -- Mode: normal
54
- "<leader>ft", -- Key combination
55
- "<Cmd>ToggleTerm direction=float<CR>", -- Command to execute
56
- { noremap = true, silent = true } -- Options: no recursive mapping, silent execution
57
- )
58
54
  end,
59
55
  }
@@ -1,3 +1,4 @@
1
+ -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
1
2
  return {
2
3
  {
3
4
  "ThePrimeagen/git-worktree.nvim",
@@ -1,3 +1,10 @@
1
+ -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ -- @module nvim.plugins.lsp
3
+ -- Language Server Protocol configuration.
4
+ -- Mason manages external tool installation (LSP servers, formatters, linters).
5
+ -- mason-lspconfig bridges Mason with nvim-lspconfig for automatic server setup.
6
+ -- Servers: bashls, lua_ls, basedpyright, ruff, ts_ls — matching the project's
7
+ -- primary languages (shell, Lua, Python, TypeScript).
1
8
  return {
2
9
  -- Mason (Manage External Tools)
3
10
  {
@@ -15,17 +22,16 @@ return {
15
22
  dependencies = {
16
23
  "williamboman/mason.nvim",
17
24
  "williamboman/mason-lspconfig.nvim",
18
- "hrsh7th/cmp-nvim-lsp",
25
+ "saghen/blink.cmp",
19
26
  },
20
27
  config = function()
21
- -- 1. Setup capabilities for LSP
22
- local capabilities = require("cmp_nvim_lsp").default_capabilities()
28
+ -- 1. Setup capabilities for LSP (blink.cmp provides these)
29
+ local capabilities = require("blink.cmp").get_lsp_capabilities()
23
30
 
24
- -- 2. Setup mason-lspconfig with handlers (prevents automatic_enable errors)
31
+ -- 2. Setup mason-lspconfig with custom handlers per server
25
32
  require("mason-lspconfig").setup({
26
33
  ensure_installed = { "bashls", "lua_ls", "basedpyright", "ruff", "ts_ls" },
27
34
  automatic_installation = true,
28
- automatic_setup = false, -- Disable automatic_enable feature that causes errors
29
35
  handlers = {
30
36
  -- Default handler for all servers
31
37
  function(server_name)
@@ -137,85 +143,14 @@ return {
137
143
  lua = { "stylua" },
138
144
  python = { "ruff_format" },
139
145
  rust = { "rustfmt" },
140
- javascript = { { "prettierd", "prettier" } },
146
+ javascript = { "prettierd", "prettier", stop_after_first = true },
147
+ typescript = { "prettierd", "prettier", stop_after_first = true },
148
+ json = { "prettierd", "prettier", stop_after_first = true },
149
+ yaml = { "prettierd", "prettier", stop_after_first = true },
141
150
  bash = { "shfmt" },
151
+ sh = { "shfmt" },
142
152
  },
143
153
  format_on_save = { timeout_ms = 500, lsp_fallback = true },
144
154
  },
145
155
  },
146
-
147
- -- Autocompletion: CMP (Optimized)
148
- {
149
- "hrsh7th/nvim-cmp",
150
- event = "InsertEnter",
151
- dependencies = {
152
- "hrsh7th/cmp-nvim-lsp",
153
- "hrsh7th/cmp-buffer",
154
- "hrsh7th/cmp-path",
155
- "L3MON4D3/LuaSnip",
156
- "saadparwaiz1/cmp_luasnip",
157
- "onsails/lspkind.nvim",
158
- },
159
- config = function()
160
- local cmp = require("cmp")
161
- local luasnip = require("luasnip")
162
- local lspkind = require("lspkind")
163
-
164
- require("luasnip.loaders.from_lua").lazy_load({
165
- paths = { vim.fn.stdpath("config") .. "/snippets" },
166
- })
167
-
168
- cmp.setup({
169
- snippet = {
170
- expand = function(args)
171
- luasnip.lsp_expand(args.body)
172
- end,
173
- },
174
- window = {
175
- completion = cmp.config.window.bordered(),
176
- documentation = cmp.config.window.bordered(),
177
- },
178
- formatting = {
179
- format = lspkind.cmp_format({
180
- mode = "symbol_text",
181
- maxwidth = 50,
182
- ellipsis_char = "...",
183
- }),
184
- },
185
- mapping = cmp.mapping.preset.insert({
186
- ["<C-n>"] = cmp.mapping.select_next_item(),
187
- ["<C-p>"] = cmp.mapping.select_prev_item(),
188
- ["<C-b>"] = cmp.mapping.scroll_docs(-4),
189
- ["<C-f>"] = cmp.mapping.scroll_docs(4),
190
- ["<C-Space>"] = cmp.mapping.complete(),
191
- ["<CR>"] = cmp.mapping.confirm({ select = true }),
192
- ["<Tab>"] = cmp.mapping(function(fallback)
193
- if cmp.visible() then
194
- cmp.select_next_item()
195
- elseif luasnip.expand_or_jumpable() then
196
- luasnip.expand_or_jump()
197
- else
198
- fallback()
199
- end
200
- end, { "i", "s" }),
201
- ["<S-Tab>"] = cmp.mapping(function(fallback)
202
- if cmp.visible() then
203
- cmp.select_prev_item()
204
- elseif luasnip.jumpable(-1) then
205
- luasnip.jump(-1)
206
- else
207
- fallback()
208
- end
209
- end, { "i", "s" }),
210
- }),
211
- sources = cmp.config.sources({
212
- { name = "nvim_lsp" },
213
- { name = "luasnip" },
214
- { name = "path" },
215
- }, {
216
- { name = "buffer" },
217
- }),
218
- })
219
- end,
220
- },
221
156
  }
@@ -1,3 +1,4 @@
1
+ -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
1
2
  return {
2
3
  {
3
4
  "iamcco/markdown-preview.nvim",
@@ -1,3 +1,4 @@
1
+ -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
1
2
  return {
2
3
  {
3
4
  "mrcjkb/rustaceanvim",
@@ -1,3 +1,4 @@
1
+ -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
1
2
  return {
2
3
  {
3
4
  "folke/persistence.nvim",
@@ -1,3 +1,10 @@
1
+ -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ -- @module nvim.plugins.ui
3
+ -- UI component plugins for a modern IDE experience.
4
+ -- Snacks.nvim provides the dashboard and notification system.
5
+ -- Noice.nvim replaces the default command line with a floating palette.
6
+ -- These choices prioritise startup speed (lazy-loaded) and visual consistency
7
+ -- with the Catppuccin / TokyoNight theme families.
1
8
  return {
2
9
  -----------------------------------------------------------------------------
3
10
  -- 1. Dashboard (Snacks.nvim)
@@ -7,6 +14,11 @@ return {
7
14
  priority = 1000,
8
15
  lazy = false,
9
16
  opts = {
17
+ notifier = {
18
+ enabled = true,
19
+ timeout = 3000,
20
+ style = "compact",
21
+ },
10
22
  dashboard = {
11
23
  preset = {
12
24
  header = [[
@@ -60,13 +72,12 @@ Simply design to fit your shell life
60
72
  {
61
73
  "folke/noice.nvim",
62
74
  event = "VeryLazy",
63
- dependencies = { "MunifTanjim/nui.nvim", "rcarriga/nvim-notify" },
75
+ dependencies = { "MunifTanjim/nui.nvim" },
64
76
  opts = {
65
77
  lsp = {
66
78
  override = {
67
79
  ["vim.lsp.util.convert_input_to_markdown_lines"] = true,
68
80
  ["vim.lsp.util.stylize_markdown"] = true,
69
- ["cmp.entry.get_documentation"] = true,
70
81
  },
71
82
  hover = { enabled = true },
72
83
  signature = { enabled = true },
@@ -78,16 +89,6 @@ Simply design to fit your shell life
78
89
  inc_rename = false, -- enables an input dialog for inc-rename.nvim
79
90
  lsp_doc_border = true, -- add a border to hover docs and signature help
80
91
  },
81
- notify = { enabled = false }, -- Fix: Allow nvim-notify to handle notifications directly
82
- },
83
- },
84
-
85
- {
86
- "rcarriga/nvim-notify",
87
- opts = {
88
- timeout = 3000,
89
- render = "wrapped-compact",
90
- background_colour = "#000000",
91
92
  },
92
93
  },
93
94
 
@@ -128,7 +129,7 @@ Simply design to fit your shell life
128
129
  opts = {
129
130
  options = {
130
131
  theme = (function()
131
- local theme = vim.env.DOTFILES_THEME or "catppuccin-mocha"
132
+ local theme = vim.env.DOTFILES_THEME or "macos-monterey-dark"
132
133
  if theme:match("^tokyonight") then
133
134
  return "tokyonight"
134
135
  elseif theme:match("^catppuccin") then
@@ -231,9 +232,6 @@ Simply design to fit your shell life
231
232
  require("scrollbar").setup({
232
233
  handle = { color = "#504945" },
233
234
  excluded_filetypes = {
234
- "cmp_menu",
235
- "cmp_docs",
236
- "notify",
237
235
  "noice",
238
236
  "prompt",
239
237
  "TelescopePrompt",
@@ -254,6 +252,7 @@ Simply design to fit your shell life
254
252
  end,
255
253
  opts = {
256
254
  spec = {
255
+ { "<leader>a", group = "AI" },
257
256
  { "<leader>c", group = "Code" },
258
257
  { "<leader>f", group = "Find/File" },
259
258
  { "<leader>p", group = "Python/Project" },
@@ -281,17 +280,14 @@ Simply design to fit your shell life
281
280
  end,
282
281
  },
283
282
 
284
- -- Symbols Outline
283
+ -- Symbols Outline (hedyhli/outline.nvim replaces archived simrat39/symbols-outline.nvim)
285
284
  {
286
- "simrat39/symbols-outline.nvim",
287
- cmd = "SymbolsOutline",
288
- keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
285
+ "hedyhli/outline.nvim",
286
+ cmd = "Outline",
287
+ keys = { { "<leader>cs", "<cmd>Outline<cr>", desc = "Symbols Outline" } },
289
288
  config = true,
290
289
  },
291
290
 
292
- -- LSP Kind icons
293
- { "onsails/lspkind.nvim", event = "VeryLazy" },
294
-
295
291
  -- Theme Plugins (Loaded on demand)
296
292
  { "folke/tokyonight.nvim", name = "tokyonight", lazy = true, priority = 1000 },
297
293
  { "Mofiqul/dracula.nvim", name = "dracula", lazy = true, priority = 1000 },
@@ -303,19 +299,6 @@ Simply design to fit your shell life
303
299
  { "sainnhe/everforest", name = "everforest", lazy = true, priority = 1000 },
304
300
  { "rebelot/kanagawa.nvim", name = "kanagawa", lazy = true, priority = 1000 },
305
301
 
306
- -----------------------------------------------------------------------------
307
- -- Lazy Profiling
308
- -----------------------------------------------------------------------------
309
- {
310
- "folke/lazy.nvim",
311
- opts = {
312
- profiling = {
313
- loader = true,
314
- require = true,
315
- },
316
- },
317
- },
318
-
319
302
  -----------------------------------------------------------------------------
320
303
  -- Icon Sets
321
304
  -----------------------------------------------------------------------------
@@ -328,7 +311,7 @@ Simply design to fit your shell life
328
311
  lazy = false,
329
312
  priority = 1001,
330
313
  config = function()
331
- local theme = vim.env.DOTFILES_THEME or "catppuccin-mocha"
314
+ local theme = vim.env.DOTFILES_THEME or "macos-monterey-dark"
332
315
  local function load_theme(name)
333
316
  local ok, lazy = pcall(require, "lazy")
334
317
  if ok then
@@ -380,11 +363,11 @@ Simply design to fit your shell life
380
363
  color_overrides = {},
381
364
  custom_highlights = {},
382
365
  integrations = {
383
- cmp = true,
366
+ blink_cmp = true,
384
367
  gitsigns = true,
385
368
  nvimtree = true,
386
369
  treesitter = true,
387
- notify = true,
370
+ snacks = true,
388
371
  mini = {
389
372
  enabled = true,
390
373
  indentscope_color = "",
@@ -413,20 +396,10 @@ Simply design to fit your shell life
413
396
  inlay_hints = { background = true },
414
397
  },
415
398
  telescope = { enabled = true },
416
- lsp_trouble = true,
417
- fidget = true,
418
- barbecue = { dim_dirname = true, bold_basename = true, dim_context = false, alt_background = false },
419
- navic = { enabled = true, custom_bg = "NONE" },
420
- dropbar = { enabled = true, color_mode = false },
421
399
  bufferline = true,
422
400
  dashboard = true,
423
- flash = true,
424
- harpoon = true,
425
- leap = true,
426
401
  markdown = true,
427
402
  semantic_tokens = true,
428
- treesitter_context = true,
429
- ufo = true,
430
403
  },
431
404
  })
432
405
 
@@ -520,8 +493,7 @@ Simply design to fit your shell life
520
493
  flavour = "mocha",
521
494
  integrations = {
522
495
  nvimtree = true,
523
- notify = true,
524
- symbols_outline = true,
496
+ snacks = true,
525
497
  mason = true,
526
498
  neotest = true,
527
499
  noice = true,
@@ -0,0 +1,10 @@
1
+ # Paru configuration (managed by chezmoi)
2
+ #
3
+ # Include the system defaults, then apply user-specific overrides.
4
+ Include = /etc/paru.conf
5
+
6
+ [bin]
7
+ # AUR histories commonly contain unsigned commits. Keep strict Git signature
8
+ # verification for normal repositories, but disable it for paru's internal
9
+ # clone/update merges so AUR upgrades can proceed.
10
+ GitFlags = -c merge.verifySignatures=false
@@ -0,0 +1,81 @@
1
+ # Dotfiles PowerShell profile (v{{ .dotfiles_version }})
2
+
3
+ $env:DOTFILES_VERSION = "{{ .dotfiles_version }}"
4
+ $env:XDG_CONFIG_HOME = if ($env:XDG_CONFIG_HOME) { $env:XDG_CONFIG_HOME } else { Join-Path $HOME ".config" }
5
+ $env:XDG_CACHE_HOME = if ($env:XDG_CACHE_HOME) { $env:XDG_CACHE_HOME } else { Join-Path $HOME ".cache" }
6
+ $env:XDG_DATA_HOME = if ($env:XDG_DATA_HOME) { $env:XDG_DATA_HOME } else { Join-Path $HOME ".local/share" }
7
+
8
+ $DotfilesRoot = if (Test-Path (Join-Path $HOME ".dotfiles")) {
9
+ Join-Path $HOME ".dotfiles"
10
+ } elseif (Test-Path (Join-Path $HOME ".local/share/chezmoi")) {
11
+ Join-Path $HOME ".local/share/chezmoi"
12
+ } else {
13
+ $null
14
+ }
15
+
16
+ function Invoke-DotfilesCli {
17
+ $dotPath = Join-Path $HOME ".local/bin/dot"
18
+ if (-not (Test-Path $dotPath)) {
19
+ throw "dot command not found at $dotPath"
20
+ }
21
+ & $dotPath @args
22
+ }
23
+
24
+ function dot { Invoke-DotfilesCli @args }
25
+ function d { Invoke-DotfilesCli @args }
26
+ function dm { Invoke-DotfilesCli mode list }
27
+ function da { Invoke-DotfilesCli agent list }
28
+ function dmc { Invoke-DotfilesCli mcp registry }
29
+ function datt { Invoke-DotfilesCli attest --json }
30
+
31
+ function ll {
32
+ if (Get-Command eza -ErrorAction SilentlyContinue) {
33
+ eza -alF --sort Name --icons --group-directories-first @args
34
+ } else {
35
+ Get-ChildItem -Force @args
36
+ }
37
+ }
38
+
39
+ function la {
40
+ if (Get-Command eza -ErrorAction SilentlyContinue) {
41
+ eza -a --sort Name --icons --group-directories-first @args
42
+ } else {
43
+ Get-ChildItem -Force -Hidden @args
44
+ }
45
+ }
46
+
47
+ function cat {
48
+ if (Get-Command bat -ErrorAction SilentlyContinue) {
49
+ bat @args
50
+ } elseif (Get-Command batcat -ErrorAction SilentlyContinue) {
51
+ batcat @args
52
+ } else {
53
+ Microsoft.PowerShell.Management\Get-Content @args
54
+ }
55
+ }
56
+
57
+ Set-Alias -Name open -Value Invoke-Item -Option AllScope
58
+
59
+ if (Get-Command mise -ErrorAction SilentlyContinue) {
60
+ function ms { & mise @args }
61
+ }
62
+
63
+ if (Get-Command nix -ErrorAction SilentlyContinue) {
64
+ function nx { & nix @args }
65
+ }
66
+
67
+ if (Get-Command just -ErrorAction SilentlyContinue) {
68
+ function j { & just @args }
69
+ }
70
+
71
+ if (Get-Command gh -ErrorAction SilentlyContinue) {
72
+ function ghpr { gh pr view --web @args }
73
+ }
74
+
75
+ if (Get-Command podman -ErrorAction SilentlyContinue) {
76
+ function p { & podman @args }
77
+ }
78
+
79
+ if (Get-Command zoxide -ErrorAction SilentlyContinue) {
80
+ Invoke-Expression (& { (zoxide init powershell | Out-String) })
81
+ }