@sebastienrousseau/dotfiles 0.2.502 → 0.2.503

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 (412) hide show
  1. package/CHANGELOG.md +83 -9
  2. package/LICENSE +21 -1283
  3. package/README.md +5 -3
  4. package/docs/CONFIG_STRATEGY.md +124 -0
  5. package/docs/COPYRIGHT +1 -1
  6. package/docs/GOVERNANCE.md +98 -0
  7. package/docs/MAINTAINERS.md +41 -0
  8. package/docs/OPENCODE.md +127 -0
  9. package/docs/README.md +2 -0
  10. package/docs/STRUCTURE.md +102 -0
  11. package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
  12. package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
  13. package/docs/architecture/REPO_LAYOUT.md +8 -8
  14. package/docs/archive/MILESTONE_v0.2.493.md +1 -1
  15. package/docs/index.md +2 -2
  16. package/docs/interop/POWERSHELL.md +1 -1
  17. package/docs/manual/00-introduction.md +1 -1
  18. package/docs/manual/01-concepts/02-trust-model.md +1 -1
  19. package/docs/manual/03-reference/02-config-files.md +2 -2
  20. package/docs/manual/_toc.yml +1 -1
  21. package/docs/manual/command-index.md +72 -59
  22. package/docs/operations/CI_COMPOSITES.md +2 -2
  23. package/docs/operations/COMPLETIONS.md +2 -2
  24. package/docs/operations/COVERAGE.md +5 -5
  25. package/docs/operations/HARD_AUDIT_2026.md +11 -11
  26. package/docs/operations/MAINTENANCE.md +3 -3
  27. package/docs/operations/MANIFEST.md +127 -0
  28. package/docs/operations/RELEASE_PIPELINE.md +130 -0
  29. package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
  30. package/docs/operations/ROADMAP_2026.md +6 -6
  31. package/docs/operations/ROADMAP_V0_2_503.md +134 -0
  32. package/docs/operations/TESTING.md +17 -0
  33. package/docs/operations/TRACEABILITY.md +6 -3
  34. package/docs/operations/VERSION_SYNC.md +4 -4
  35. package/docs/reference/POWERSHELL_PARITY.md +8 -7
  36. package/docs/schema/dot-env-v1.json +110 -0
  37. package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
  38. package/docs/security/CI_PINNING.md +17 -9
  39. package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
  40. package/docs/security/FUZZING.md +114 -0
  41. package/docs/security/INSTALL_VERIFICATION.md +2 -2
  42. package/docs/security/POLICY_RELEASES.md +2 -2
  43. package/docs/security/SCORECARD.md +58 -3
  44. package/docs/security/SHELL_EXEMPTIONS.md +4 -4
  45. package/docs/security/VERIFY_RELEASE.md +201 -0
  46. package/install.sh +27 -5
  47. package/package.json +1 -1
  48. package/scripts/README.md +123 -0
  49. package/scripts/ci/check-copyright-headers.sh +4 -93
  50. package/scripts/ci/check-shell-preamble.sh +4 -103
  51. package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
  52. package/scripts/diagnostics/a2a-conformance.sh +4 -4
  53. package/scripts/diagnostics/alias-governance.sh +1 -1
  54. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
  55. package/scripts/diagnostics/benchmark.sh +4 -4
  56. package/scripts/diagnostics/conflicts.sh +2 -2
  57. package/scripts/diagnostics/doctor-unified.sh +2 -2
  58. package/scripts/diagnostics/doctor.sh +10 -10
  59. package/scripts/diagnostics/drift-dashboard.sh +2 -2
  60. package/scripts/diagnostics/health.sh +4 -4
  61. package/scripts/diagnostics/history-analysis.sh +2 -2
  62. package/scripts/diagnostics/mcp-doctor.sh +10 -7
  63. package/scripts/diagnostics/perf.sh +4 -4
  64. package/scripts/diagnostics/scorecard.sh +4 -4
  65. package/scripts/diagnostics/security-score.sh +2 -2
  66. package/scripts/diagnostics/smoke-test.sh +2 -2
  67. package/scripts/diagnostics/snapshot.sh +2 -2
  68. package/scripts/diagnostics/verify.sh +4 -4
  69. package/scripts/diagnostics/version-locks.sh +2 -2
  70. package/scripts/diagnostics/workstation-attestation.sh +14 -14
  71. package/scripts/dot/commands/agent.sh +8 -0
  72. package/scripts/dot/commands/agents.sh +14 -4
  73. package/scripts/dot/commands/ai.sh +144 -25
  74. package/scripts/dot/commands/appearance.sh +2 -2
  75. package/scripts/dot/commands/core.sh +2 -2
  76. package/scripts/dot/commands/diagnostics.sh +5 -5
  77. package/scripts/dot/commands/env-emit.sh +202 -0
  78. package/scripts/dot/commands/fleet.sh +12 -11
  79. package/scripts/dot/commands/init.sh +4 -4
  80. package/scripts/dot/commands/lint.sh +9 -4
  81. package/scripts/dot/commands/manual.sh +3 -3
  82. package/scripts/dot/commands/meta.sh +12 -6
  83. package/scripts/dot/commands/patterns.sh +2 -2
  84. package/scripts/dot/commands/registry.sh +4 -4
  85. package/scripts/dot/commands/restore.sh +4 -4
  86. package/scripts/dot/commands/secrets.sh +4 -3
  87. package/scripts/dot/commands/security.sh +2 -2
  88. package/scripts/dot/commands/tools.sh +13 -3
  89. package/scripts/dot/powershell/Dot.psm1 +199 -0
  90. package/scripts/fonts/install-nerd-fonts.sh +2 -2
  91. package/scripts/git-hooks/pre-commit-audit.sh +2 -2
  92. package/scripts/git-hooks/pre-push +13 -0
  93. package/scripts/ops/ai-setup.sh +1 -1
  94. package/scripts/ops/bundle.sh +2 -2
  95. package/scripts/ops/chaos.sh +2 -2
  96. package/scripts/ops/chezmoi-apply.sh +4 -4
  97. package/scripts/ops/heal.sh +4 -4
  98. package/scripts/ops/post-apply-repair.sh +2 -2
  99. package/scripts/ops/prewarm.sh +2 -2
  100. package/scripts/ops/release.sh +4 -4
  101. package/scripts/ops/rollback.sh +4 -4
  102. package/scripts/ops/setup.sh +2 -2
  103. package/scripts/qa/check-version-consistency.sh +123 -0
  104. package/scripts/qa/coverage-baseline.sh +1 -1
  105. package/scripts/qa/docs-coverage.sh +2 -2
  106. package/scripts/qa/powershell-contract.ps1 +1 -1
  107. package/scripts/qa/scorecard-snapshot.sh +127 -0
  108. package/scripts/security/backup.sh +2 -2
  109. package/scripts/security/dns-doh.sh +4 -4
  110. package/scripts/security/encryption-check.sh +4 -4
  111. package/scripts/security/enforce-policies.sh +2 -2
  112. package/scripts/security/firewall.sh +4 -4
  113. package/scripts/security/lock-screen.sh +4 -4
  114. package/scripts/security/manage-secrets.sh +2 -2
  115. package/scripts/security/ssh-cert.sh +2 -2
  116. package/scripts/security/telemetry-kill.sh +4 -4
  117. package/scripts/security/usb-safety.sh +4 -4
  118. package/scripts/theme/extract-heic-frames.sh +114 -0
  119. package/scripts/theme/rebuild-themes.sh +8 -1
  120. package/scripts/theme/switch.sh +13 -6
  121. package/scripts/theme/wallpaper-sync.sh +297 -93
  122. package/scripts/tuning/linux.sh +2 -2
  123. package/scripts/tuning/macos.sh +2 -2
  124. package/scripts/version-sync.sh +55 -7
  125. package/dot_config/.module-manifest.json +0 -69
  126. package/dot_config/ai/identity.md +0 -23
  127. package/dot_config/ai/patterns/architect.md +0 -16
  128. package/dot_config/ai/patterns/hardener.md +0 -15
  129. package/dot_config/ai/patterns/refactor.md +0 -15
  130. package/dot_config/aider/aider.conf.yml +0 -32
  131. package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
  132. package/dot_config/ansible/ansible.cfg +0 -11
  133. package/dot_config/atuin/config.toml.tmpl +0 -47
  134. package/dot_config/bat/config +0 -23
  135. package/dot_config/brave-flags.conf.tmpl +0 -7
  136. package/dot_config/btop/btop.conf +0 -16
  137. package/dot_config/btop/themes/tokyonight.theme +0 -34
  138. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  139. package/dot_config/claude/mcp_servers.json +0 -20
  140. package/dot_config/containers/containers.conf +0 -14
  141. package/dot_config/curl/dot_curlrc +0 -18
  142. package/dot_config/dlv/config.yml +0 -39
  143. package/dot_config/docker/config.json +0 -15
  144. package/dot_config/dotfiles/agent-card.json +0 -29
  145. package/dot_config/dotfiles/agent-profiles.json +0 -92
  146. package/dot_config/dotfiles/boot/README.md +0 -13
  147. package/dot_config/dotfiles/grub/README.md +0 -13
  148. package/dot_config/dotfiles/lock/README.md +0 -13
  149. package/dot_config/dotfiles/mcp-lock.json +0 -33
  150. package/dot_config/dotfiles/mcp-policy.json +0 -52
  151. package/dot_config/dotfiles/mcp-registry.json +0 -47
  152. package/dot_config/dotfiles/model-registry.json +0 -20
  153. package/dot_config/dotfiles/policy-bundles.json +0 -38
  154. package/dot_config/dotfiles/prompt-registry.json +0 -16
  155. package/dot_config/dotfiles/versions.env +0 -18
  156. package/dot_config/duf/duf.conf +0 -6
  157. package/dot_config/duti/defaults.duti +0 -5
  158. package/dot_config/emoji/emoji.txt +0 -34
  159. package/dot_config/environment.d/50-ssh-agent.conf +0 -2
  160. package/dot_config/environment.d/90-wayland.conf +0 -19
  161. package/dot_config/fastfetch/config.jsonc +0 -28
  162. package/dot_config/firefox/user.js.tmpl +0 -58
  163. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
  164. package/dot_config/fish/completions/dot.fish.tmpl +0 -115
  165. package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
  166. package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
  167. package/dot_config/fish/conf.d/direnv.fish +0 -4
  168. package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
  169. package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
  170. package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
  171. package/dot_config/fish/conf.d/mise-activate.fish +0 -5
  172. package/dot_config/fish/config.fish.tmpl +0 -44
  173. package/dot_config/fish/fish_plugins +0 -1
  174. package/dot_config/fish/functions/_.fish +0 -3
  175. package/dot_config/fish/functions/_cached_eval.fish +0 -131
  176. package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
  177. package/dot_config/fish/functions/als.fish +0 -46
  178. package/dot_config/fish/functions/bg-upgrade.fish +0 -7
  179. package/dot_config/fish/functions/c.fish +0 -3
  180. package/dot_config/fish/functions/cat.fish +0 -9
  181. package/dot_config/fish/functions/d.fish +0 -7
  182. package/dot_config/fish/functions/dot.fish +0 -34
  183. package/dot_config/fish/functions/h.fish +0 -3
  184. package/dot_config/fish/functions/l.fish +0 -7
  185. package/dot_config/fish/functions/la.fish +0 -7
  186. package/dot_config/fish/functions/ll.fish +0 -7
  187. package/dot_config/fish/functions/log_error.fish +0 -13
  188. package/dot_config/fish/functions/log_info.fish +0 -13
  189. package/dot_config/fish/functions/lr.fish +0 -7
  190. package/dot_config/fish/functions/lra.fish +0 -7
  191. package/dot_config/fish/functions/ls.fish +0 -7
  192. package/dot_config/fish/functions/lt.fish +0 -7
  193. package/dot_config/fish/functions/lta.fish +0 -7
  194. package/dot_config/fish/functions/notify-run.fish +0 -11
  195. package/dot_config/fish/functions/q.fish +0 -3
  196. package/dot_config/fish/functions/silent-run.fish +0 -7
  197. package/dot_config/fish/functions/yy.fish +0 -8
  198. package/dot_config/flatpak/flatpak.list +0 -4
  199. package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
  200. package/dot_config/foot/foot.ini.tmpl +0 -33
  201. package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
  202. package/dot_config/fzf/fzf.zsh +0 -48
  203. package/dot_config/gem/gemrc +0 -9
  204. package/dot_config/gh/config.yml +0 -12
  205. package/dot_config/ghostty/config.tmpl +0 -165
  206. package/dot_config/git/allowed_signers.tmpl +0 -18
  207. package/dot_config/git/attributes +0 -12
  208. package/dot_config/git/commit-template +0 -10
  209. package/dot_config/git/hooks/executable_commit-msg +0 -146
  210. package/dot_config/git/ignore +0 -27
  211. package/dot_config/gnupg/gpg-agent.conf +0 -11
  212. package/dot_config/go/golangci.yml +0 -118
  213. package/dot_config/go/gopls.json +0 -30
  214. package/dot_config/goose/config.yaml +0 -29
  215. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
  216. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
  217. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
  218. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
  219. package/dot_config/htop/htoprc +0 -20
  220. package/dot_config/inputrc +0 -2
  221. package/dot_config/ipython/profile_default/ipython_config.py +0 -19
  222. package/dot_config/just/justfile +0 -122
  223. package/dot_config/k9s/config.yaml +0 -65
  224. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  225. package/dot_config/kanshi/config.tmpl +0 -22
  226. package/dot_config/karabiner/karabiner.json +0 -14
  227. package/dot_config/kitty/kitty.conf.tmpl +0 -53
  228. package/dot_config/lazydocker/config.yml +0 -186
  229. package/dot_config/lazygit/config.yml +0 -35
  230. package/dot_config/mako/config +0 -47
  231. package/dot_config/mas/masapps.txt +0 -5
  232. package/dot_config/micro/settings.json +0 -3
  233. package/dot_config/mimeapps.list +0 -77
  234. package/dot_config/minikube/config.json +0 -13
  235. package/dot_config/mise/config.toml +0 -99
  236. package/dot_config/mongosh/mongoshrc.js +0 -68
  237. package/dot_config/mpv/input.conf +0 -47
  238. package/dot_config/mpv/mpv.conf +0 -47
  239. package/dot_config/mycli/myclirc +0 -67
  240. package/dot_config/nano/nanorc +0 -28
  241. package/dot_config/ncdu/config +0 -12
  242. package/dot_config/niri/config.kdl.tmpl +0 -327
  243. package/dot_config/nushell/aliases.nu +0 -18
  244. package/dot_config/nushell/cached_eval.nu +0 -80
  245. package/dot_config/nushell/completions.nu.tmpl +0 -52
  246. package/dot_config/nushell/config.nu.tmpl +0 -86
  247. package/dot_config/nushell/env.nu.tmpl +0 -102
  248. package/dot_config/nushell/functions.nu.tmpl +0 -17
  249. package/dot_config/nvim/init.lua +0 -18
  250. package/dot_config/nvim/lazy-lock.json +0 -58
  251. package/dot_config/nvim/lua/config/autocmds.lua +0 -107
  252. package/dot_config/nvim/lua/config/keymaps.lua +0 -92
  253. package/dot_config/nvim/lua/config/lazy.lua +0 -44
  254. package/dot_config/nvim/lua/config/options.lua +0 -49
  255. package/dot_config/nvim/lua/plugins/ai.lua +0 -75
  256. package/dot_config/nvim/lua/plugins/coding.lua +0 -216
  257. package/dot_config/nvim/lua/plugins/completion.lua +0 -60
  258. package/dot_config/nvim/lua/plugins/dap.lua +0 -412
  259. package/dot_config/nvim/lua/plugins/editor.lua +0 -55
  260. package/dot_config/nvim/lua/plugins/git.lua +0 -10
  261. package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
  262. package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
  263. package/dot_config/nvim/lua/plugins/rust.lua +0 -34
  264. package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
  265. package/dot_config/nvim/lua/plugins/ui.lua +0 -509
  266. package/dot_config/paru/paru.conf +0 -10
  267. package/dot_config/pip/pip.conf.tmpl +0 -32
  268. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
  269. package/dot_config/pueue/pueue.yml +0 -34
  270. package/dot_config/pypoetry/config.toml +0 -6
  271. package/dot_config/pyrightconfig.json +0 -5
  272. package/dot_config/raycast/README.md +0 -13
  273. package/dot_config/redis/redisclirc +0 -41
  274. package/dot_config/ripgrep/ripgreprc +0 -21
  275. package/dot_config/shell/00-core-paths.sh.tmpl +0 -141
  276. package/dot_config/shell/05-core-safety.sh +0 -48
  277. package/dot_config/shell/10-secrets.sh +0 -41
  278. package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
  279. package/dot_config/shell/40-ls-colors.sh +0 -49
  280. package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
  281. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
  282. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
  283. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
  284. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
  285. package/dot_config/shell/Brewfile +0 -207
  286. package/dot_config/shell/Brewfile.cask +0 -92
  287. package/dot_config/shell/Brewfile.cli +0 -127
  288. package/dot_config/shell/README.md +0 -284
  289. package/dot_config/shell/als_data.txt.tmpl +0 -65
  290. package/dot_config/shell/custom/auto_ls.zsh +0 -20
  291. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  292. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  293. package/dot_config/sops/dot_sops.yaml +0 -23
  294. package/dot_config/starship.toml.tmpl +0 -202
  295. package/dot_config/swaylock/config +0 -43
  296. package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
  297. package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
  298. package/dot_config/systemd/user/pueued.service +0 -12
  299. package/dot_config/systemd/user/ssh-agent.service +0 -12
  300. package/dot_config/task/Taskfile.yml +0 -86
  301. package/dot_config/tflint/tflint.hcl +0 -9
  302. package/dot_config/tmux/tmux.conf.tmpl +0 -223
  303. package/dot_config/topgrade.toml.tmpl +0 -54
  304. package/dot_config/user-dirs.dirs +0 -10
  305. package/dot_config/vscode/extensions.txt +0 -11
  306. package/dot_config/vscode/settings.json.tmpl +0 -82
  307. package/dot_config/waybar/config.jsonc.tmpl +0 -90
  308. package/dot_config/waybar/style.css.tmpl +0 -211
  309. package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
  310. package/dot_config/wget/wgetrc +0 -12
  311. package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
  312. package/dot_config/yarn/yarnrc.yml +0 -36
  313. package/dot_config/yazi/keymap.toml +0 -67
  314. package/dot_config/yazi/theme.toml +0 -102
  315. package/dot_config/yazi/yazi.toml +0 -40
  316. package/dot_config/zathura/zathurarc +0 -52
  317. package/dot_config/zellij/config.kdl.tmpl +0 -79
  318. package/dot_config/zsh/dot_zprofile +0 -7
  319. package/dot_config/zsh/dot_zshenv +0 -5
  320. package/dot_config/zsh/dot_zshrc.tmpl +0 -688
  321. package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
  322. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
  323. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  324. package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
  325. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
  326. package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
  327. package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
  328. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
  329. package/dot_local/bin/executable_ai-update +0 -195
  330. package/dot_local/bin/executable_ai_core +0 -152
  331. package/dot_local/bin/executable_antigravity +0 -11
  332. package/dot_local/bin/executable_b64 +0 -84
  333. package/dot_local/bin/executable_bm +0 -79
  334. package/dot_local/bin/executable_cb +0 -39
  335. package/dot_local/bin/executable_dot +0 -636
  336. package/dot_local/bin/executable_dot-ai +0 -36
  337. package/dot_local/bin/executable_dot-bootstrap +0 -76
  338. package/dot_local/bin/executable_dot-launch-or-focus +0 -52
  339. package/dot_local/bin/executable_dot-load-benchmark +0 -31
  340. package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
  341. package/dot_local/bin/executable_dot-theme-sync +0 -952
  342. package/dot_local/bin/executable_dot_completion +0 -57
  343. package/dot_local/bin/executable_dtags +0 -28
  344. package/dot_local/bin/executable_epoch +0 -67
  345. package/dot_local/bin/executable_extract +0 -41
  346. package/dot_local/bin/executable_gbd +0 -52
  347. package/dot_local/bin/executable_gd +0 -42
  348. package/dot_local/bin/executable_git-ai-commit +0 -175
  349. package/dot_local/bin/executable_git-ai-diff +0 -169
  350. package/dot_local/bin/executable_gl +0 -101
  351. package/dot_local/bin/executable_hash +0 -161
  352. package/dot_local/bin/executable_hashsum +0 -160
  353. package/dot_local/bin/executable_hex +0 -115
  354. package/dot_local/bin/executable_jsonv +0 -78
  355. package/dot_local/bin/executable_jwt +0 -94
  356. package/dot_local/bin/executable_kill-port +0 -75
  357. package/dot_local/bin/executable_lorem +0 -118
  358. package/dot_local/bin/executable_mkscript +0 -35
  359. package/dot_local/bin/executable_monitor +0 -56
  360. package/dot_local/bin/executable_myip +0 -51
  361. package/dot_local/bin/executable_notify +0 -24
  362. package/dot_local/bin/executable_open +0 -38
  363. package/dot_local/bin/executable_pw +0 -27
  364. package/dot_local/bin/executable_rec-start +0 -46
  365. package/dot_local/bin/executable_rec-stop +0 -35
  366. package/dot_local/bin/executable_regex +0 -132
  367. package/dot_local/bin/executable_start-niri +0 -8
  368. package/dot_local/bin/executable_tmux-sessionizer +0 -314
  369. package/dot_local/bin/executable_tour +0 -177
  370. package/dot_local/bin/executable_up +0 -23
  371. package/dot_local/bin/executable_update +0 -142
  372. package/dot_local/bin/executable_uuid +0 -87
  373. package/dot_local/bin/executable_win +0 -32
  374. package/dot_local/bin/executable_yamlv +0 -57
  375. package/dot_local/share/bash-completion/completions/dot +0 -72
  376. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  377. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  378. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  379. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  380. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  381. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  382. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  383. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  384. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  385. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  386. package/dot_local/share/man/man1/dot.1 +0 -149
  387. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
  388. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
  389. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
  390. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
  391. package/dot_local/share/zsh/completions/.keep +0 -0
  392. package/dot_local/share/zsh/completions/_dot +0 -287
  393. package/scripts/ci/check-dangerous-chmod.sh +0 -19
  394. package/scripts/ci/check-deps-dev.sh +0 -236
  395. package/scripts/ci/check-insecure-tls.sh +0 -61
  396. package/scripts/ci/check-regression-traceability.sh +0 -67
  397. package/scripts/ci/dot-cli-startup-bench.sh +0 -126
  398. package/scripts/ci/install-chezmoi-verified.sh +0 -67
  399. package/scripts/ci/lint-reusable-pins.sh +0 -78
  400. package/scripts/ci/run-coverage.sh +0 -451
  401. package/scripts/ci/validate-chezmoidata.sh +0 -25
  402. package/scripts/ci/validate-ci-config.sh +0 -224
  403. package/scripts/ci/windows-smoke-test.ps1 +0 -136
  404. package/scripts/docs/build-manual.sh +0 -883
  405. package/scripts/docs/check-manual.sh +0 -213
  406. package/scripts/dot/lib/bento.sh +0 -50
  407. package/scripts/dot/lib/log.sh +0 -200
  408. package/scripts/dot/lib/platform.sh +0 -112
  409. package/scripts/dot/lib/ui.sh +0 -650
  410. package/scripts/dot/lib/utils.sh +0 -377
  411. package/scripts/maintenance/check-updates.sh +0 -131
  412. package/scripts/release/package-policy-bundles.sh +0 -125
@@ -1,18 +0,0 @@
1
- -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
-
3
- -- Require Neovim >= 0.11.2 for native LSP improvements and vim.snippet
4
- if vim.fn.has("nvim-0.11.2") ~= 1 then
5
- vim.api.nvim_echo({
6
- { "Dotfiles Neovim config requires Neovim >= 0.11.2\n", "ErrorMsg" },
7
- {
8
- "Current: " .. vim.version().major .. "." .. vim.version().minor .. "." .. vim.version().patch .. "\n",
9
- "WarningMsg",
10
- },
11
- }, true, {})
12
- return
13
- end
14
-
15
- require("config.options")
16
- require("config.lazy")
17
- require("config.keymaps")
18
- require("config.autocmds")
@@ -1,58 +0,0 @@
1
- {
2
- "CopilotChat.nvim": { "branch": "main", "commit": "ecea24a9a067c6f176b8e13eb11251c739caf055" },
3
- "blink.cmp": { "branch": "main", "commit": "451168851e8e2466bc97ee3e026c3dcb9141ce07" },
4
- "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
5
- "catppuccin": { "branch": "main", "commit": "384f304c8b04664c9e0091fbfb3923c5f97c1bcf" },
6
- "conform.nvim": { "branch": "master", "commit": "086a40dc7ed8242c03be9f47fbcee68699cc2395" },
7
- "copilot.lua": { "branch": "master", "commit": "8e2a91828210d6043744468f6d7027d256a41f42" },
8
- "crates.nvim": { "branch": "main", "commit": "ac9fa498a9edb96dc3056724ff69d5f40b898453" },
9
- "dracula": { "branch": "main", "commit": "ae752c13e95fb7c5f58da4b5123cb804ea7568ee" },
10
- "everforest": { "branch": "master", "commit": "b03a03148c8b34c24c96960b93da9c8883d11f54" },
11
- "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
12
- "git-worktree.nvim": { "branch": "master", "commit": "f247308e68dab9f1133759b05d944569ad054546" },
13
- "gitsigns.nvim": { "branch": "main", "commit": "7c4faa3540d0781a28588cafbd4dd187a28ac6e3" },
14
- "gruvbox": { "branch": "main", "commit": "334d5fd49fc8033f26408425366c66c6390c57bb" },
15
- "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
16
- "kanagawa": { "branch": "master", "commit": "aef7f5cec0a40dbe7f3304214850c472e2264b10" },
17
- "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
18
- "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
19
- "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
20
- "mason-lspconfig.nvim": { "branch": "main", "commit": "a676ab7282da8d651e175118bcf54483ca11e46d" },
21
- "mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" },
22
- "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
23
- "neogen": { "branch": "main", "commit": "23e7e9f883d01289ebd90e98025acc860ea26366" },
24
- "neotest": { "branch": "master", "commit": "deadfb1af5ce458742671ad3a013acb9a6b41178" },
25
- "neotest-plenary": { "branch": "master", "commit": "3523adcf9ffaad1911960c5813b0136c1b63a2ec" },
26
- "neotest-python": { "branch": "master", "commit": "b0d3a861bd85689d8ed73f0590c47963a7eb1bf9" },
27
- "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
28
- "nord": { "branch": "master", "commit": "80c1e5321505aeb22b7a9f23eb82f1e193c12470" },
29
- "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
30
- "nvim-dap": { "branch": "master", "commit": "a9d8cb68ee7184111dc66156c4a2ebabfbe01bc5" },
31
- "nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" },
32
- "nvim-dap-python": { "branch": "master", "commit": "1808458eba2b18f178f990e01376941a42c7f93b" },
33
- "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
34
- "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
35
- "nvim-lint": { "branch": "master", "commit": "606b823a57b027502a9ae00978ebf4f5d5158098" },
36
- "nvim-lspconfig": { "branch": "master", "commit": "dd261ad5266ab5bbec249d21efeceda98ff3e1a6" },
37
- "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
38
- "nvim-scrollbar": { "branch": "main", "commit": "f8e87b96cd6362ef8579be456afee3b38fd7e2a8" },
39
- "nvim-tree.lua": { "branch": "master", "commit": "b3772adec8db61ba9098c5624a0823a77be3a23d" },
40
- "nvim-treesitter": { "branch": "main", "commit": "2f5d4c3f3c675962242096bcc8e586d76dd72eb2" },
41
- "nvim-web-devicons": { "branch": "master", "commit": "d7462543c9e366c0d196c7f67a945eaaf5d99414" },
42
- "one-small-step-for-vimkind": { "branch": "main", "commit": "1af6ffb9b5229a856e8090fa2f690e0931a5aace" },
43
- "onedark": { "branch": "master", "commit": "213c23ae45a04797572242568d5d51937181792d" },
44
- "outline.nvim": { "branch": "main", "commit": "ead1820d49c8e79ce89cab1c2c318981b695c9d2" },
45
- "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
46
- "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
47
- "rose-pine": { "branch": "main", "commit": "cf2a288696b03d0934da713d66c6d71557b5c997" },
48
- "rustaceanvim": { "branch": "master", "commit": "047f9c9d8cd2861745eb9de6c1570ee0875aa795" },
49
- "snacks.nvim": { "branch": "main", "commit": "a049339328e2599ad6e85a69fa034ac501e921b2" },
50
- "solarized": { "branch": "main", "commit": "c0dfe1cbfabd93b546baf5f1408f5df7e02e2050" },
51
- "telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
52
- "telescope.nvim": { "branch": "master", "commit": "5255aa27c422de944791318024167ad5d40aad20" },
53
- "toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
54
- "tokyonight": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
55
- "venv-selector.nvim": { "branch": "main", "commit": "42e8faadf9b819654f29eb1a785797a3a328f301" },
56
- "vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
57
- "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
58
- }
@@ -1,107 +0,0 @@
1
- -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
- -- Check if we need to reload the file when it changed
3
- vim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, {
4
- command = "checktime",
5
- })
6
-
7
- -- Highlight on yank
8
- vim.api.nvim_create_autocmd("TextYankPost", {
9
- callback = function()
10
- vim.highlight.on_yank()
11
- end,
12
- })
13
-
14
- -- Resize splits if window got resized
15
- vim.api.nvim_create_autocmd({ "VimResized" }, {
16
- callback = function()
17
- vim.cmd("tabdo wincmd =")
18
- end,
19
- })
20
-
21
- -- Go to last loc when opening a buffer
22
- vim.api.nvim_create_autocmd("BufReadPost", {
23
- callback = function()
24
- local mark = vim.api.nvim_buf_get_mark(0, '"')
25
- local lcount = vim.api.nvim_buf_line_count(0)
26
- if mark[1] > 0 and mark[1] <= lcount then
27
- pcall(vim.api.nvim_win_set_cursor, 0, mark)
28
- end
29
- end,
30
- })
31
-
32
- -- Close some filetypes with <q>
33
- vim.api.nvim_create_autocmd("FileType", {
34
- pattern = {
35
- "PlenaryTestPopup",
36
- "help",
37
- "lspinfo",
38
- "man",
39
- "notify",
40
- "qf",
41
- "spectre_panel",
42
- "startuptime",
43
- "tsplayground",
44
- "neotest-output",
45
- "checkhealth",
46
- "neotest-summary",
47
- "neotest-output-panel",
48
- },
49
- callback = function(event)
50
- vim.bo[event.buf].buflisted = false
51
- vim.keymap.set("n", "q", "<cmd>close<cr>", { buffer = event.buf, silent = true })
52
- end,
53
- })
54
-
55
- -- Auto create dir when saving a file, in case some intermediate directory does not exist
56
- vim.api.nvim_create_autocmd({ "BufWritePre" }, {
57
- callback = function(event)
58
- if event.match:match("^%w%w+://") then
59
- return
60
- end
61
- local file = vim.uv.fs_realpath(event.match) or event.match
62
- vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p")
63
- end,
64
- })
65
-
66
- -- Theme hot-reload: clear cached modules and reapply colorscheme on LazyReload.
67
- -- Prevents stale theme state when dot-theme-sync sends a colorscheme change.
68
- vim.api.nvim_create_autocmd("User", {
69
- pattern = "LazyReload",
70
- callback = function()
71
- local theme = vim.env.DOTFILES_THEME or "macos-monterey-dark"
72
- -- Clear cached theme modules so setup() runs fresh
73
- for name, _ in pairs(package.loaded) do
74
- if
75
- name:match("^catppuccin")
76
- or name:match("^tokyonight")
77
- or name:match("^kanagawa")
78
- or name:match("^gruvbox")
79
- or name:match("^rose%-pine")
80
- or name:match("^solarized")
81
- or name:match("^onedark")
82
- or name:match("^nord")
83
- or name:match("^dracula")
84
- or name:match("^everforest")
85
- then
86
- package.loaded[name] = nil
87
- end
88
- end
89
- -- Defer to let lazy.nvim finish its reload cycle
90
- vim.defer_fn(function()
91
- local cs = theme:match("^catppuccin") and "catppuccin" or theme:match("^tokyonight") and theme or theme
92
- pcall(vim.cmd.colorscheme, cs)
93
- end, 5)
94
- end,
95
- })
96
-
97
- -- Cursorline only on focused window
98
- vim.api.nvim_create_autocmd({ "WinEnter", "BufEnter" }, {
99
- callback = function()
100
- vim.wo.cursorline = true
101
- end,
102
- })
103
- vim.api.nvim_create_autocmd({ "WinLeave" }, {
104
- callback = function()
105
- vim.wo.cursorline = false
106
- end,
107
- })
@@ -1,92 +0,0 @@
1
- -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
- local map = vim.keymap.set
3
-
4
- -- Better window navigation
5
- map("n", "<C-h>", "<C-w>h", { desc = "Go to left window", remap = true })
6
- map("n", "<C-j>", "<C-w>j", { desc = "Go to lower window", remap = true })
7
- map("n", "<C-k>", "<C-w>k", { desc = "Go to upper window", remap = true })
8
- map("n", "<C-l>", "<C-w>l", { desc = "Go to right window", remap = true })
9
-
10
- -- Resize window using <ctrl> arrow keys
11
- map("n", "<C-Up>", "<cmd>resize +2<cr>", { desc = "Increase window height" })
12
- map("n", "<C-Down>", "<cmd>resize -2<cr>", { desc = "Decrease window height" })
13
- map("n", "<C-Left>", "<cmd>vertical resize -2<cr>", { desc = "Decrease window width" })
14
- map("n", "<C-Right>", "<cmd>vertical resize +2<cr>", { desc = "Increase window width" })
15
-
16
- -- Move Lines
17
- map("n", "<A-j>", "<cmd>m .+1<cr>==", { desc = "Move down" })
18
- map("n", "<A-k>", "<cmd>m .-2<cr>==", { desc = "Move up" })
19
- map("i", "<A-j>", "<esc><cmd>m .+1<cr>==gi", { desc = "Move down" })
20
- map("i", "<A-k>", "<esc><cmd>m .-2<cr>==gi", { desc = "Move up" })
21
- map("v", "<A-j>", ":m '>+1<cr>gv=gv", { desc = "Move down" })
22
- map("v", "<A-k>", ":m '<-2<cr>gv=gv", { desc = "Move up" })
23
-
24
- -- Buffers
25
- map("n", "<S-h>", "<cmd>bprevious<cr>", { desc = "Prev buffer" })
26
- map("n", "<S-l>", "<cmd>bnext<cr>", { desc = "Next buffer" })
27
- map("n", "[b", "<cmd>bprevious<cr>", { desc = "Prev buffer" })
28
- map("n", "]b", "<cmd>bnext<cr>", { desc = "Next buffer" })
29
- map("n", "<leader>bb", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
30
- map("n", "<leader>`", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
31
-
32
- -- Clear search with <esc>
33
- map({ "i", "n" }, "<esc>", "<cmd>noh<cr><esc>", { desc = "Escape and clean hlsearch" })
34
-
35
- -- Save file
36
- map({ "i", "x", "n", "s" }, "<C-s>", "<cmd>w<cr><esc>", { desc = "Save file" })
37
-
38
- -- Better indenting
39
- map("v", "<", "<gv")
40
- map("v", ">", ">gv")
41
-
42
- -- Delete to void register (prevent clipboard pollution)
43
- map({ "n", "v" }, "x", '"_x', { desc = "Delete char (void register)" })
44
- map({ "n", "v" }, "X", '"_X', { desc = "Delete char backward (void register)" })
45
- map("n", "Del", '"_x', { desc = "Delete char (void register)" })
46
-
47
- -- Paste over selection without clobbering register
48
- map("v", "p", "P", { desc = "Paste (keep register)" })
49
-
50
- -- Lazy
51
- map("n", "<leader>l", "<cmd>Lazy<cr>", { desc = "Lazy" })
52
-
53
- -- Quick access (User Customizations)
54
- map("n", "<leader>w", ":w<CR>", { desc = "Save file" })
55
- map("n", "<leader>q", ":q<CR>", { desc = "Quit" })
56
-
57
- -- Python specific
58
- map("n", "<leader>pr", ":w<CR>:!python3 %<CR>", { desc = "Run Python file" })
59
- map("n", "<leader>pi", ":VenvSelect<CR>", { desc = "Select Python Env" })
60
- map("n", "<leader>pt", ":!pytest<CR>", { desc = "Run Pytest" })
61
-
62
- -- LSP (Global fallback; <leader>cf owned by conform.nvim in plugins/lsp.lua)
63
- map("n", "<leader>ca", vim.lsp.buf.code_action, { desc = "Code actions" })
64
- map("n", "<leader>cr", vim.lsp.buf.rename, { desc = "Rename symbol" })
65
-
66
- -- Telescope
67
- map("n", "<leader>ff", ":Telescope find_files<CR>", { desc = "Find files" })
68
- map("n", "<leader>fg", ":Telescope live_grep<CR>", { desc = "Find text" })
69
- map("n", "<leader>fb", ":Telescope buffers<CR>", { desc = "Buffers" })
70
- map("n", "<leader>fp", ":Telescope oldfiles<CR>", { desc = "Recent files" })
71
- map("n", "<leader>gw", ":Telescope git_worktree git_worktrees<CR>", { desc = "Worktrees" })
72
- map("n", "<leader>gW", ":Telescope git_worktree create_git_worktree<CR>", { desc = "Create worktree" })
73
-
74
- -- Terminal (ToggleTerm)
75
- map("n", "<leader>tt", ":ToggleTerm direction=float<CR>", { desc = "Toggle terminal" })
76
- map("t", "<Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
77
-
78
- -- Testing keymaps owned by neotest in plugins/coding.lua
79
-
80
- -- Debugging (DAP)
81
- map("n", "<F5>", function()
82
- require("dap").continue()
83
- end, { desc = "Continue" })
84
- map("n", "<F10>", function()
85
- require("dap").step_over()
86
- end, { desc = "Step over" })
87
- map("n", "<F11>", function()
88
- require("dap").step_into()
89
- end, { desc = "Step into" })
90
- map("n", "<F12>", function()
91
- require("dap").step_out()
92
- end, { desc = "Step out" })
@@ -1,44 +0,0 @@
1
- -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
- local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
3
- if not vim.uv.fs_stat(lazypath) then
4
- vim
5
- .system({
6
- "git",
7
- "clone",
8
- "--filter=blob:none",
9
- "https://github.com/folke/lazy.nvim.git",
10
- "--branch=stable",
11
- lazypath,
12
- })
13
- :wait()
14
- end
15
- vim.opt.rtp:prepend(lazypath)
16
-
17
- -- User-local plugin specs (not managed by chezmoi)
18
- local _lazy_spec = {
19
- { import = "plugins" },
20
- }
21
- local _user_plugins = vim.fn.stdpath("config") .. "/lua/plugins.local"
22
- if vim.uv.fs_stat(_user_plugins) then
23
- table.insert(_lazy_spec, { import = "plugins.local" })
24
- end
25
-
26
- require("lazy").setup({
27
- spec = _lazy_spec,
28
- defaults = {
29
- lazy = false,
30
- version = false,
31
- },
32
- checker = { enabled = true },
33
- performance = {
34
- rtp = {
35
- disabled_plugins = {
36
- "gzip",
37
- "tarPlugin",
38
- "tohtml",
39
- "tutor",
40
- "zipPlugin",
41
- },
42
- },
43
- },
44
- })
@@ -1,49 +0,0 @@
1
- -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
- vim.g.mapleader = " "
3
- vim.g.maplocalleader = " "
4
-
5
- local opt = vim.opt
6
-
7
- opt.autowrite = true -- Enable auto write
8
- opt.clipboard = "unnamedplus" -- Sync with system clipboard
9
- opt.completeopt = "menu,menuone,noselect"
10
- opt.conceallevel = 2 -- Hide * markup for bold and italic
11
- opt.confirm = true -- Confirm to save changes before exiting modified buffer
12
- opt.cursorline = true -- Enable highlighting of the current line
13
- opt.expandtab = true -- Use spaces instead of tabs
14
- opt.formatoptions = "jcroqlnt" -- tcqj
15
- opt.grepformat = "%f:%l:%c:%m"
16
- opt.grepprg = "rg --vimgrep"
17
- opt.ignorecase = true -- Ignore case
18
- opt.inccommand = "nosplit" -- preview incremental substitute
19
- opt.laststatus = 3 -- global statusline
20
- opt.list = true -- Show some invisible characters (tabs...
21
- opt.mouse = "a" -- Enable mouse mode
22
- opt.number = true -- Print line number
23
- opt.pumblend = 10 -- Popup blend
24
- opt.pumheight = 10 -- Maximum number of entries in a popup
25
- opt.relativenumber = true -- Relative line numbers
26
- opt.scrolloff = 4 -- Lines of context
27
- opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp", "folds" }
28
- opt.shiftround = true -- Round indent
29
- opt.shiftwidth = 2 -- Size of an indent
30
- opt.shortmess:append({ W = true, I = true, c = true, C = true })
31
- opt.showmode = false -- Dont show mode since we have a statusline
32
- opt.sidescrolloff = 8 -- Columns of context
33
- opt.signcolumn = "yes" -- Always show the signcolumn
34
- opt.smartcase = true -- Don't ignore case with capitals
35
- opt.smartindent = true -- Insert indents automatically
36
- opt.spelllang = { "en" }
37
- opt.splitbelow = true -- Put new windows below current
38
- opt.splitkeep = "screen"
39
- opt.splitright = true -- Put new windows right of current
40
- opt.tabstop = 2 -- Number of spaces tabs count for
41
- opt.termguicolors = true -- True color support
42
- opt.timeoutlen = 300
43
- opt.undofile = true
44
- opt.undolevels = 10000
45
- opt.updatetime = 200 -- Save swap file and trigger CursorHold
46
- opt.virtualedit = "block" -- Allow cursor to move where there is no text in visual block mode
47
- opt.wildmode = "longest:full,full" -- Command-line completion mode
48
- opt.winminwidth = 5 -- Minimum window width
49
- opt.wrap = false -- Disable line wrap
@@ -1,75 +0,0 @@
1
- -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
- -- AI-assisted coding plugins
3
- -- Loaded when ai_tools feature is enabled in .chezmoidata.toml
4
-
5
- return {
6
- -- GitHub Copilot: AI code completion
7
- {
8
- "zbirenbaum/copilot.lua",
9
- cmd = "Copilot",
10
- event = "InsertEnter",
11
- config = function()
12
- require("copilot").setup({
13
- suggestion = {
14
- enabled = true,
15
- auto_trigger = true,
16
- keymap = {
17
- accept = "<M-l>",
18
- accept_word = "<M-k>",
19
- accept_line = "<M-j>",
20
- next = "<M-]>",
21
- prev = "<M-[>",
22
- dismiss = "<C-]>",
23
- },
24
- },
25
- panel = {
26
- enabled = true,
27
- auto_refresh = true,
28
- keymap = {
29
- open = "<M-CR>",
30
- },
31
- },
32
- filetypes = {
33
- yaml = true,
34
- markdown = true,
35
- gitcommit = true,
36
- ["."] = false,
37
- },
38
- })
39
- end,
40
- },
41
-
42
- -- Copilot Chat: interactive AI chat in a split
43
- {
44
- "CopilotC-Nvim/CopilotChat.nvim",
45
- dependencies = {
46
- "zbirenbaum/copilot.lua",
47
- "nvim-lua/plenary.nvim",
48
- },
49
- cmd = {
50
- "CopilotChat",
51
- "CopilotChatExplain",
52
- "CopilotChatReview",
53
- "CopilotChatFix",
54
- "CopilotChatOptimize",
55
- "CopilotChatTests",
56
- "CopilotChatDocs",
57
- },
58
- keys = {
59
- { "<leader>aa", "<cmd>CopilotChat<CR>", desc = "AI Chat" },
60
- { "<leader>ae", "<cmd>CopilotChatExplain<CR>", desc = "AI Explain", mode = { "n", "v" } },
61
- { "<leader>ar", "<cmd>CopilotChatReview<CR>", desc = "AI Review", mode = { "n", "v" } },
62
- { "<leader>af", "<cmd>CopilotChatFix<CR>", desc = "AI Fix", mode = { "n", "v" } },
63
- { "<leader>ao", "<cmd>CopilotChatOptimize<CR>", desc = "AI Optimize", mode = { "n", "v" } },
64
- { "<leader>at", "<cmd>CopilotChatTests<CR>", desc = "AI Tests", mode = { "n", "v" } },
65
- { "<leader>ad", "<cmd>CopilotChatDocs<CR>", desc = "AI Docs", mode = { "n", "v" } },
66
- },
67
- opts = {
68
- model = "gpt-4o",
69
- window = {
70
- layout = "vertical",
71
- width = 0.3,
72
- },
73
- },
74
- },
75
- }
@@ -1,216 +0,0 @@
1
- -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
- -- @module nvim.plugins.coding
3
- -- Syntax, completion, and language intelligence plugins.
4
- -- Treesitter provides AST-based highlighting and text-objects.
5
- -- nvim-cmp drives the completion engine with LSP, snippet, and path sources.
6
- -- venv-selector enables Python virtualenv switching from within Neovim.
7
- return {
8
- -- Treesitter (Syntax Highlighting)
9
- {
10
- "nvim-treesitter/nvim-treesitter",
11
- build = ":TSUpdate",
12
- event = { "BufReadPost", "BufNewFile" },
13
- config = function()
14
- -- Use correct module path (configs)
15
- local ok, ts_config = pcall(require, "nvim-treesitter.configs")
16
- if not ok then
17
- -- Treesitter not installed yet, skip configuration
18
- return
19
- end
20
-
21
- ts_config.setup({
22
- ensure_installed = {
23
- "python",
24
- "go",
25
- "markdown",
26
- "json",
27
- "toml",
28
- "yaml",
29
- "bash",
30
- "vim",
31
- "regex",
32
- "lua",
33
- "rust",
34
- "dockerfile",
35
- },
36
- highlight = { enable = true },
37
- indent = { enable = true },
38
- })
39
- end,
40
- },
41
-
42
- -- Neotest (Testing)
43
- {
44
- "nvim-neotest/neotest",
45
- dependencies = {
46
- "nvim-neotest/nvim-nio",
47
- "nvim-neotest/neotest-python",
48
- "nvim-neotest/neotest-plenary",
49
- "nvim-lua/plenary.nvim",
50
- "nvim-treesitter/nvim-treesitter",
51
- },
52
- config = function()
53
- require("neotest").setup({
54
- adapters = {
55
- require("neotest-python")({
56
- dap = { justMyCode = false },
57
- runner = "pytest",
58
- args = { "--cov", "--cov-report=term-missing", "-v" },
59
- }),
60
- require("neotest-plenary"),
61
- },
62
- })
63
- -- Keymaps
64
- vim.keymap.set("n", "<leader>tn", function()
65
- require("neotest").run.run()
66
- end, { desc = "Run nearest test" })
67
- vim.keymap.set("n", "<leader>tf", function()
68
- require("neotest").run.run(vim.fn.expand("%"))
69
- end, { desc = "Run test file" })
70
- vim.keymap.set("n", "<leader>ts", function()
71
- require("neotest").summary.toggle()
72
- end, { desc = "Toggle test summary" })
73
- vim.keymap.set("n", "<leader>to", function()
74
- require("neotest").output.open({ enter = true })
75
- end, { desc = "Show test output" })
76
- end,
77
- },
78
-
79
- -- Debugging (DAP + Python)
80
- {
81
- "mfussenegger/nvim-dap",
82
- dependencies = {
83
- "rcarriga/nvim-dap-ui",
84
- "mfussenegger/nvim-dap-python",
85
- "nvim-neotest/nvim-nio",
86
- "theHamsta/nvim-dap-virtual-text",
87
- "jbyuki/one-small-step-for-vimkind",
88
- },
89
- config = function()
90
- local dap_python = require("dap-python")
91
- local osv = require("osv")
92
-
93
- -- DAP UI setup and listeners are in dap.lua (avoid duplication)
94
- require("nvim-dap-virtual-text").setup()
95
-
96
- -- Python path resolution
97
- local venv_path = os.getenv("VIRTUAL_ENV")
98
- local python_path
99
- if venv_path then
100
- python_path = venv_path .. "/bin/python"
101
- else
102
- python_path = vim.fn.exepath("python3") or vim.fn.exepath("python")
103
- end
104
-
105
- dap_python.setup(python_path)
106
- dap_python.test_runner = "pytest"
107
-
108
- -- Local Lua debugger (OSV)
109
- local dap = require("dap")
110
- osv.setup({ port = 8086 })
111
- dap.adapters.nlua = function(callback, config)
112
- callback({ type = "server", host = config.host or "127.0.0.1", port = config.port or 8086 })
113
- end
114
- dap.configurations.lua = {
115
- {
116
- type = "nlua",
117
- request = "attach",
118
- name = "Attach to running Neovim instance",
119
- },
120
- }
121
-
122
- -- Signs
123
- vim.fn.sign_define("DapBreakpoint", { text = "B", texthl = "DapBreakpoint", linehl = "", numhl = "" })
124
- vim.fn.sign_define(
125
- "DapStopped",
126
- { text = "S", texthl = "DapStopped", linehl = "DapStopped", numhl = "DapStopped" }
127
- )
128
- end,
129
- },
130
-
131
- -- Debugging (DAP + Go)
132
- {
133
- "leoluz/nvim-dap-go",
134
- ft = { "go" },
135
- dependencies = { "mfussenegger/nvim-dap" },
136
- config = function()
137
- require("dap-go").setup()
138
- end,
139
- },
140
-
141
- -- Linting (Nvim-Lint)
142
- {
143
- "mfussenegger/nvim-lint",
144
- event = { "BufReadPre", "BufNewFile" },
145
- config = function()
146
- local lint = require("lint")
147
- lint.linters_by_ft = {
148
- python = { "mypy", "codespell" },
149
- markdown = { "codespell" },
150
- dockerfile = { "hadolint" },
151
- }
152
-
153
- vim.api.nvim_create_autocmd({ "BufWritePost", "BufEnter", "InsertLeave" }, {
154
- group = vim.api.nvim_create_augroup("lint", { clear = true }),
155
- callback = function()
156
- lint.try_lint()
157
- end,
158
- })
159
- end,
160
- },
161
-
162
- -- Neogen (Docstrings)
163
- {
164
- "danymat/neogen",
165
- dependencies = "nvim-treesitter/nvim-treesitter",
166
- cmd = "Neogen",
167
- keys = {
168
- { "<leader>nd", ":Neogen<CR>", desc = "Generate Docstring" },
169
- },
170
- config = function()
171
- require("neogen").setup({ snippet_engine = "nvim" })
172
- end,
173
- },
174
-
175
- -- Telescope (Fuzzy Finder)
176
- {
177
- "nvim-telescope/telescope.nvim",
178
- dependencies = { "nvim-telescope/telescope-fzf-native.nvim", "ThePrimeagen/git-worktree.nvim" },
179
- cmd = "Telescope",
180
- config = function()
181
- local telescope = require("telescope")
182
- telescope.setup({
183
- defaults = {
184
- file_ignore_patterns = { ".git/", "node_modules", ".venv" },
185
- layout_strategy = "horizontal",
186
- layout_config = { prompt_position = "top" },
187
- sorting_strategy = "ascending",
188
- winblend = 0,
189
- },
190
- pickers = {
191
- find_files = { hidden = true },
192
- },
193
- })
194
- pcall(telescope.load_extension, "fzf")
195
- pcall(telescope.load_extension, "git_worktree")
196
- end,
197
- },
198
- { "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
199
- -- Venv Selector (Python Env Management)
200
- {
201
- "linux-cultist/venv-selector.nvim",
202
- version = false, -- No tagged releases; track default branch
203
- dependencies = {
204
- "neovim/nvim-lspconfig",
205
- "nvim-telescope/telescope.nvim",
206
- "mfussenegger/nvim-dap-python",
207
- },
208
- cmd = "VenvSelect",
209
- keys = { { "<leader>cv", "<cmd>VenvSelect<cr>", desc = "Select VirtualEnv" } },
210
- opts = {
211
- name = { "venv", ".venv", "env", ".env" },
212
- auto_refresh = false, -- Disable auto-scan to prevent home dir timeouts
213
- dap_enabled = true,
214
- },
215
- },
216
- }