@sebastienrousseau/dotfiles 0.2.481 → 0.2.500

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (546) hide show
  1. package/CHANGELOG.md +122 -32
  2. package/LICENSE +1 -1
  3. package/README.md +211 -242
  4. package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
  5. package/docs/AI.md +102 -0
  6. package/docs/COPYRIGHT +2 -2
  7. package/docs/NAMING_CONVENTIONS.md +95 -0
  8. package/docs/README.md +58 -249
  9. package/docs/adr/ADR-004-cli-architecture.md +2 -2
  10. package/docs/adr/ADR-006-shell-selection.md +2 -2
  11. package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
  12. package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
  13. package/docs/adr/README.md +2 -3
  14. package/docs/architecture/ARCHITECTURE.md +113 -0
  15. package/docs/architecture/INTEROP.md +36 -0
  16. package/docs/architecture/REPO_LAYOUT.md +237 -0
  17. package/docs/architecture/WALKTHROUGH.md +82 -0
  18. package/docs/architecture/fleet-deployment.md +73 -0
  19. package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
  20. package/docs/archive/MILESTONE_v0.2.493.md +43 -0
  21. package/docs/{PLAN.md → archive/PLAN.md} +1 -1
  22. package/docs/guides/INSTALL.md +140 -0
  23. package/docs/{NEOVIM_IDE_GUIDE.md → guides/NEOVIM_IDE_GUIDE.md} +12 -12
  24. package/docs/guides/THEMING.md +222 -0
  25. package/docs/{TROUBLESHOOTING.md → guides/TROUBLESHOOTING.md} +36 -0
  26. package/docs/{WSL2_NIX_TROUBLESHOOTING.md → guides/WSL2_NIX_TROUBLESHOOTING.md} +8 -8
  27. package/docs/index.md +39 -0
  28. package/docs/interop/A2A.md +32 -0
  29. package/docs/manual/00-introduction.md +85 -0
  30. package/docs/manual/01-concepts/01-architecture.md +134 -0
  31. package/docs/manual/01-concepts/02-trust-model.md +178 -0
  32. package/docs/manual/01-concepts/03-theme-engine.md +182 -0
  33. package/docs/manual/01-concepts/04-fleet.md +142 -0
  34. package/docs/manual/01-concepts/05-self-healing.md +197 -0
  35. package/docs/manual/02-tutorials/01-first-install.md +192 -0
  36. package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
  37. package/docs/manual/02-tutorials/03-create-profile.md +238 -0
  38. package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
  39. package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
  40. package/docs/manual/03-reference/01-dot-cli.md +413 -0
  41. package/docs/manual/03-reference/02-config-files.md +259 -0
  42. package/docs/manual/03-reference/03-environment.md +120 -0
  43. package/docs/manual/03-reference/04-templates.md +184 -0
  44. package/docs/manual/03-reference/05-feature-flags.md +118 -0
  45. package/docs/manual/04-cookbook/01-recipes.md +281 -0
  46. package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
  47. package/docs/manual/04-cookbook/03-faq.md +167 -0
  48. package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
  49. package/docs/manual/05-appendices/B-security-checklist.md +78 -0
  50. package/docs/manual/05-appendices/C-glossary.md +36 -0
  51. package/docs/manual/05-appendices/D-bibliography.md +54 -0
  52. package/docs/manual/05-appendices/E-license.md +34 -0
  53. package/docs/manual/_toc.yml +58 -0
  54. package/docs/manual/command-index.md +58 -0
  55. package/docs/manual/concept-index.md +164 -0
  56. package/docs/operations/ATTESTATION.md +39 -0
  57. package/docs/operations/MAINTENANCE.md +59 -0
  58. package/docs/operations/MIGRATION.md +101 -0
  59. package/docs/operations/OPERATIONS.md +164 -0
  60. package/docs/operations/RELIABILITY.md +116 -0
  61. package/docs/{ROADMAP.md → operations/ROADMAP.md} +11 -11
  62. package/docs/operations/TESTING.md +195 -0
  63. package/docs/operations/TRACEABILITY.md +31 -0
  64. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
  65. package/docs/operations/VERSION_SYNC.md +344 -0
  66. package/docs/{ALIASES.md → reference/ALIASES.md} +2 -6
  67. package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
  68. package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
  69. package/docs/reference/FEATURES.md +62 -0
  70. package/docs/reference/FONTS.md +108 -0
  71. package/docs/reference/PROFILES.md +65 -0
  72. package/docs/{SCREENSHOTS.md → reference/SCREENSHOTS.md} +26 -25
  73. package/docs/reference/SCRIPTS.md +67 -0
  74. package/docs/reference/SUPPORT_MATRIX.md +74 -0
  75. package/docs/reference/THEMES.md +113 -0
  76. package/docs/reference/TOOLS.md +105 -0
  77. package/docs/reference/UTILS.md +151 -0
  78. package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
  79. package/docs/security/AUTOMATION_SECRETS.md +22 -0
  80. package/docs/security/COMPLIANCE.md +453 -0
  81. package/docs/security/ENCRYPTION.md +52 -0
  82. package/docs/security/FMEA.md +155 -0
  83. package/docs/security/INCIDENT_RESPONSE.md +575 -0
  84. package/docs/security/KEYS.md +45 -0
  85. package/docs/security/MCP_POLICY.md +69 -0
  86. package/docs/security/POLICY_RELEASES.md +33 -0
  87. package/docs/security/README.md +24 -0
  88. package/docs/security/SECRETS.md +146 -0
  89. package/docs/security/SECURITY.md +41 -0
  90. package/docs/security/SECURITY_CHECKLIST.md +44 -0
  91. package/docs/security/SOUP_REGISTER.md +32 -0
  92. package/docs/security/THREAT_MODEL.md +120 -0
  93. package/docs/security/VERIFICATION_VALIDATION.md +224 -0
  94. package/docs/themes/README.md +3 -17
  95. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
  96. package/docs/themes/hero-shot.svg +78 -0
  97. package/dot_config/.module-manifest.json +69 -0
  98. package/dot_config/ai/identity.md +20 -0
  99. package/dot_config/ai/patterns/architect.md +14 -0
  100. package/dot_config/ai/patterns/hardener.md +13 -0
  101. package/dot_config/ai/patterns/refactor.md +13 -0
  102. package/dot_config/aider/aider.conf.yml +1 -1
  103. package/dot_config/alacritty/alacritty.toml.tmpl +41 -469
  104. package/dot_config/atuin/config.toml +18 -1
  105. package/dot_config/bat/config +16 -1
  106. package/dot_config/claude/mcp_servers.json +3 -32
  107. package/dot_config/dotfiles/agent-card.json +29 -0
  108. package/dot_config/dotfiles/agent-profiles.json +92 -0
  109. package/dot_config/dotfiles/boot/README.md +1 -1
  110. package/dot_config/dotfiles/grub/README.md +1 -1
  111. package/dot_config/dotfiles/lock/README.md +1 -1
  112. package/dot_config/dotfiles/mcp-lock.json +33 -0
  113. package/dot_config/dotfiles/mcp-policy.json +52 -0
  114. package/dot_config/dotfiles/mcp-registry.json +47 -0
  115. package/dot_config/dotfiles/model-registry.json +20 -0
  116. package/dot_config/dotfiles/policy-bundles.json +38 -0
  117. package/dot_config/dotfiles/prompt-registry.json +16 -0
  118. package/dot_config/dotfiles/versions.env +18 -0
  119. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  120. package/dot_config/environment.d/90-wayland.conf +19 -0
  121. package/dot_config/firefox/user.js.tmpl +58 -0
  122. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  123. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  124. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  125. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  126. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  127. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  128. package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
  129. package/dot_config/fish/config.fish.tmpl +44 -0
  130. package/dot_config/fish/fish_plugins +1 -0
  131. package/dot_config/fish/functions/_.fish +3 -0
  132. package/dot_config/fish/functions/_cached_eval.fish +58 -0
  133. package/dot_config/fish/functions/als.fish +46 -0
  134. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  135. package/dot_config/fish/functions/c.fish +3 -0
  136. package/dot_config/fish/functions/cat.fish +9 -0
  137. package/dot_config/fish/functions/d.fish +7 -0
  138. package/dot_config/fish/functions/dot.fish +34 -0
  139. package/dot_config/fish/functions/h.fish +3 -0
  140. package/dot_config/fish/functions/l.fish +7 -0
  141. package/dot_config/fish/functions/la.fish +7 -0
  142. package/dot_config/fish/functions/ll.fish +7 -0
  143. package/dot_config/fish/functions/log_error.fish +13 -0
  144. package/dot_config/fish/functions/log_info.fish +13 -0
  145. package/dot_config/fish/functions/lr.fish +7 -0
  146. package/dot_config/fish/functions/lra.fish +7 -0
  147. package/dot_config/fish/functions/ls.fish +7 -0
  148. package/dot_config/fish/functions/lt.fish +7 -0
  149. package/dot_config/fish/functions/lta.fish +7 -0
  150. package/dot_config/fish/functions/notify-run.fish +11 -0
  151. package/dot_config/fish/functions/q.fish +3 -0
  152. package/dot_config/fish/functions/silent-run.fish +7 -0
  153. package/dot_config/fish/functions/yy.fish +8 -0
  154. package/dot_config/fontconfig/fonts.conf.tmpl +13 -0
  155. package/dot_config/foot/foot.ini.tmpl +33 -0
  156. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  157. package/dot_config/fzf/fzf.zsh +48 -0
  158. package/dot_config/ghostty/config.tmpl +69 -565
  159. package/dot_config/git/allowed_signers.tmpl +18 -0
  160. package/dot_config/git/commit-template +10 -0
  161. package/dot_config/gnupg/{gpg-agent.conf.tmpl → gpg-agent.conf} +3 -3
  162. package/dot_config/goose/config.yaml +2 -2
  163. package/dot_config/gtk-3.0/gtk.css.tmpl +59 -180
  164. package/dot_config/gtk-3.0/settings.ini.tmpl +5 -44
  165. package/dot_config/gtk-4.0/gtk.css.tmpl +79 -136
  166. package/dot_config/gtk-4.0/settings.ini.tmpl +5 -8
  167. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  168. package/dot_config/just/justfile +18 -0
  169. package/dot_config/kanshi/config.tmpl +22 -0
  170. package/dot_config/kitty/kitty.conf.tmpl +44 -508
  171. package/dot_config/lazygit/config.yml +18 -6
  172. package/dot_config/mako/config +47 -0
  173. package/dot_config/micro/settings.json +3 -0
  174. package/dot_config/mimeapps.list +77 -0
  175. package/dot_config/mise/config.toml +63 -5
  176. package/dot_config/mongosh/mongoshrc.js +1 -0
  177. package/dot_config/mpv/input.conf +47 -0
  178. package/dot_config/mpv/mpv.conf +47 -0
  179. package/dot_config/niri/config.kdl.tmpl +327 -0
  180. package/dot_config/nushell/aliases.nu +18 -0
  181. package/dot_config/nushell/completions.nu.tmpl +52 -0
  182. package/dot_config/nushell/config.nu.tmpl +86 -0
  183. package/dot_config/nushell/env.nu.tmpl +94 -0
  184. package/dot_config/nushell/functions.nu.tmpl +17 -0
  185. package/dot_config/nvim/init.lua +14 -0
  186. package/dot_config/nvim/lazy-lock.json +45 -14
  187. package/dot_config/nvim/lua/config/autocmds.lua +45 -1
  188. package/dot_config/nvim/lua/config/keymaps.lua +13 -8
  189. package/dot_config/nvim/lua/config/lazy.lua +22 -12
  190. package/dot_config/nvim/lua/config/options.lua +1 -0
  191. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  192. package/dot_config/nvim/lua/plugins/coding.lua +11 -29
  193. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  194. package/dot_config/nvim/lua/plugins/dap.lua +215 -4
  195. package/dot_config/nvim/lua/plugins/editor.lua +6 -10
  196. package/dot_config/nvim/lua/plugins/git.lua +1 -0
  197. package/dot_config/nvim/lua/plugins/lsp.lua +16 -81
  198. package/dot_config/nvim/lua/plugins/markdown.lua +1 -0
  199. package/dot_config/nvim/lua/plugins/rust.lua +1 -0
  200. package/dot_config/nvim/lua/plugins/sessions.lua +1 -0
  201. package/dot_config/nvim/lua/plugins/ui.lua +23 -51
  202. package/dot_config/paru/paru.conf +10 -0
  203. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  204. package/dot_config/pueue/pueue.yml +34 -0
  205. package/dot_config/raycast/README.md +1 -1
  206. package/dot_config/ripgrep/ripgreprc +21 -0
  207. package/dot_config/shell/00-core-paths.sh.tmpl +62 -24
  208. package/dot_config/shell/05-core-safety.sh +47 -0
  209. package/dot_config/shell/10-secrets.sh +40 -0
  210. package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
  211. package/dot_config/shell/40-ls-colors.sh +48 -0
  212. package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
  213. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
  214. package/dot_config/shell/90-ux-aliases.sh.tmpl +90 -5
  215. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +33 -2
  216. package/dot_config/shell/Brewfile.cli +8 -0
  217. package/dot_config/shell/README.md +9 -9
  218. package/dot_config/shell/als_data.txt.tmpl +65 -0
  219. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  220. package/dot_config/shell/custom/context_suggest.zsh +50 -50
  221. package/dot_config/shell/custom/error_analysis.zsh +29 -29
  222. package/dot_config/starship.toml.tmpl +85 -7
  223. package/dot_config/swaylock/config +43 -0
  224. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  225. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  226. package/dot_config/systemd/user/pueued.service +12 -0
  227. package/dot_config/systemd/user/ssh-agent.service +12 -0
  228. package/dot_config/tmux/tmux.conf.tmpl +80 -38
  229. package/dot_config/topgrade.toml.tmpl +54 -0
  230. package/dot_config/user-dirs.dirs +9 -0
  231. package/dot_config/vscode/settings.json.tmpl +9 -50
  232. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  233. package/dot_config/waybar/style.css.tmpl +211 -0
  234. package/dot_config/wezterm/wezterm.lua.tmpl +31 -203
  235. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  236. package/dot_config/yazi/keymap.toml +67 -0
  237. package/dot_config/yazi/theme.toml +102 -0
  238. package/dot_config/zathura/zathurarc +52 -0
  239. package/dot_config/zellij/{config.kdl → config.kdl.tmpl} +1 -1
  240. package/dot_config/zsh/dot_zprofile +1 -7
  241. package/dot_config/zsh/dot_zshenv +2 -3
  242. package/dot_config/zsh/dot_zshrc.tmpl +368 -69
  243. package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
  244. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +17 -4
  245. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +4 -4
  246. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  247. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +101 -30
  248. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  249. package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
  250. package/dot_local/bin/executable_ai-update +195 -0
  251. package/dot_local/bin/executable_ai_core +113 -91
  252. package/dot_local/bin/executable_antigravity +11 -0
  253. package/dot_local/bin/executable_b64 +61 -36
  254. package/dot_local/bin/executable_bm +77 -0
  255. package/dot_local/bin/executable_cb +39 -0
  256. package/dot_local/bin/executable_dot +543 -132
  257. package/dot_local/bin/executable_dot-ai +36 -0
  258. package/dot_local/bin/executable_dot-bootstrap +77 -0
  259. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  260. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  261. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  262. package/dot_local/bin/executable_dot-theme-sync +952 -0
  263. package/dot_local/bin/executable_dot_completion +2 -0
  264. package/dot_local/bin/executable_dtags +28 -0
  265. package/dot_local/bin/executable_epoch +43 -38
  266. package/dot_local/bin/executable_extract +32 -99
  267. package/dot_local/bin/executable_gbd +52 -0
  268. package/dot_local/bin/executable_gd +42 -0
  269. package/dot_local/bin/executable_git-ai-commit +35 -20
  270. package/dot_local/bin/executable_git-ai-diff +33 -18
  271. package/dot_local/bin/executable_gl +101 -0
  272. package/dot_local/bin/executable_hash +56 -18
  273. package/dot_local/bin/executable_hashsum +160 -0
  274. package/dot_local/bin/executable_hex +44 -8
  275. package/dot_local/bin/executable_jsonv +34 -10
  276. package/dot_local/bin/executable_jwt +22 -6
  277. package/dot_local/bin/executable_kill-port +18 -2
  278. package/dot_local/bin/executable_lorem +21 -6
  279. package/dot_local/bin/executable_mkscript +35 -0
  280. package/dot_local/bin/executable_monitor +56 -0
  281. package/dot_local/bin/{executable_ip → executable_myip} +16 -2
  282. package/dot_local/bin/executable_notify +22 -0
  283. package/dot_local/bin/executable_open +36 -0
  284. package/dot_local/bin/executable_pw +27 -0
  285. package/dot_local/bin/executable_rec-start +46 -0
  286. package/dot_local/bin/executable_rec-stop +35 -0
  287. package/dot_local/bin/executable_regex +49 -13
  288. package/dot_local/bin/executable_start-niri +8 -0
  289. package/dot_local/bin/executable_tmux-sessionizer +276 -149
  290. package/dot_local/bin/executable_tour +112 -74
  291. package/dot_local/bin/executable_up +21 -0
  292. package/dot_local/bin/executable_update +45 -11
  293. package/dot_local/bin/executable_uuid +37 -7
  294. package/dot_local/bin/executable_win +32 -0
  295. package/dot_local/bin/executable_yamlv +25 -7
  296. package/dot_local/share/bash-completion/completions/dot +62 -44
  297. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  298. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  299. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  300. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  301. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  302. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  303. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  304. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  305. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  306. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  307. package/dot_local/share/man/man1/dot.1 +149 -0
  308. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  309. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  310. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  311. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  312. package/dot_local/share/zsh/completions/_dot +283 -0
  313. package/install.sh +297 -210
  314. package/package.json +17 -5
  315. package/scripts/ci/check-copyright-headers.sh +96 -0
  316. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  317. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  318. package/scripts/ci/validate-ci-config.sh +41 -39
  319. package/scripts/demo/record.sh +3 -2
  320. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  321. package/scripts/diagnostics/alias-governance.sh +137 -0
  322. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  323. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  324. package/scripts/diagnostics/benchmark.sh +209 -29
  325. package/scripts/diagnostics/conflicts.sh +72 -0
  326. package/scripts/diagnostics/doctor-unified.sh +38 -0
  327. package/scripts/diagnostics/doctor.sh +491 -65
  328. package/scripts/diagnostics/drift-dashboard.sh +17 -6
  329. package/scripts/diagnostics/health.sh +351 -110
  330. package/scripts/diagnostics/history-analysis.sh +12 -4
  331. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  332. package/scripts/diagnostics/perf.sh +225 -0
  333. package/scripts/diagnostics/scorecard.sh +118 -0
  334. package/scripts/diagnostics/secret-governance.sh +58 -0
  335. package/scripts/diagnostics/security-score.sh +139 -93
  336. package/scripts/diagnostics/smoke-test.sh +87 -0
  337. package/scripts/diagnostics/snapshot.sh +89 -0
  338. package/scripts/diagnostics/verify.sh +107 -0
  339. package/scripts/diagnostics/verify_state.sh +2 -2
  340. package/scripts/diagnostics/version-locks.sh +79 -0
  341. package/scripts/diagnostics/workstation-attestation.sh +181 -0
  342. package/scripts/docs/build-manual.sh +883 -0
  343. package/scripts/docs/check-manual.sh +213 -0
  344. package/scripts/dot/commands/agent.sh +465 -0
  345. package/scripts/dot/commands/ai.sh +416 -0
  346. package/scripts/dot/commands/aliases.sh +250 -0
  347. package/scripts/dot/commands/appearance.sh +21 -4
  348. package/scripts/dot/commands/core.sh +59 -4
  349. package/scripts/dot/commands/diagnostics.sh +132 -3
  350. package/scripts/dot/commands/fleet.sh +399 -0
  351. package/scripts/dot/commands/lint.sh +177 -0
  352. package/scripts/dot/commands/manual.sh +168 -0
  353. package/scripts/dot/commands/meta.sh +148 -17
  354. package/scripts/dot/commands/patterns.sh +54 -0
  355. package/scripts/dot/commands/restore.sh +57 -35
  356. package/scripts/dot/commands/secrets.sh +151 -9
  357. package/scripts/dot/commands/security.sh +3 -0
  358. package/scripts/dot/commands/tools.sh +268 -27
  359. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  360. package/scripts/dot/lib/bento.sh +49 -0
  361. package/scripts/dot/lib/log.sh +194 -0
  362. package/scripts/dot/lib/platform.sh +98 -0
  363. package/scripts/dot/lib/ui.sh +507 -0
  364. package/scripts/dot/lib/utils.sh +318 -18
  365. package/scripts/fonts/install-nerd-fonts.sh +19 -10
  366. package/scripts/fonts/patch-fonts.sh +1 -0
  367. package/scripts/git-hooks/install.sh +11 -0
  368. package/scripts/git-hooks/pre-commit +12 -0
  369. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  370. package/scripts/git-hooks/pre-push +29 -0
  371. package/scripts/git-hooks/prepare-commit-msg +29 -0
  372. package/scripts/lib/secrets_provider.sh +158 -0
  373. package/scripts/maintenance/check-updates.sh +131 -0
  374. package/scripts/ops/ai-setup.sh +55 -0
  375. package/scripts/ops/bundle.sh +77 -0
  376. package/scripts/ops/chaos.sh +49 -0
  377. package/scripts/ops/chezmoi-apply.sh +245 -17
  378. package/scripts/ops/chezmoi-diff.sh +1 -0
  379. package/scripts/ops/chezmoi-remove.sh +2 -0
  380. package/scripts/ops/chezmoi-update.sh +34 -2
  381. package/scripts/ops/heal-chezmoi.sh +51 -0
  382. package/scripts/ops/heal-system.sh +128 -0
  383. package/scripts/ops/heal-tools.sh +340 -0
  384. package/scripts/ops/heal.sh +98 -342
  385. package/scripts/ops/post-apply-repair.sh +106 -0
  386. package/scripts/ops/prewarm.sh +127 -0
  387. package/scripts/ops/release.sh +252 -0
  388. package/scripts/ops/rollback.sh +86 -28
  389. package/scripts/ops/setup.sh +137 -0
  390. package/scripts/ops/teleport.sh +2 -1
  391. package/scripts/qa/coverage-baseline.sh +60 -0
  392. package/scripts/qa/docs-coverage.sh +111 -0
  393. package/scripts/qa/reliability-audit.sh +138 -0
  394. package/scripts/qa/traceability-coverage.sh +116 -0
  395. package/scripts/qa/validate-examples.sh +26 -0
  396. package/scripts/qa/wsl-contract.sh +11 -0
  397. package/scripts/release/package-policy-bundles.sh +125 -0
  398. package/scripts/secrets/age-init.sh +1 -0
  399. package/scripts/secrets/create-secrets-file.sh +1 -0
  400. package/scripts/secrets/encrypt-ssh-key.sh +1 -0
  401. package/scripts/security/backup.sh +44 -4
  402. package/scripts/security/dns-doh.sh +36 -14
  403. package/scripts/security/encryption-check.sh +27 -12
  404. package/scripts/security/enforce-policies.sh +11 -16
  405. package/scripts/security/firewall.sh +76 -20
  406. package/scripts/security/lock-configs.sh +2 -2
  407. package/scripts/security/lock-screen.sh +40 -18
  408. package/scripts/security/manage-secrets.sh +42 -29
  409. package/scripts/security/ssh-cert.sh +203 -0
  410. package/scripts/security/telemetry-kill.sh +40 -18
  411. package/scripts/security/usb-safety.sh +37 -15
  412. package/scripts/theme/apply-gnome-theme.sh +87 -56
  413. package/scripts/theme/extract-theme.py +677 -0
  414. package/scripts/theme/install-boot-logo.sh +1 -0
  415. package/scripts/theme/install-catppuccin-themes.sh +57 -33
  416. package/scripts/theme/install-cursors.sh +1 -0
  417. package/scripts/theme/install-file-icons.sh +1 -0
  418. package/scripts/theme/install-grub-theme.sh +11 -1
  419. package/scripts/theme/install-lock-icon.sh +1 -0
  420. package/scripts/theme/merge-wallpaper.sh +141 -0
  421. package/scripts/theme/rebuild-themes.sh +309 -0
  422. package/scripts/theme/switch.sh +308 -137
  423. package/scripts/theme/wallpaper-rotate.sh +66 -12
  424. package/scripts/theme/wallpaper-sync.sh +386 -31
  425. package/scripts/tools/cmatrix.sh +1 -0
  426. package/scripts/tools/detect-collisions.py +1 -1
  427. package/scripts/tools/emoji-picker.sh +4 -1
  428. package/scripts/tools/figlet-banner.sh +1 -0
  429. package/scripts/tools/log-rotate.sh +2 -1
  430. package/scripts/tools/lolcat-wrap.sh +1 -0
  431. package/scripts/tools/pipes.sh +1 -0
  432. package/scripts/tuning/linux.sh +23 -13
  433. package/scripts/tuning/macos.sh +13 -4
  434. package/scripts/uninstall.sh +85 -0
  435. package/scripts/version-sync.sh +487 -0
  436. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  437. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  438. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  439. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  440. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  441. package/templates/projects/go/README.md +1 -1
  442. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  443. package/templates/projects/go/go.sum +0 -0
  444. package/templates/projects/molecule/README.md +1 -1
  445. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  446. package/templates/projects/node/README.md +1 -1
  447. package/templates/projects/node/package-lock.json +12 -0
  448. package/templates/projects/node/src/index.js +1 -0
  449. package/templates/projects/packer/README.md +1 -1
  450. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  451. package/templates/projects/python/README.md +1 -1
  452. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  453. package/templates/projects/python/tests/test_basic.py +1 -0
  454. package/docs/ARCHITECTURE.md +0 -229
  455. package/docs/COMPLIANCE.md +0 -47
  456. package/docs/FEATURES.md +0 -166
  457. package/docs/FONTS.md +0 -147
  458. package/docs/INSTALL.md +0 -119
  459. package/docs/KEYS.md +0 -40
  460. package/docs/OPERATIONS.md +0 -130
  461. package/docs/PR_DESCRIPTION.md +0 -149
  462. package/docs/SECRETS.md +0 -76
  463. package/docs/SECURITY.md +0 -30
  464. package/docs/SECURITY_CHECKLIST.md +0 -25
  465. package/docs/TASK.md +0 -99
  466. package/docs/TESTING.md +0 -190
  467. package/docs/TOOLS.md +0 -146
  468. package/docs/UTILS.md +0 -105
  469. package/docs/WALKTHROUGH.md +0 -165
  470. package/dot_config/clippy.toml +0 -55
  471. package/dot_config/dotfiles/versions.env.tmpl +0 -19
  472. package/dot_config/firefox/user.js +0 -8
  473. package/dot_config/git/config.tmpl +0 -77
  474. package/dot_config/go/aliases.sh +0 -61
  475. package/dot_config/go/env.sh +0 -24
  476. package/dot_config/ice/README.md +0 -13
  477. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +0 -5
  478. package/dot_config/lsd/config.yaml +0 -19
  479. package/dot_config/nvim/snippets/all.lua +0 -9
  480. package/dot_config/nvim/snippets/python.lua +0 -16
  481. package/dot_config/shell/00-container-detect.sh +0 -53
  482. package/dot_config/shell/05-core-safety.sh.tmpl +0 -13
  483. package/dot_config/shell/40-ls-colors.sh.tmpl +0 -31
  484. package/dot_config/shell/90-theme-switch.sh +0 -70
  485. package/dot_config/topgrade/topgrade.toml.tmpl +0 -42
  486. package/dot_config/waybar/style.css +0 -8
  487. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +0 -22
  488. package/dot_local/bin/executable_zig-install +0 -89
  489. package/dot_local/bin/voice_ops +0 -7
  490. package/scripts/ops/health-check.sh +0 -380
  491. package/scripts/tests/README.md +0 -241
  492. package/scripts/tests/benchmark.sh +0 -91
  493. package/scripts/tests/framework/assertions.sh +0 -283
  494. package/scripts/tests/framework/mocks.sh +0 -201
  495. package/scripts/tests/framework/test_runner.sh +0 -189
  496. package/scripts/tests/integration/test_install.sh +0 -237
  497. package/scripts/tests/performance/benchmark_runner.sh +0 -156
  498. package/scripts/tests/performance/regression_check.sh +0 -73
  499. package/scripts/tests/performance/stress_test.sh +0 -65
  500. package/scripts/tests/test-aliases.sh +0 -25
  501. package/scripts/tests/test-docker.sh +0 -48
  502. package/scripts/tests/unit/test_ai_aliases.sh +0 -158
  503. package/scripts/tests/unit/test_ai_cli_checks.sh +0 -47
  504. package/scripts/tests/unit/test_backup.sh +0 -227
  505. package/scripts/tests/unit/test_case_functions.sh +0 -238
  506. package/scripts/tests/unit/test_cd_aliases.sh +0 -367
  507. package/scripts/tests/unit/test_dot_cli.sh +0 -217
  508. package/scripts/tests/unit/test_encode64.sh +0 -67
  509. package/scripts/tests/unit/test_environment.sh +0 -78
  510. package/scripts/tests/unit/test_extract.sh +0 -163
  511. package/scripts/tests/unit/test_framework_edge_cases.sh +0 -113
  512. package/scripts/tests/unit/test_genpass.sh +0 -298
  513. package/scripts/tests/unit/test_install_edge_cases.sh +0 -167
  514. package/scripts/tests/unit/test_installers.sh +0 -172
  515. package/scripts/tests/unit/test_keygen.sh +0 -68
  516. package/scripts/tests/unit/test_logging.sh +0 -96
  517. package/scripts/tests/unit/test_os_detection_comprehensive.sh +0 -388
  518. package/scripts/tests/unit/test_package_managers_comprehensive.sh +0 -321
  519. package/scripts/tests/unit/test_prependpath.sh +0 -66
  520. package/scripts/tests/unit/test_prependpath_refactored.sh +0 -89
  521. package/scripts/tests/unit/test_rd.sh +0 -230
  522. package/scripts/tests/unit/test_security_fixes.sh +0 -130
  523. package/scripts/tests/unit/test_security_scripts.sh +0 -87
  524. package/scripts/tests/unit/test_template_validation.sh +0 -238
  525. package/scripts/tests/unit/test_utility_functions.sh +0 -144
  526. package/scripts/tests/unit/test_wave1_alias_split.sh +0 -132
  527. package/scripts/tests/unit/test_wave1_ci_pinning.sh +0 -61
  528. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +0 -52
  529. package/scripts/tests/unit/test_wave1_heal_fixes.sh +0 -97
  530. package/scripts/tests/unit/test_wave1_install_gpg.sh +0 -35
  531. package/scripts/tests/unit/test_wave1_zshenv_path.sh +0 -89
  532. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +0 -115
  533. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +0 -75
  534. package/scripts/tests/unit/test_zipf.sh +0 -76
  535. /package/docs/{LEGACY_ROADMAP.md → archive/LEGACY_ROADMAP.md} +0 -0
  536. /package/docs/{REPO_AUDIT.md → archive/REPO_AUDIT.md} +0 -0
  537. /package/docs/{KEY_ROTATION.md → security/KEY_ROTATION.md} +0 -0
  538. /package/dot_config/ansible/{ansible.cfg.tmpl → ansible.cfg} +0 -0
  539. /package/dot_config/docker/{config.json.tmpl → config.json} +0 -0
  540. /package/dot_config/k9s/{config.yaml.tmpl → config.yaml} +0 -0
  541. /package/dot_config/pypoetry/{config.toml.tmpl → config.toml} +0 -0
  542. /package/dot_config/{pyrightconfig.json.tmpl → pyrightconfig.json} +0 -0
  543. /package/dot_config/tflint/{tflint.hcl.tmpl → tflint.hcl} +0 -0
  544. /package/dot_config/yarn/{yarnrc.yml.tmpl → yarnrc.yml} +0 -0
  545. /package/dot_config/zsh/rc.d/{40-bell.zsh.tmpl → 40-bell.zsh} +0 -0
  546. /package/dot_config/zsh/rc.d/{50-login-fortune.zsh.tmpl → 50-login-fortune.zsh} +0 -0
package/docs/FONTS.md DELETED
@@ -1,147 +0,0 @@
1
- # Font configuration
2
-
3
- Learn about font setup, rendering, and the fonts included with these dotfiles.
4
-
5
- ## Recommended fonts
6
-
7
- ### Primary: JetBrains Mono Nerd Font
8
-
9
- Your default font is JetBrains Mono with Nerd Font patches.
10
-
11
- Features:
12
- - Designed for code readability
13
- - Ligature support
14
- - Powerline/Nerd Font glyphs
15
- - Clear distinction between similar characters (0/O, 1/l/I)
16
-
17
- ### Alternatives
18
-
19
- | Font | Style | Best for |
20
- |------|-------|----------|
21
- | Fira Code | Modern | People who enjoy ligatures |
22
- | Cascadia Code | Microsoft | People who use VS Code |
23
- | Hack | Classic | People who prefer a classic look |
24
- | Source Code Pro | Adobe | Clean aesthetic |
25
- | Iosevka | Narrow | Small screens |
26
-
27
- ## Installation
28
-
29
- ### macOS (Homebrew)
30
-
31
- ```bash
32
- # Install via Homebrew
33
- brew tap homebrew/cask-fonts
34
- brew install --cask font-jetbrains-mono-nerd-font
35
-
36
- # Or use dot CLI
37
- dot fonts install
38
- ```
39
-
40
- ### Linux (manual)
41
-
42
- ```bash
43
- # Download from Nerd Fonts
44
- wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/JetBrainsMono.zip
45
-
46
- # Extract to fonts directory
47
- unzip JetBrainsMono.zip -d ~/.local/share/fonts/
48
-
49
- # Update font cache
50
- fc-cache -fv
51
- ```
52
-
53
- ### Using the font patcher
54
-
55
- To patch your own fonts with Nerd Font glyphs:
56
-
57
- ```bash
58
- # Use the included script
59
- ~/.dotfiles/scripts/fonts/patch-fonts.sh /path/to/font.ttf
60
- ```
61
-
62
- ## Font rendering
63
-
64
- ### Sample characters
65
-
66
- ```
67
- ABCDEFGHIJKLMNOPQRSTUVWXYZ
68
- abcdefghijklmnopqrstuvwxyz
69
- 0123456789
70
- !@#$%^&*()_+-=[]{}|;':",.<>?/
71
-
72
- Ligatures: -> => == != <= >= && || :: ...
73
- Powerline:
74
- Nerd Font:
75
- ```
76
-
77
- ### Ambiguous characters
78
-
79
- The font configuration provides clear distinction between:
80
-
81
- ```
82
- 0 vs O (zero vs capital O)
83
- 1 vs l vs I (one vs lowercase L vs capital I)
84
- ` vs ' (backtick vs single quote)
85
- " vs " (straight vs curly quotes)
86
- ```
87
-
88
- ## Terminal configuration
89
-
90
- ### Ghostty
91
-
92
- ```
93
- font-family = JetBrains Mono Nerd Font
94
- font-size = 14
95
- ```
96
-
97
- ### WezTerm
98
-
99
- ```lua
100
- config.font = wezterm.font("JetBrains Mono Nerd Font")
101
- config.font_size = 14.0
102
- ```
103
-
104
- ### Alacritty
105
-
106
- ```yaml
107
- font:
108
- normal:
109
- family: JetBrains Mono Nerd Font
110
- size: 14.0
111
- ```
112
-
113
- ### Kitty
114
-
115
- ```
116
- font_family JetBrains Mono Nerd Font
117
- font_size 14.0
118
- ```
119
-
120
- ## Font size recommendations
121
-
122
- | Display | Size |
123
- |---------|------|
124
- | 13" laptop | 12-13pt |
125
- | 15" laptop | 13-14pt |
126
- | 24" monitor | 14-15pt |
127
- | 27" 4K monitor | 15-16pt |
128
-
129
- ## Troubleshooting
130
-
131
- ### Fonts not displaying correctly
132
-
133
- 1. Verify font is installed: `fc-list | grep JetBrains`
134
- 2. Restart terminal application
135
- 3. Check terminal font settings
136
-
137
- ### Nerd Font icons missing
138
-
139
- 1. Verify you are using a Nerd Font variant
140
- 2. Confirm the terminal supports the Unicode range
141
- 3. Try a different Nerd Font
142
-
143
- ### Ligatures not working
144
-
145
- 1. Enable ligatures in terminal settings
146
- 2. Some terminals do not support ligatures (for example, Terminal.app)
147
- 3. Try Ghostty, WezTerm, or Kitty
package/docs/INSTALL.md DELETED
@@ -1,119 +0,0 @@
1
- # Get started
2
-
3
- This guide covers supported platforms, prerequisites, and the standard install path.
4
-
5
- ## Supported platforms
6
-
7
- - macOS (Homebrew)
8
- - Ubuntu/Debian (apt)
9
- - WSL2 (Ubuntu/Debian)
10
-
11
- ## Prerequisites
12
-
13
- Required:
14
- - `git`
15
- - `curl`
16
-
17
- Optional (feature-dependent):
18
- - Homebrew (macOS)
19
- - `apt-get` (Linux)
20
- - Docker or Podman (sandbox)
21
- - Nix (optional toolchain)
22
- - gum (required for `dot learn`)
23
-
24
- ## Install
25
-
26
- ### One-liner (recommended)
27
-
28
- ```bash
29
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.480/install.sh)"
30
- exec zsh
31
- ```
32
-
33
- ### Manual installation
34
-
35
- ```bash
36
- # Clone the repository
37
- git clone https://github.com/sebastienrousseau/dotfiles.git ~/.dotfiles
38
-
39
- # Install chezmoi and apply
40
- sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply sebastienrousseau/dotfiles
41
-
42
- # Restart shell
43
- exec zsh
44
- ```
45
-
46
- ### Using Nix (alternative)
47
-
48
- If you have Nix with flakes enabled:
49
-
50
- ```bash
51
- # Enter development shell with all tools
52
- nix develop ~/.dotfiles/nix
53
-
54
- # Or install the dot-utils meta-package
55
- nix profile install ~/.dotfiles/nix#dot-utils
56
- ```
57
-
58
- ## What happens
59
-
60
- 1. The installer downloads a pinned Chezmoi bootstrap and applies this repo.
61
- 2. Chezmoi hooks install OS packages, fonts, and optional apps.
62
- 3. The `dot` CLI becomes available in `~/.local/bin`.
63
- 4. Chezmoi symlinks shell configuration to your home directory.
64
-
65
- ## Post-install verification
66
-
67
- ```bash
68
- # Check dot CLI is available
69
- dot --version
70
-
71
- # Run health checks
72
- dot doctor
73
-
74
- # View available commands
75
- dot help
76
- ```
77
-
78
- ## Optional: gum
79
-
80
- `gum` is required for interactive features like `dot learn`.
81
-
82
- macOS:
83
- ```bash
84
- brew install gum
85
- ```
86
-
87
- Linux (snap):
88
- ```bash
89
- sudo snap install gum --classic
90
- ```
91
-
92
- Linux (Go toolchain):
93
- ```bash
94
- go install github.com/charmbracelet/gum@latest
95
- ```
96
-
97
- ## Update
98
-
99
- ```bash
100
- dot update
101
- ```
102
-
103
- ## Uninstall
104
-
105
- ```bash
106
- # Remove chezmoi-managed files
107
- chezmoi purge
108
-
109
- # Remove the dotfiles repository
110
- rm -rf ~/.dotfiles
111
-
112
- # Remove local data
113
- rm -rf ~/.local/share/chezmoi
114
- rm -rf ~/.local/share/dotfiles.log
115
- ```
116
-
117
- ## Troubleshooting
118
-
119
- If install hooks fail, check `~/.local/share/dotfiles.log` and review `docs/TROUBLESHOOTING.md`.
package/docs/KEYS.md DELETED
@@ -1,40 +0,0 @@
1
- # Keybindings
2
-
3
- This is the single source of truth for navigation and muscle-memory shortcuts
4
- across the dotfiles stack. Keep this concise and consistent.
5
-
6
- ## Zsh
7
- - Ctrl+R: History search (fzf/atuin if enabled)
8
- - Ctrl+P / Ctrl+N: History prefix search (up/down)
9
-
10
- ## Tmux (prefix = `Ctrl-a`)
11
- - Prefix + r: Reload config
12
- - Prefix + N: New window
13
- - Prefix + a / Tab: Last window
14
- - Prefix + %: Split vertical (current path)
15
- - Prefix + ": Split horizontal (current path)
16
- - Prefix + \\: Split vertical (alt)
17
- - Prefix + |: Split horizontal (alt)
18
- - Prefix + h/j/k/l: Move between panes (vim-style)
19
- - Prefix + z: Toggle zoom pane
20
- - Prefix + H/J/K/L: Resize pane (left/down/up/right)
21
-
22
- ## Neovim (leader = `Space`)
23
- - Ctrl-h/j/k/l: Move between splits
24
- - Ctrl-s: Save file
25
- - Leader + ff: Find files (Telescope)
26
- - Leader + fg: Live grep (Telescope)
27
- - Leader + q: Quit
28
-
29
- ## Shell Tools
30
- - z <dir>: Jump to a directory (zoxide)
31
- - lg: Open lazygit
32
-
33
- ## Terminal
34
- - Ctrl+Shift+C: Copy
35
- - Ctrl+Shift+V: Paste
36
-
37
- ---
38
-
39
- Update this file when bindings change. If you add a new tool, add its shortcuts
40
- here and keep them aligned with the global conventions.
@@ -1,130 +0,0 @@
1
- # Discover operations
2
-
3
- This guide covers the core workflows to keep your dotfiles running well across platforms.
4
-
5
- ---
6
-
7
- ## Platforms
8
-
9
- ### macOS
10
- **Primary manager**: `Homebrew`
11
-
12
- - **Update system**:
13
- ```bash
14
- # Updates Dotfiles AND Homebrew packages
15
- chezmoi update
16
- ```
17
- *Behind the scenes, this runs `brew bundle install` to match the `Brewfile.lock.json`.*
18
-
19
- - **Troubleshooting**:
20
- - **Permission issues**: `sudo chown -R $(whoami) $(brew --prefix)/*`
21
- - **Drift**: Run `brew bundle cleanup` to remove unmanaged packages.
22
-
23
- ### Linux (Debian, Ubuntu, ZorinOS, Kali)
24
- **Primary manager**: `apt-get` / `snap`
25
-
26
- - **Update system**:
27
- ```bash
28
- # 1. Update OS packages
29
- sudo apt update && sudo apt upgrade -y
30
-
31
- # 2. Update Dotfiles
32
- chezmoi update
33
- ```
34
- > [!NOTE]
35
- > On Linux, `chezmoi` focuses on configuration. Package updates work best with the OS package manager to avoid `sudo` conflicts.
36
-
37
- - **Troubleshooting**:
38
- - **Font issues**: If icons are missing, run `./install/provision/run_onchange_50-install-fonts.sh` manually.
39
- - **ZorinOS/GNOME**: Custom keybindings may require `dconf load` if Chezmoi does not apply them automatically.
40
-
41
- ### Windows (WSL2)
42
- **Primary manager**: `apt-get` (inside WSL)
43
-
44
- - **Update system**: Same as **Linux**.
45
-
46
- - **WSL specifics**:
47
- - **Access Windows files**: WSL mounts Windows drives at `/mnt/c/`.
48
- - **Clipboard**: Dotfiles configures `win32yank.exe` automatically for clipboard sharing.
49
- - **Performance**: Keep project files inside the Linux filesystem (`~/projects`), NOT in `/mnt/c/`, for 100x better IO performance.
50
-
51
- ---
52
-
53
- ## Workflows
54
-
55
- ### Apply changes
56
- After editing any config file:
57
- ```bash
58
- dot apply
59
- ```
60
- *Triggers: `dot_zshrc` reload, audit logging.*
61
-
62
- ### Roll back
63
- If an update breaks your setup, revert:
64
- ```bash
65
- cd ~/.dotfiles
66
- git reset --hard HEAD@{1} # Go back 1 operation
67
- chezmoi apply
68
- ```
69
-
70
- ### Debug
71
- If something runs slow or appears broken:
72
-
73
- 1. **Check health**:
74
- ```bash
75
- dot doctor
76
- ```
77
- 2. **Verbose mode**:
78
- ```bash
79
- DOTFILES_DEBUG=1 dot apply
80
- ```
81
-
82
- ---
83
-
84
- ## Tools
85
-
86
- ### Make it yours
87
- - **Wallpaper rotation**:
88
- ```bash
89
- ~/.dotfiles/scripts/theme/wallpaper-rotate.sh --interval 300
90
- ```
91
- - **Cursor theme (Linux)**:
92
- ```bash
93
- DOTFILES_CURSOR_THEME=Papirus ~/.dotfiles/scripts/theme/install-cursors.sh
94
- ```
95
- - **File icons (Linux/macOS)**:
96
- ```bash
97
- DOTFILES_ICON_THEME=Papirus ~/.dotfiles/scripts/theme/install-file-icons.sh
98
- ```
99
- - **Lock icon (Linux)**:
100
- ```bash
101
- DOTFILES_LOCK_ICON=~/.config/dotfiles/lock/icon.png ~/.dotfiles/scripts/theme/install-lock-icon.sh
102
- ```
103
- - **GRUB theme (Linux)**:
104
- ```bash
105
- sudo ~/.dotfiles/scripts/theme/install-grub-theme.sh --apply
106
- ```
107
- - **Boot logo (Linux)**:
108
- ```bash
109
- sudo ~/.dotfiles/scripts/theme/install-boot-logo.sh --apply
110
- ```
111
-
112
- ### Atuin
113
- - **Login**: `atuin login`
114
- - **Sync**: `atuin sync`
115
- - **Search**: `Ctrl-r` (Global history search)
116
-
117
- ### Zoxide
118
- - **Jump**: `z project` matches `~/dev/project`
119
- - **Query**: `zi` (Interactive selection)
120
-
121
- ### Yazi
122
- - **Open**: Type `y`
123
- - **Preview**: Spacebar to preview files
124
- - **Quit**: `q`
125
-
126
- ---
127
-
128
- ## Security policy
129
- - **GPG/SSH**: All commits use SSH signing.
130
- - **Audit log**: Review `~/.local/share/dotfiles.log` for a timeline of all changes that Dotfiles applied.
@@ -1,149 +0,0 @@
1
- # Release notes — v0.2.480
2
-
3
- ## Release overview
4
-
5
- This release transforms the dotfiles into a high-performance, cross-platform system managed by **chezmoi**.
6
-
7
- ### Architecture
8
- v0.2.480 is a portable **shell distribution** managed by `chezmoi` (source of truth in `~/.dotfiles`).
9
-
10
- - **XDG-first**: Configs strictly mapped to `~/.config/` (no `~/.foo` sprawl).
11
- - **Single entrypoint**: `dot_zshenv` acts as an XDG bootloader for instant environment setup.
12
- - **Modern toolchain**: Replaces classic Unix tools with high-performance Rust alternatives:
13
- - `ls` → `eza`
14
- - `cat` → `bat`
15
- - `grep` → `ripgrep`
16
- - `cd` → `zoxide` (smart directory jumping)
17
- - `history` → `atuin` (syncable, encrypted SQLite history)
18
- - **Predictive shell**:
19
- - **AI strategy**: Context-aware autosuggestions coupled with optional local LLM integration (`ai_core`).
20
- - **Error analysis**: Wrappers analyze command failures through `gh copilot` or local models.
21
-
22
- ### Non-goals
23
- - **Not a framework**: This is a curated distribution, not a plugin manager like Oh-My-Zsh.
24
- - **Not POSIX-pure**: Prioritizes modern Zsh/Rust features over strict POSIX compliance.
25
- - **Not minimal**: Optimizes for functionality and speed, not line-count minimalism.
26
-
27
- ### Security
28
- - **Hardened by default**: Scripts run with `set -euo pipefail` to fail fast on errors.
29
- - **Supply chain safety**:
30
- - **Pinned install**: Installation commands pin to the specific release tag (`v0.2.480`) to prevent drift.
31
- - **Zero-trust**: No implicit reliance on `main` branch code in production.
32
- - **Threat model**: This project assumes a **trusted local machine** and focuses on supply-chain (pinned versions) and configuration safety (immutable history).
33
- - **Audit logging**: Dotfiles logs all `chezmoi` mutations to `~/.local/share/dotfiles.log` for day-2 operations review.
34
-
35
- ### Changes
36
- - **Migrated**:
37
- - Shell: `~/.zshrc` now sources generated templates from `~/.config/shell`.
38
- - Neovim: `~/.config/nvim` fully managed through Lua/Lazy.nvim.
39
- - Tmux: Modular config consolidated to `~/.dotfiles/dot_tmux.conf`.
40
- - **Packaging**:
41
- - `Brewfile` (macOS) and `apt-get` (Linux) handled automatically.
42
- - **Structural**:
43
- - **Renamed**: `dot_config/dotfiles` → `dot_config/shell` for semantic clarity.
44
- - **Moved**: `bin/` → `dot_local/bin/` for automatic path integration.
45
- - **Separated**: Install scripts split by OS (Darwin/Linux) for cleaner logic.
46
- - **Layered architecture**: Refactored shell config into explicit layers:
47
- - `00-core`: Safety/Paths
48
- - `50-logic`: Functions/Toolchain
49
- - `90-ux`: Aliases/Theme
50
- - **Trust and reproducibility**:
51
- - **Pinned formulae**: Generated `Brewfile.lock.json` for strictly reproducible macOS builds.
52
- - **Binary pinning**: `install.sh` now enforces specific version tags for initial bootstrap.
53
- ### Quality
54
- - **Conflict resolution**: Detected and resolved **46 namespace collisions** across all alias modules (Git, Go, Archives, etc.) to ensure zero overlap.
55
- - **Git safety**: Renamed colliding Go aliases (for example, `gr` -> `gor`) to protect core Git commands.
56
- - **Modernization**: Merged `list` into `modern` for a cohesive Rust-based toolchain experience (`eza`, `bat`).
57
- - **Standardization**: Removed duplicate logging functions in favor of a shared utility.
58
- - **Documentation**: All 30+ component READMEs now reflect current functionality.
59
-
60
- ### Toolchain
61
- - **Kubernetes**: Added `kubectl`, `helm`, `k9s` aliases.
62
- - **IaC**: Added `terraform`, `opentofu`, `ansible`.
63
- - **Languages**: Added ecosystem support for `go`, `yarn`, `uv` (modern Python).
64
- - **AI integration**: Added wrappers for `gh copilot`, `fabric`, and local LLMs.
65
- - **Smart help**: Added `dothelp` to search and index custom functions.
66
-
67
- ### Testing
68
-
69
- - **Automated testing**
70
- - Docker CI (`ci-docker.yml`) runs on Ubuntu/Fedora/Arch.
71
- - Integration tests validate alias syntax (`test-aliases.sh`).
72
-
73
- - **Enterprise core and security (the trust layer)**
74
- - **SLSA and SBOM**: `security-release.yml` generates SPDX SBOMs and SLSA Level 3 Provenance.
75
- - **Signing**: `enable-signing` wizard for GPG/SSH git signing.
76
- - **Immutability**: `lock-configs` / `unlock-configs` protect critical dotfiles (`chflags`/`chattr`).
77
-
78
- - **Legal and licensing**
79
- - **Compliance**: `scan-licenses` (FOSSology/Trivy), `check-cla` (GitHub checks).
80
- - **Attribution**: `add-headers` automation and `gen-notice` generation.
81
-
82
- - **Self-healing and diagnostics**
83
- - **Health**: `dot doctor` diagnoses environment (dependencies, XDG, paths).
84
- - **Repair**: `dot heal` / `dot drift` aliases for auto-repair and drift detection.
85
-
86
- - **Regulatory compliance**
87
- - **Documentation**: `COMPLIANCE.md` maps features to **SOC2 Type II** and **ISO 27001**.
88
- - **Privacy**: `privacy-mode` alias disables CLI telemetry for 7+ frameworks.
89
-
90
- - **macOS deep integration**
91
- - **Hardening**: `defaults` script hardens screensaver, firewall, and Finder settings.
92
- - **Optimization**: Configures Safari for development, removes Dock clutter.
93
-
94
- - **Font typography**
95
- - **Fonts**: Auto-installs `JetBrainsMono Nerd Font` and `Symbols Nerd Font`.
96
- - **Rendering**: Linux `fontconfig` XML for sub-pixel antialiasing.
97
-
98
- - **Phase 58: Editor unification** (implemented)
99
- - **Neovim IDE**: Full VS Code feature parity (Noice, Lualine, Gitsigns, Indent-Blankline).
100
- - **Language support**: Optimized for Rust (Rustaceanvim) and Python (BasedPyright/Ruff).
101
- - **Performance**: Lazy-loading architecture with `<30ms` startup.
102
- - **CI/CD fixes**: Resolved CodeQL alerts (removed legacy Node.js) and fixed Docker builds.
103
-
104
- - **OS bundling and compliance**
105
- - **Packaging**: `scripts/package.sh` generates versioned distribution tarballs.
106
- - **Enterprise**: `/etc/dotfiles/defaults.d` hooks for site-local config overrides.
107
- - **Standards**: Strict **XDG Base Directory** enforcement in `paths.sh`.
108
-
109
- - **The universal installer (zero-dep)**
110
- - **Bootstrap**: `install.sh` runs through `curl | sh` with no dependencies.
111
- - **Teleport**: `dot teleport user@host` deploys configs ephemerally through SSH.
112
-
113
- ### Verification
114
- - **Performance**: Benchmark script `scripts/benchmark.sh` confirms <20ms startup.
115
- - **Integration**: `test-aliases.sh` validates syntax of all 32 alias modules.
116
- - **Security**: **Zero critical vulnerabilities** (CodeQL and Dependabot clean).
117
- - **Functionality**: Local migration tested on macOS, Linux, and WSL.
118
-
119
-
120
- ### Install and migrate
121
-
122
- #### Option A: Fresh install (new machines)
123
- To set up a new machine, run the universal installer:
124
- ```bash
125
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.480/install.sh)"
126
- ```
127
-
128
- #### Option B: Migration (upgrade from earlier versions)
129
-
130
- > [!IMPORTANT]
131
- > This release changes the architecture from direct symlinks to `chezmoi` templates. Back up your configuration first.
132
-
133
- Existing `chezmoi` users can run `chezmoi apply` to upgrade, but the full installer works better for major version jumps.
134
-
135
- 1. **Back up legacy configs**:
136
- ```bash
137
- mv ~/.zshrc ~/.zshrc.bak
138
- mv ~/.config/nvim ~/.config/nvim.bak
139
- ```
140
- 2. **Run the installer**:
141
- ```bash
142
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.480/install.sh)"
143
- ```
144
- 3. **Resolve conflicts**:
145
- - If `chezmoi` prompts you to overwrite files (for example, `.zshrc`), select **overwrite** (or diff to check) because this release uses a new sourcing strategy.
146
- 4. **Restart shell**:
147
- ```bash
148
- exec zsh
149
- ```
package/docs/SECRETS.md DELETED
@@ -1,76 +0,0 @@
1
- # Secrets
2
-
3
- You can encrypt secrets using `age` with `chezmoi`.
4
-
5
- ## Get started
6
-
7
- ```bash
8
- dot secrets-init
9
- ```
10
-
11
- The command creates `~/.config/chezmoi/key.txt` and prints your public key. It also updates `~/.config/chezmoi/chezmoi.toml` with the `age` backend settings.
12
-
13
- > [!IMPORTANT]
14
- > Verify that `age` is installed before running this command. You can install it through `brew`, `apt`, or your preferred toolchain.
15
-
16
- ## Enable encryption
17
-
18
- Edit `~/.config/chezmoi/chezmoi.toml` (local only):
19
-
20
- ```toml
21
- encryption = "age"
22
-
23
- [age]
24
- identity = "~/.config/chezmoi/key.txt"
25
- recipient = "age1..."
26
- ```
27
-
28
- You can also re-run:
29
-
30
- ```bash
31
- chezmoi init --apply --promptDefaults
32
- ```
33
-
34
- ## Edit secrets
35
-
36
- ```bash
37
- dot secrets
38
- ```
39
-
40
- The command opens `~/.config/chezmoi/encrypted_secrets.age` for editing and applies changes when you save.
41
-
42
- ## Create secrets
43
-
44
- ```bash
45
- dot secrets-create
46
- ```
47
-
48
- Then edit:
49
-
50
- ```bash
51
- dot secrets
52
- ```
53
-
54
- ## Encrypt an SSH key
55
-
56
- ```bash
57
- dot ssh-key ~/.ssh/id_ed25519
58
- ```
59
-
60
- The command creates a local encrypted file at:
61
- `~/.config/chezmoi/encrypted_id_ed25519.age`
62
-
63
- If you want it tracked (encrypted) in your dotfiles, run:
64
-
65
- ```bash
66
- chezmoi add --encrypt ~/.config/chezmoi/encrypted_id_ed25519.age
67
- ```
68
-
69
- ## Important notes
70
-
71
- > [!WARNING]
72
- > Keep `~/.config/chezmoi/key.txt` private. Never commit this file to a public repository.
73
-
74
- - You can share the public key freely for encrypting data.
75
- - Consider rotating keys yearly (or after any potential leak).
76
- To rotate: generate a new key, update `chezmoi.toml`, re-encrypt your secrets, and delete the old key.
package/docs/SECURITY.md DELETED
@@ -1,30 +0,0 @@
1
- # Security
2
-
3
- Learn how Dotfiles handles security and system modifications.
4
-
5
- ## Principles
6
-
7
- - **Opt-In Only**: No hardening is applied unless the `DOTFILES_` variables are set to `1`.
8
- - **Local Logging**: Actions are logged to `~/.local/share/dotfiles.log`. No telemetry.
9
- - **No Hidden Sudo**: Sudo is only requested for system managers (apt, etc) and never cached indefinitely.
10
-
11
- ## Hardening
12
-
13
- | Feature | Env Var | Action (macOS) | Action (Linux) |
14
- |---|---|---|---|
15
- | Firewall | `DOTFILES_FIREWALL` | Enables `socketfilterfw` + Stealth Mode | Configures UFW |
16
- | Telemetry | `DOTFILES_TELEMETRY` | Disables Diagnostic plists | Disables `whoopsie`/`apport` |
17
- | DNS-over-HTTPS | `DOTFILES_DOH` | Browser-level settings | Configures `resolvectl` |
18
- | Idle Security | `DOTFILES_LOCK` | Sets screensaver idle time | Sets GNOME/KDE idle-delay |
19
-
20
- ## Secrets
21
-
22
- Dotfiles uses **age** for encryption.
23
-
24
- - **Initialization**: `dot secrets-init` creates a key at `~/.config/chezmoi/key.txt`.
25
- - **Storage**: Secrets are stored as `.age` encrypted files.
26
- - **Protection**: Private keys are never committed to the repo.
27
-
28
- ## Report an issue
29
-
30
- If you discover a security vulnerability, please do not open a public issue. Follow the instructions in the Security Policy.