@sebastienrousseau/dotfiles 0.2.502 → 0.2.504

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 +109 -9
  2. package/LICENSE +21 -1283
  3. package/README.md +6 -4
  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 +118 -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 +5 -5
  56. package/scripts/diagnostics/conflicts.sh +2 -2
  57. package/scripts/diagnostics/doctor-unified.sh +3 -3
  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 +5 -5
  64. package/scripts/diagnostics/scorecard.sh +4 -4
  65. package/scripts/diagnostics/security-score.sh +25 -6
  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 +13 -3
  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 +156 -37
  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 +22 -16
  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 +3 -3
  92. package/scripts/git-hooks/pre-push +13 -0
  93. package/scripts/ops/ai-setup.sh +1 -1
  94. package/scripts/ops/bundle.sh +3 -3
  95. package/scripts/ops/chaos.sh +2 -2
  96. package/scripts/ops/chezmoi-apply.sh +12 -6
  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 +31 -2
  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 +74 -10
  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,52 +0,0 @@
1
- # Nushell completions for 'dot' CLI
2
- # 🅳🅾🆃🅵🅸🅻🅴🆂 (v{{ .dotfiles_version }})
3
-
4
- export extern dot [
5
- command?: string@dot_commands # The command to execute
6
- ...args: string # Arguments to the command
7
- ]
8
-
9
- def dot_commands [] {
10
- [
11
- { value: "apply", description: "Apply dotfiles (chezmoi apply)" }
12
- { value: "sync", description: "Apply dotfiles (alias of apply)" }
13
- { value: "update", description: "Pull latest changes and apply" }
14
- { value: "clean-cache", description: "Clear shell caches" }
15
- { value: "prewarm", description: "Regenerate shell caches" }
16
- { value: "cl", description: "Claude with context patterns" }
17
- { value: "copilot", description: "GitHub Copilot with context patterns" }
18
- { value: "gemini", description: "Gemini with context patterns" }
19
- { value: "kiro", description: "Kiro with context patterns" }
20
- { value: "sgpt", description: "Shell-GPT with context" }
21
- { value: "ollama", description: "Ollama with context" }
22
- { value: "opencode", description: "OpenCode with context" }
23
- { value: "aider", description: "Aider with context" }
24
- { value: "add", description: "Add a file to chezmoi source" }
25
- { value: "diff", description: "Show chezmoi diff" }
26
- { value: "status", description: "Show configuration drift" }
27
- { value: "remove", description: "Safely remove a managed file" }
28
- { value: "cd", description: "Print source directory path" }
29
- { value: "patterns", description: "Manage AI steering patterns" }
30
- { value: "commit", description: "AI-powered conventional commit" }
31
- { value: "edit", description: "Open chezmoi source in $EDITOR" }
32
- { value: "doctor", description: "Check system health" }
33
- { value: "heal", description: "Auto-repair issues" }
34
- { value: "health", description: "Run health check" }
35
- { value: "smoke-test", description: "Toolchain verification" }
36
- { value: "chaos", description: "Simulate corruption" }
37
- { value: "bundle", description: "Create offline archive" }
38
- { value: "drift", description: "Drift dashboard" }
39
- { value: "history", description: "History analysis" }
40
- { value: "benchmark", description: "Startup benchmark" }
41
- { value: "perf", description: "Show performance mode" }
42
- { value: "theme", description: "Switch terminal theme" }
43
- { value: "wallpaper", description: "Apply a wallpaper" }
44
- { value: "fonts", description: "Install Nerd Fonts" }
45
- { value: "secrets-init", description: "Init age key" }
46
- { value: "secrets", description: "Edit encrypted secrets" }
47
- { value: "upgrade", description: "Update all tools" }
48
- { value: "tools", description: "Show tools catalog" }
49
- { value: "new", description: "Create new project" }
50
- { value: "docs", description: "Show README" }
51
- ]
52
- }
@@ -1,86 +0,0 @@
1
- # 🅳🅾🆃🅵🅸🅻🅴🆂 (v{{ .dotfiles_version }}) - Nushell Config
2
- # <https://dotfiles.io>
3
-
4
- $env.config = {
5
- show_banner: false,
6
- table: {
7
- mode: rounded
8
- },
9
- completions: {
10
- case_sensitive: false,
11
- quick: true,
12
- partial: true,
13
- algorithm: "prefix"
14
- },
15
- history: {
16
- max_size: 100000,
17
- sync_on_enter: true,
18
- file_format: "sqlite"
19
- }
20
- }
21
-
22
- # Source Shell Tool Integrations (cache generated by env.nu)
23
- source ~/.cache/nushell/starship.nu
24
- source ~/.cache/nushell/zoxide.nu
25
- source ~/.cache/nushell/atuin.nu
26
- source ~/.cache/nushell/carapace.nu
27
-
28
- # Source dot CLI completions
29
- source ~/.config/nushell/completions.nu
30
-
31
- # Source bridged aliases and function wrappers from bash library
32
- source ~/.config/nushell/aliases.nu
33
- source ~/.config/nushell/functions.nu
34
-
35
- # Auto-start Pueue daemon if not running
36
- if (which pueued | length) > 0 {
37
- let status = (do -i { pueue status } | complete)
38
- if $status.exit_code != 0 {
39
- pueued -d
40
- }
41
- }
42
-
43
- # Aliases - simple structured wrappers
44
- alias l = ls -l
45
- alias ll = ls -la
46
- alias la = ls -a
47
- alias c = clear
48
- alias q = exit
49
- alias g = git
50
-
51
- # Yazi integration to cd on quit
52
- def --env yy [...args] {
53
- let tmp = (mktemp -t "yazi-cwd.XXXXXX")
54
- yazi ...$args --cwd-file $tmp
55
- let cwd = (open $tmp)
56
- if $cwd != "" and $cwd != $env.PWD {
57
- cd $cwd
58
- }
59
- rm -fp $tmp
60
- }
61
-
62
- # Pueue Background Task Wrappers (Nushell Style)
63
- def silent-run [cmd: string] {
64
- pueue add -- $cmd
65
- }
66
-
67
- def notify-run [cmd: string] {
68
- let task_id = (pueue add --print-id -- $cmd)
69
- echo $"Task ($task_id) submitted: ($cmd)"
70
- # Nu doesn't have background shells like bash, but we can call bash
71
- bash -c $"pueue wait ($task_id) && echo '✅ Task ($task_id) finished: ($cmd)' &"
72
- }
73
-
74
- def bg-upgrade [] {
75
- echo "🚀 Starting background upgrades..."
76
- if (which brew | length) > 0 { silent-run "brew upgrade" }
77
- if (which nix | length) > 0 { silent-run "nix flake update" }
78
- silent-run "chezmoi update"
79
- echo "Check status with 'pueue status'"
80
- }
81
-
82
- # Data pipelines examples for productivity
83
- def "find ports" [] {
84
- sys host | get name
85
- # Example command to show how nu handles data
86
- }
@@ -1,102 +0,0 @@
1
- # 🅳🅾🆃🅵🅸🅻🅴🆂 (v{{ .dotfiles_version }}) - Nushell Environment
2
- # <https://dotfiles.io>
3
-
4
- # Define basic environment variables
5
- $env.HOSTNAME = (sys host | get hostname)
6
- $env.OS_ARCH = (sys host | get arch)
7
- $env.OS_NAME = (sys host | get name)
8
- $env.USER_LANGUAGE = "en_GB.UTF-8"
9
- $env.DOTFILES_VERSION = '{{ .dotfiles_version }}'
10
- $env.LANG = $env.USER_LANGUAGE
11
- $env.TERM = "xterm-256color"
12
-
13
- # Path setup: Nushell handles paths as a list in $env.PATH
14
- let paths = [
15
- $"($env.HOME)/.local/bin",
16
- $"($env.HOME)/bin",
17
- "/opt/homebrew/bin",
18
- "/opt/homebrew/sbin",
19
- $"($env.HOME)/.cargo/bin",
20
- $"($env.HOME)/go/bin",
21
- $"($env.HOME)/.bun/bin",
22
- "/usr/local/bin",
23
- "/usr/bin",
24
- "/bin",
25
- "/usr/sbin",
26
- "/sbin"
27
- ]
28
-
29
- $env.PATH = ($env.PATH | split row (char esep) | append $paths | uniq)
30
-
31
- # Setup shell tool integrations.
32
- #
33
- # The `_cached_eval` module (loaded via dot_config/nushell/cached_eval.nu)
34
- # adds mtime-based cache invalidation so we don't spawn `starship init
35
- # nu` / `mise activate nu` / etc. on every shell start. Closes the
36
- # Nushell parity AC of #880.
37
- mkdir ~/.cache/nushell
38
-
39
- use ~/.config/nushell/cached_eval.nu *
40
-
41
- # The empty-file fallbacks preserve the `source` targets in
42
- # config.nu.tmpl — Nushell parses sources at parse time and refuses
43
- # to start if any source path is missing.
44
-
45
- if (_cached_eval_path_or_skip starship init nu | str length) == 0 {
46
- "" | save -f ~/.cache/nushell/starship.nu
47
- } else {
48
- cp (_cached_eval starship init nu) ~/.cache/nushell/starship.nu
49
- }
50
-
51
- if (_cached_eval_path_or_skip zoxide init nushell | str length) == 0 {
52
- "" | save -f ~/.cache/nushell/zoxide.nu
53
- } else {
54
- cp (_cached_eval zoxide init nushell) ~/.cache/nushell/zoxide.nu
55
- }
56
-
57
- if (_cached_eval_path_or_skip atuin init nu | str length) == 0 {
58
- "" | save -f ~/.cache/nushell/atuin.nu
59
- } else {
60
- cp (_cached_eval atuin init nu) ~/.cache/nushell/atuin.nu
61
- }
62
-
63
- # Generate Nushell alias cache from bash alias library
64
- do -i {
65
- bash --norc --noprofile -c '
66
- source "$HOME/.config/shell/90-ux-aliases.sh" 2>/dev/null
67
- source "$HOME/.config/shell/91-ux-aliases-lazy.sh" 2>/dev/null
68
- alias -p 2>/dev/null | while IFS= read -r line; do
69
- name="${line#alias }"
70
- name="${name#-- }"
71
- name="${name%%=*}"
72
- # Only valid Nushell identifiers (letters, digits, hyphens, underscores)
73
- [[ "$name" =~ ^[a-zA-Z_][a-zA-Z0-9_-]*$ ]] || continue
74
- val="${line#*=}"
75
- # Remove surrounding single quotes from bash alias output
76
- val="${val#\'}"
77
- val="${val%\'}"
78
- # Skip syntax incompatible with Nushell aliases
79
- case "$val" in
80
- *\$\{*|*\$\(*) continue ;;
81
- *\`*) continue ;;
82
- *"[["*|*"&&"*|*"||"*) continue ;;
83
- *";"*|*"|"*) continue ;;
84
- *">"*|*"<"*) continue ;;
85
- *"("*|*")"*) continue ;;
86
- "") continue ;;
87
- esac
88
- printf "alias %s = %s\n" "$name" "$val"
89
- done
90
- ' | save -f ~/.cache/nushell/bash-aliases.nu
91
- }
92
- # Carapace multi-shell completions
93
- if (which carapace | length) > 0 {
94
- carapace _carapace nushell | save -f ~/.cache/nushell/carapace.nu
95
- } else {
96
- "" | save -f ~/.cache/nushell/carapace.nu
97
- }
98
-
99
- # Ensure alias cache exists even if bash bridge failed
100
- if not ($"($env.HOME)/.cache/nushell/bash-aliases.nu" | path exists) {
101
- "" | save -f ~/.cache/nushell/bash-aliases.nu
102
- }
@@ -1,17 +0,0 @@
1
- {{- $root := . -}}
2
- {{- $groupsPath := joinPath $root.chezmoi.sourceDir ".chezmoitemplates/functions/groups.json" -}}
3
- {{- $groups := (fromJson (include $groupsPath)) -}}
4
- # Nushell function wrappers (Generated by Chezmoi)
5
- # Delegates to bash function library in ~/.config/shell/50-logic-functions.sh
6
- # Edit .chezmoitemplates/functions/ source files, not this file.
7
-
8
- {{ range $group, $files := $groups -}}
9
- # --- {{ $group }} ---
10
- {{ range $files -}}
11
- {{ $func := trimSuffix ".sh" (base .) -}}
12
- def {{ $func }} [...args] {
13
- bash -c $'source "$HOME/.config/shell/50-logic-functions.sh" 2>/dev/null; {{ $func }} "$@"' -- ...$args
14
- }
15
-
16
- {{ end -}}
17
- {{ end -}}
@@ -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