@sebastienrousseau/dotfiles 0.2.501 → 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 (420) hide show
  1. package/CHANGELOG.md +155 -4
  2. package/LICENSE +21 -1283
  3. package/README.md +40 -8
  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/01-dot-cli.md +63 -45
  20. package/docs/manual/03-reference/02-config-files.md +2 -2
  21. package/docs/manual/03-reference/05-feature-flags.md +62 -3
  22. package/docs/manual/_toc.yml +1 -1
  23. package/docs/manual/command-index.md +72 -55
  24. package/docs/manual/index.md +66 -0
  25. package/docs/operations/CI_COMPOSITES.md +2 -2
  26. package/docs/operations/COMPLETIONS.md +2 -2
  27. package/docs/operations/COVERAGE.md +40 -6
  28. package/docs/operations/HARD_AUDIT_2026.md +631 -0
  29. package/docs/operations/MAINTENANCE.md +3 -3
  30. package/docs/operations/MANIFEST.md +127 -0
  31. package/docs/operations/REGISTRY.md +89 -0
  32. package/docs/operations/RELEASE_PIPELINE.md +130 -0
  33. package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
  34. package/docs/operations/ROADMAP_2026.md +665 -0
  35. package/docs/operations/ROADMAP_V0_2_503.md +134 -0
  36. package/docs/operations/TESTING.md +17 -0
  37. package/docs/operations/TRACEABILITY.md +9 -3
  38. package/docs/operations/VERSION_SYNC.md +4 -4
  39. package/docs/reference/POWERSHELL_PARITY.md +81 -0
  40. package/docs/registry.json +6 -0
  41. package/docs/schema/dot-env-v1.json +110 -0
  42. package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
  43. package/docs/security/CI_PINNING.md +121 -0
  44. package/docs/security/COMMIT_SIGNING.md +138 -0
  45. package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
  46. package/docs/security/DISCLOSURE.md +130 -0
  47. package/docs/security/FUZZING.md +114 -0
  48. package/docs/security/INSTALL_VERIFICATION.md +2 -2
  49. package/docs/security/KEY_ROTATION.md +81 -1
  50. package/docs/security/POLICY_RELEASES.md +2 -2
  51. package/docs/security/SCORECARD.md +130 -15
  52. package/docs/security/SHELL_EXEMPTIONS.md +4 -4
  53. package/docs/security/VERIFY_RELEASE.md +201 -0
  54. package/docs/security/security-pubkey.asc +15 -0
  55. package/install.sh +67 -38
  56. package/package.json +1 -1
  57. package/scripts/README.md +123 -0
  58. package/scripts/ci/check-copyright-headers.sh +4 -93
  59. package/scripts/ci/check-shell-preamble.sh +4 -103
  60. package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
  61. package/scripts/diagnostics/a2a-conformance.sh +4 -4
  62. package/scripts/diagnostics/alias-governance.sh +1 -1
  63. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
  64. package/scripts/diagnostics/benchmark.sh +4 -4
  65. package/scripts/diagnostics/conflicts.sh +2 -2
  66. package/scripts/diagnostics/doctor-unified.sh +2 -2
  67. package/scripts/diagnostics/doctor.sh +45 -15
  68. package/scripts/diagnostics/drift-dashboard.sh +2 -2
  69. package/scripts/diagnostics/health.sh +4 -4
  70. package/scripts/diagnostics/history-analysis.sh +2 -2
  71. package/scripts/diagnostics/mcp-doctor.sh +10 -7
  72. package/scripts/diagnostics/perf.sh +4 -4
  73. package/scripts/diagnostics/scorecard.sh +4 -4
  74. package/scripts/diagnostics/security-score.sh +2 -2
  75. package/scripts/diagnostics/smoke-test.sh +2 -2
  76. package/scripts/diagnostics/snapshot.sh +2 -2
  77. package/scripts/diagnostics/verify.sh +4 -4
  78. package/scripts/diagnostics/version-locks.sh +2 -2
  79. package/scripts/diagnostics/workstation-attestation.sh +14 -14
  80. package/scripts/dot/commands/agent.sh +27 -22
  81. package/scripts/dot/commands/agents.sh +335 -0
  82. package/scripts/dot/commands/ai.sh +144 -25
  83. package/scripts/dot/commands/aliases.sh +10 -8
  84. package/scripts/dot/commands/appearance.sh +2 -2
  85. package/scripts/dot/commands/core.sh +12 -6
  86. package/scripts/dot/commands/diagnostics.sh +5 -5
  87. package/scripts/dot/commands/env-emit.sh +202 -0
  88. package/scripts/dot/commands/fleet.sh +290 -14
  89. package/scripts/dot/commands/init.sh +184 -0
  90. package/scripts/dot/commands/lint.sh +9 -4
  91. package/scripts/dot/commands/manual.sh +3 -3
  92. package/scripts/dot/commands/meta.sh +19 -10
  93. package/scripts/dot/commands/patterns.sh +2 -2
  94. package/scripts/dot/commands/registry.sh +263 -0
  95. package/scripts/dot/commands/restore.sh +4 -4
  96. package/scripts/dot/commands/secrets.sh +4 -3
  97. package/scripts/dot/commands/security.sh +2 -2
  98. package/scripts/dot/commands/tools.sh +62 -4
  99. package/scripts/dot/powershell/Dot.psm1 +199 -0
  100. package/scripts/fonts/install-nerd-fonts.sh +2 -2
  101. package/scripts/git-hooks/pre-commit-audit.sh +2 -2
  102. package/scripts/git-hooks/pre-push +13 -0
  103. package/scripts/lib/secrets_provider.sh +32 -6
  104. package/scripts/ops/ai-setup.sh +1 -1
  105. package/scripts/ops/bundle.sh +2 -2
  106. package/scripts/ops/chaos.sh +2 -2
  107. package/scripts/ops/chezmoi-apply.sh +4 -4
  108. package/scripts/ops/heal.sh +4 -4
  109. package/scripts/ops/post-apply-repair.sh +2 -2
  110. package/scripts/ops/prewarm.sh +2 -2
  111. package/scripts/ops/release.sh +4 -4
  112. package/scripts/ops/rollback.sh +18 -4
  113. package/scripts/ops/setup.sh +2 -2
  114. package/scripts/qa/check-version-consistency.sh +123 -0
  115. package/scripts/qa/coverage-baseline.sh +1 -1
  116. package/scripts/qa/docs-coverage.sh +2 -2
  117. package/scripts/qa/powershell-contract.ps1 +1 -1
  118. package/scripts/qa/scorecard-snapshot.sh +127 -0
  119. package/scripts/security/backup.sh +2 -2
  120. package/scripts/security/check-disclosure-key-expiry.sh +110 -0
  121. package/scripts/security/dns-doh.sh +4 -4
  122. package/scripts/security/encryption-check.sh +4 -4
  123. package/scripts/security/enforce-policies.sh +2 -2
  124. package/scripts/security/firewall.sh +4 -4
  125. package/scripts/security/lock-configs.sh +11 -2
  126. package/scripts/security/lock-screen.sh +4 -4
  127. package/scripts/security/manage-secrets.sh +2 -2
  128. package/scripts/security/ssh-cert.sh +2 -2
  129. package/scripts/security/telemetry-kill.sh +4 -4
  130. package/scripts/security/usb-safety.sh +4 -4
  131. package/scripts/theme/extract-heic-frames.sh +114 -0
  132. package/scripts/theme/rebuild-themes.sh +8 -1
  133. package/scripts/theme/switch.sh +13 -6
  134. package/scripts/theme/wallpaper-sync.sh +297 -93
  135. package/scripts/tuning/linux.sh +2 -2
  136. package/scripts/tuning/macos.sh +2 -2
  137. package/scripts/version-sync.sh +58 -7
  138. package/dot_config/.module-manifest.json +0 -69
  139. package/dot_config/ai/identity.md +0 -23
  140. package/dot_config/ai/patterns/architect.md +0 -16
  141. package/dot_config/ai/patterns/hardener.md +0 -15
  142. package/dot_config/ai/patterns/refactor.md +0 -15
  143. package/dot_config/aider/aider.conf.yml +0 -32
  144. package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
  145. package/dot_config/ansible/ansible.cfg +0 -11
  146. package/dot_config/atuin/config.toml.tmpl +0 -47
  147. package/dot_config/bat/config +0 -23
  148. package/dot_config/brave-flags.conf.tmpl +0 -7
  149. package/dot_config/btop/btop.conf +0 -16
  150. package/dot_config/btop/themes/tokyonight.theme +0 -34
  151. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  152. package/dot_config/claude/mcp_servers.json +0 -20
  153. package/dot_config/containers/containers.conf +0 -14
  154. package/dot_config/curl/dot_curlrc +0 -18
  155. package/dot_config/dlv/config.yml +0 -39
  156. package/dot_config/docker/config.json +0 -15
  157. package/dot_config/dotfiles/agent-card.json +0 -29
  158. package/dot_config/dotfiles/agent-profiles.json +0 -92
  159. package/dot_config/dotfiles/boot/README.md +0 -13
  160. package/dot_config/dotfiles/grub/README.md +0 -13
  161. package/dot_config/dotfiles/lock/README.md +0 -13
  162. package/dot_config/dotfiles/mcp-lock.json +0 -33
  163. package/dot_config/dotfiles/mcp-policy.json +0 -52
  164. package/dot_config/dotfiles/mcp-registry.json +0 -47
  165. package/dot_config/dotfiles/model-registry.json +0 -20
  166. package/dot_config/dotfiles/policy-bundles.json +0 -38
  167. package/dot_config/dotfiles/prompt-registry.json +0 -16
  168. package/dot_config/dotfiles/versions.env +0 -18
  169. package/dot_config/duf/duf.conf +0 -6
  170. package/dot_config/duti/defaults.duti +0 -5
  171. package/dot_config/emoji/emoji.txt +0 -34
  172. package/dot_config/environment.d/50-ssh-agent.conf +0 -2
  173. package/dot_config/environment.d/90-wayland.conf +0 -19
  174. package/dot_config/fastfetch/config.jsonc +0 -28
  175. package/dot_config/firefox/user.js.tmpl +0 -58
  176. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
  177. package/dot_config/fish/completions/dot.fish.tmpl +0 -115
  178. package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
  179. package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
  180. package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
  181. package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
  182. package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
  183. package/dot_config/fish/config.fish.tmpl +0 -44
  184. package/dot_config/fish/fish_plugins +0 -1
  185. package/dot_config/fish/functions/_.fish +0 -3
  186. package/dot_config/fish/functions/_cached_eval.fish +0 -131
  187. package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
  188. package/dot_config/fish/functions/als.fish +0 -46
  189. package/dot_config/fish/functions/bg-upgrade.fish +0 -7
  190. package/dot_config/fish/functions/c.fish +0 -3
  191. package/dot_config/fish/functions/cat.fish +0 -9
  192. package/dot_config/fish/functions/d.fish +0 -7
  193. package/dot_config/fish/functions/dot.fish +0 -34
  194. package/dot_config/fish/functions/h.fish +0 -3
  195. package/dot_config/fish/functions/l.fish +0 -7
  196. package/dot_config/fish/functions/la.fish +0 -7
  197. package/dot_config/fish/functions/ll.fish +0 -7
  198. package/dot_config/fish/functions/log_error.fish +0 -13
  199. package/dot_config/fish/functions/log_info.fish +0 -13
  200. package/dot_config/fish/functions/lr.fish +0 -7
  201. package/dot_config/fish/functions/lra.fish +0 -7
  202. package/dot_config/fish/functions/ls.fish +0 -7
  203. package/dot_config/fish/functions/lt.fish +0 -7
  204. package/dot_config/fish/functions/lta.fish +0 -7
  205. package/dot_config/fish/functions/notify-run.fish +0 -11
  206. package/dot_config/fish/functions/q.fish +0 -3
  207. package/dot_config/fish/functions/silent-run.fish +0 -7
  208. package/dot_config/fish/functions/yy.fish +0 -8
  209. package/dot_config/flatpak/flatpak.list +0 -4
  210. package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
  211. package/dot_config/foot/foot.ini.tmpl +0 -33
  212. package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
  213. package/dot_config/fzf/fzf.zsh +0 -48
  214. package/dot_config/gem/gemrc +0 -9
  215. package/dot_config/gh/config.yml +0 -12
  216. package/dot_config/ghostty/config.tmpl +0 -165
  217. package/dot_config/git/allowed_signers.tmpl +0 -18
  218. package/dot_config/git/attributes +0 -12
  219. package/dot_config/git/commit-template +0 -10
  220. package/dot_config/git/hooks/executable_commit-msg +0 -146
  221. package/dot_config/git/ignore +0 -27
  222. package/dot_config/gnupg/gpg-agent.conf +0 -11
  223. package/dot_config/go/golangci.yml +0 -118
  224. package/dot_config/go/gopls.json +0 -30
  225. package/dot_config/goose/config.yaml +0 -29
  226. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
  227. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
  228. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
  229. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
  230. package/dot_config/htop/htoprc +0 -20
  231. package/dot_config/inputrc +0 -2
  232. package/dot_config/ipython/profile_default/ipython_config.py +0 -19
  233. package/dot_config/just/justfile +0 -122
  234. package/dot_config/k9s/config.yaml +0 -65
  235. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  236. package/dot_config/kanshi/config.tmpl +0 -22
  237. package/dot_config/karabiner/karabiner.json +0 -14
  238. package/dot_config/kitty/kitty.conf.tmpl +0 -53
  239. package/dot_config/lazydocker/config.yml +0 -186
  240. package/dot_config/lazygit/config.yml +0 -35
  241. package/dot_config/mako/config +0 -47
  242. package/dot_config/mas/masapps.txt +0 -5
  243. package/dot_config/micro/settings.json +0 -3
  244. package/dot_config/mimeapps.list +0 -77
  245. package/dot_config/minikube/config.json +0 -13
  246. package/dot_config/mise/config.toml +0 -99
  247. package/dot_config/mongosh/mongoshrc.js +0 -68
  248. package/dot_config/mpv/input.conf +0 -47
  249. package/dot_config/mpv/mpv.conf +0 -47
  250. package/dot_config/mycli/myclirc +0 -67
  251. package/dot_config/nano/nanorc +0 -28
  252. package/dot_config/ncdu/config +0 -12
  253. package/dot_config/niri/config.kdl.tmpl +0 -327
  254. package/dot_config/nushell/aliases.nu +0 -18
  255. package/dot_config/nushell/cached_eval.nu +0 -80
  256. package/dot_config/nushell/completions.nu.tmpl +0 -52
  257. package/dot_config/nushell/config.nu.tmpl +0 -86
  258. package/dot_config/nushell/env.nu.tmpl +0 -102
  259. package/dot_config/nushell/functions.nu.tmpl +0 -17
  260. package/dot_config/nvim/init.lua +0 -18
  261. package/dot_config/nvim/lazy-lock.json +0 -58
  262. package/dot_config/nvim/lua/config/autocmds.lua +0 -107
  263. package/dot_config/nvim/lua/config/keymaps.lua +0 -92
  264. package/dot_config/nvim/lua/config/lazy.lua +0 -44
  265. package/dot_config/nvim/lua/config/options.lua +0 -49
  266. package/dot_config/nvim/lua/plugins/ai.lua +0 -75
  267. package/dot_config/nvim/lua/plugins/coding.lua +0 -216
  268. package/dot_config/nvim/lua/plugins/completion.lua +0 -60
  269. package/dot_config/nvim/lua/plugins/dap.lua +0 -412
  270. package/dot_config/nvim/lua/plugins/editor.lua +0 -55
  271. package/dot_config/nvim/lua/plugins/git.lua +0 -10
  272. package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
  273. package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
  274. package/dot_config/nvim/lua/plugins/rust.lua +0 -34
  275. package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
  276. package/dot_config/nvim/lua/plugins/ui.lua +0 -509
  277. package/dot_config/paru/paru.conf +0 -10
  278. package/dot_config/pip/pip.conf.tmpl +0 -32
  279. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
  280. package/dot_config/pueue/pueue.yml +0 -34
  281. package/dot_config/pypoetry/config.toml +0 -6
  282. package/dot_config/pyrightconfig.json +0 -5
  283. package/dot_config/raycast/README.md +0 -13
  284. package/dot_config/redis/redisclirc +0 -41
  285. package/dot_config/ripgrep/ripgreprc +0 -21
  286. package/dot_config/shell/00-core-paths.sh.tmpl +0 -134
  287. package/dot_config/shell/05-core-safety.sh +0 -48
  288. package/dot_config/shell/10-secrets.sh +0 -41
  289. package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
  290. package/dot_config/shell/40-ls-colors.sh +0 -49
  291. package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
  292. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
  293. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
  294. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
  295. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
  296. package/dot_config/shell/Brewfile +0 -207
  297. package/dot_config/shell/Brewfile.cask +0 -92
  298. package/dot_config/shell/Brewfile.cli +0 -127
  299. package/dot_config/shell/README.md +0 -284
  300. package/dot_config/shell/als_data.txt.tmpl +0 -65
  301. package/dot_config/shell/custom/auto_ls.zsh +0 -20
  302. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  303. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  304. package/dot_config/sops/dot_sops.yaml +0 -23
  305. package/dot_config/starship.toml.tmpl +0 -202
  306. package/dot_config/swaylock/config +0 -43
  307. package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
  308. package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
  309. package/dot_config/systemd/user/pueued.service +0 -12
  310. package/dot_config/systemd/user/ssh-agent.service +0 -12
  311. package/dot_config/task/Taskfile.yml +0 -86
  312. package/dot_config/tflint/tflint.hcl +0 -9
  313. package/dot_config/tmux/tmux.conf.tmpl +0 -223
  314. package/dot_config/topgrade.toml.tmpl +0 -54
  315. package/dot_config/user-dirs.dirs +0 -10
  316. package/dot_config/vscode/extensions.txt +0 -11
  317. package/dot_config/vscode/settings.json.tmpl +0 -82
  318. package/dot_config/waybar/config.jsonc.tmpl +0 -90
  319. package/dot_config/waybar/style.css.tmpl +0 -211
  320. package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
  321. package/dot_config/wget/wgetrc +0 -12
  322. package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
  323. package/dot_config/yarn/yarnrc.yml +0 -36
  324. package/dot_config/yazi/keymap.toml +0 -67
  325. package/dot_config/yazi/theme.toml +0 -102
  326. package/dot_config/yazi/yazi.toml +0 -40
  327. package/dot_config/zathura/zathurarc +0 -52
  328. package/dot_config/zellij/config.kdl.tmpl +0 -79
  329. package/dot_config/zsh/dot_zprofile +0 -7
  330. package/dot_config/zsh/dot_zshenv +0 -5
  331. package/dot_config/zsh/dot_zshrc.tmpl +0 -635
  332. package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
  333. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
  334. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  335. package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
  336. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
  337. package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
  338. package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
  339. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
  340. package/dot_local/bin/executable_ai-update +0 -195
  341. package/dot_local/bin/executable_ai_core +0 -152
  342. package/dot_local/bin/executable_antigravity +0 -11
  343. package/dot_local/bin/executable_b64 +0 -84
  344. package/dot_local/bin/executable_bm +0 -79
  345. package/dot_local/bin/executable_cb +0 -39
  346. package/dot_local/bin/executable_dot +0 -596
  347. package/dot_local/bin/executable_dot-ai +0 -36
  348. package/dot_local/bin/executable_dot-bootstrap +0 -77
  349. package/dot_local/bin/executable_dot-launch-or-focus +0 -52
  350. package/dot_local/bin/executable_dot-load-benchmark +0 -31
  351. package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
  352. package/dot_local/bin/executable_dot-theme-sync +0 -952
  353. package/dot_local/bin/executable_dot_completion +0 -57
  354. package/dot_local/bin/executable_dtags +0 -28
  355. package/dot_local/bin/executable_epoch +0 -67
  356. package/dot_local/bin/executable_extract +0 -41
  357. package/dot_local/bin/executable_gbd +0 -52
  358. package/dot_local/bin/executable_gd +0 -42
  359. package/dot_local/bin/executable_git-ai-commit +0 -175
  360. package/dot_local/bin/executable_git-ai-diff +0 -169
  361. package/dot_local/bin/executable_gl +0 -101
  362. package/dot_local/bin/executable_hash +0 -161
  363. package/dot_local/bin/executable_hashsum +0 -160
  364. package/dot_local/bin/executable_hex +0 -115
  365. package/dot_local/bin/executable_jsonv +0 -78
  366. package/dot_local/bin/executable_jwt +0 -94
  367. package/dot_local/bin/executable_kill-port +0 -75
  368. package/dot_local/bin/executable_lorem +0 -118
  369. package/dot_local/bin/executable_mkscript +0 -35
  370. package/dot_local/bin/executable_monitor +0 -56
  371. package/dot_local/bin/executable_myip +0 -51
  372. package/dot_local/bin/executable_notify +0 -24
  373. package/dot_local/bin/executable_open +0 -38
  374. package/dot_local/bin/executable_pw +0 -27
  375. package/dot_local/bin/executable_rec-start +0 -46
  376. package/dot_local/bin/executable_rec-stop +0 -35
  377. package/dot_local/bin/executable_regex +0 -132
  378. package/dot_local/bin/executable_start-niri +0 -8
  379. package/dot_local/bin/executable_tmux-sessionizer +0 -314
  380. package/dot_local/bin/executable_tour +0 -177
  381. package/dot_local/bin/executable_up +0 -23
  382. package/dot_local/bin/executable_update +0 -142
  383. package/dot_local/bin/executable_uuid +0 -87
  384. package/dot_local/bin/executable_win +0 -32
  385. package/dot_local/bin/executable_yamlv +0 -57
  386. package/dot_local/share/bash-completion/completions/dot +0 -72
  387. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  388. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  389. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  390. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  391. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  392. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  393. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  394. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  395. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  396. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  397. package/dot_local/share/man/man1/dot.1 +0 -149
  398. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
  399. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
  400. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
  401. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
  402. package/dot_local/share/zsh/completions/.keep +0 -0
  403. package/dot_local/share/zsh/completions/_dot +0 -283
  404. package/scripts/ci/check-dangerous-chmod.sh +0 -19
  405. package/scripts/ci/check-deps-dev.sh +0 -236
  406. package/scripts/ci/check-insecure-tls.sh +0 -61
  407. package/scripts/ci/check-regression-traceability.sh +0 -67
  408. package/scripts/ci/install-chezmoi-verified.sh +0 -64
  409. package/scripts/ci/run-coverage.sh +0 -362
  410. package/scripts/ci/validate-chezmoidata.sh +0 -25
  411. package/scripts/ci/validate-ci-config.sh +0 -224
  412. package/scripts/docs/build-manual.sh +0 -883
  413. package/scripts/docs/check-manual.sh +0 -213
  414. package/scripts/dot/lib/bento.sh +0 -50
  415. package/scripts/dot/lib/log.sh +0 -200
  416. package/scripts/dot/lib/platform.sh +0 -99
  417. package/scripts/dot/lib/ui.sh +0 -518
  418. package/scripts/dot/lib/utils.sh +0 -377
  419. package/scripts/maintenance/check-updates.sh +0 -131
  420. 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
- }