@sebastienrousseau/dotfiles 0.2.499 → 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 (538) hide show
  1. package/CHANGELOG.md +375 -0
  2. package/LICENSE +1283 -0
  3. package/README.md +284 -0
  4. package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
  5. package/docs/AI.md +102 -0
  6. package/docs/COPYRIGHT +4 -3
  7. package/docs/NAMING_CONVENTIONS.md +95 -0
  8. package/docs/README.md +78 -0
  9. package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
  10. package/docs/adr/ADR-002-shell-performance.md +121 -0
  11. package/docs/adr/ADR-003-security-first.md +140 -0
  12. package/docs/adr/ADR-004-cli-architecture.md +157 -0
  13. package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
  14. package/docs/adr/ADR-006-shell-selection.md +115 -0
  15. package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
  16. package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
  17. package/docs/adr/README.md +32 -0
  18. package/docs/architecture/ARCHITECTURE.md +113 -0
  19. package/docs/architecture/INTEROP.md +36 -0
  20. package/docs/architecture/REPO_LAYOUT.md +237 -0
  21. package/docs/architecture/WALKTHROUGH.md +82 -0
  22. package/docs/architecture/fleet-deployment.md +73 -0
  23. package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
  24. package/docs/archive/LEGACY_ROADMAP.md +142 -0
  25. package/docs/archive/MILESTONE_v0.2.493.md +43 -0
  26. package/docs/{PLAN.md → archive/PLAN.md} +4 -4
  27. package/docs/archive/REPO_AUDIT.md +23 -0
  28. package/docs/guides/INSTALL.md +140 -0
  29. package/docs/guides/NEOVIM_IDE_GUIDE.md +52 -0
  30. package/docs/guides/THEMING.md +222 -0
  31. package/docs/guides/TROUBLESHOOTING.md +148 -0
  32. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +723 -0
  33. package/docs/index.md +39 -0
  34. package/docs/interop/A2A.md +32 -0
  35. package/docs/manual/00-introduction.md +85 -0
  36. package/docs/manual/01-concepts/01-architecture.md +134 -0
  37. package/docs/manual/01-concepts/02-trust-model.md +178 -0
  38. package/docs/manual/01-concepts/03-theme-engine.md +182 -0
  39. package/docs/manual/01-concepts/04-fleet.md +142 -0
  40. package/docs/manual/01-concepts/05-self-healing.md +197 -0
  41. package/docs/manual/02-tutorials/01-first-install.md +192 -0
  42. package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
  43. package/docs/manual/02-tutorials/03-create-profile.md +238 -0
  44. package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
  45. package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
  46. package/docs/manual/03-reference/01-dot-cli.md +413 -0
  47. package/docs/manual/03-reference/02-config-files.md +259 -0
  48. package/docs/manual/03-reference/03-environment.md +120 -0
  49. package/docs/manual/03-reference/04-templates.md +184 -0
  50. package/docs/manual/03-reference/05-feature-flags.md +118 -0
  51. package/docs/manual/04-cookbook/01-recipes.md +281 -0
  52. package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
  53. package/docs/manual/04-cookbook/03-faq.md +167 -0
  54. package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
  55. package/docs/manual/05-appendices/B-security-checklist.md +78 -0
  56. package/docs/manual/05-appendices/C-glossary.md +36 -0
  57. package/docs/manual/05-appendices/D-bibliography.md +54 -0
  58. package/docs/manual/05-appendices/E-license.md +34 -0
  59. package/docs/manual/_toc.yml +58 -0
  60. package/docs/manual/command-index.md +58 -0
  61. package/docs/manual/concept-index.md +164 -0
  62. package/docs/operations/ATTESTATION.md +39 -0
  63. package/docs/operations/MAINTENANCE.md +59 -0
  64. package/docs/operations/MIGRATION.md +101 -0
  65. package/docs/operations/OPERATIONS.md +164 -0
  66. package/docs/operations/RELIABILITY.md +116 -0
  67. package/docs/{ROADMAP.md → operations/ROADMAP.md} +22 -22
  68. package/docs/operations/TESTING.md +195 -0
  69. package/docs/operations/TRACEABILITY.md +31 -0
  70. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
  71. package/docs/operations/VERSION_SYNC.md +344 -0
  72. package/docs/reference/ALIASES.md +124 -0
  73. package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
  74. package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
  75. package/docs/reference/FEATURES.md +62 -0
  76. package/docs/reference/FONTS.md +108 -0
  77. package/docs/reference/PROFILES.md +65 -0
  78. package/docs/reference/SCREENSHOTS.md +117 -0
  79. package/docs/reference/SCRIPTS.md +67 -0
  80. package/docs/reference/SUPPORT_MATRIX.md +74 -0
  81. package/docs/reference/THEMES.md +113 -0
  82. package/docs/reference/TOOLS.md +105 -0
  83. package/docs/reference/UTILS.md +151 -0
  84. package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
  85. package/docs/security/AUTOMATION_SECRETS.md +22 -0
  86. package/docs/security/COMPLIANCE.md +453 -0
  87. package/docs/security/ENCRYPTION.md +52 -0
  88. package/docs/security/FMEA.md +155 -0
  89. package/docs/security/INCIDENT_RESPONSE.md +575 -0
  90. package/docs/security/KEYS.md +45 -0
  91. package/docs/security/KEY_ROTATION.md +219 -0
  92. package/docs/security/MCP_POLICY.md +69 -0
  93. package/docs/security/POLICY_RELEASES.md +33 -0
  94. package/docs/security/README.md +24 -0
  95. package/docs/security/SECRETS.md +146 -0
  96. package/docs/security/SECURITY.md +41 -0
  97. package/docs/security/SECURITY_CHECKLIST.md +44 -0
  98. package/docs/security/SOUP_REGISTER.md +32 -0
  99. package/docs/security/THREAT_MODEL.md +120 -0
  100. package/docs/security/VERIFICATION_VALIDATION.md +224 -0
  101. package/docs/themes/README.md +6 -0
  102. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
  103. package/docs/themes/hero-shot.svg +78 -0
  104. package/dot_config/.module-manifest.json +69 -0
  105. package/dot_config/ai/identity.md +20 -0
  106. package/dot_config/ai/patterns/architect.md +14 -0
  107. package/dot_config/ai/patterns/hardener.md +13 -0
  108. package/dot_config/ai/patterns/refactor.md +13 -0
  109. package/dot_config/aider/aider.conf.yml +32 -0
  110. package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
  111. package/dot_config/ansible/ansible.cfg +11 -0
  112. package/dot_config/atuin/config.toml +40 -0
  113. package/dot_config/bat/config +23 -0
  114. package/dot_config/brave-flags.conf.tmpl +7 -0
  115. package/dot_config/btop/btop.conf +16 -0
  116. package/dot_config/btop/themes/tokyonight.theme +34 -0
  117. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  118. package/dot_config/claude/mcp_servers.json +20 -0
  119. package/dot_config/containers/containers.conf +14 -0
  120. package/dot_config/curl/dot_curlrc +18 -0
  121. package/dot_config/dlv/config.yml +39 -0
  122. package/dot_config/docker/config.json +15 -0
  123. package/dot_config/dotfiles/agent-card.json +29 -0
  124. package/dot_config/dotfiles/agent-profiles.json +92 -0
  125. package/dot_config/dotfiles/boot/README.md +11 -0
  126. package/dot_config/dotfiles/grub/README.md +11 -0
  127. package/dot_config/dotfiles/lock/README.md +11 -0
  128. package/dot_config/dotfiles/mcp-lock.json +33 -0
  129. package/dot_config/dotfiles/mcp-policy.json +52 -0
  130. package/dot_config/dotfiles/mcp-registry.json +47 -0
  131. package/dot_config/dotfiles/model-registry.json +20 -0
  132. package/dot_config/dotfiles/policy-bundles.json +38 -0
  133. package/dot_config/dotfiles/prompt-registry.json +16 -0
  134. package/dot_config/dotfiles/versions.env +18 -0
  135. package/dot_config/duf/duf.conf +6 -0
  136. package/dot_config/duti/defaults.duti +5 -0
  137. package/dot_config/emoji/emoji.txt +34 -0
  138. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  139. package/dot_config/environment.d/90-wayland.conf +19 -0
  140. package/dot_config/fastfetch/config.jsonc +28 -0
  141. package/dot_config/firefox/user.js.tmpl +58 -0
  142. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  143. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  144. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  145. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  146. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  147. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  148. package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
  149. package/dot_config/fish/config.fish.tmpl +44 -0
  150. package/dot_config/fish/fish_plugins +1 -0
  151. package/dot_config/fish/functions/_.fish +3 -0
  152. package/dot_config/fish/functions/_cached_eval.fish +58 -0
  153. package/dot_config/fish/functions/als.fish +46 -0
  154. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  155. package/dot_config/fish/functions/c.fish +3 -0
  156. package/dot_config/fish/functions/cat.fish +9 -0
  157. package/dot_config/fish/functions/d.fish +7 -0
  158. package/dot_config/fish/functions/dot.fish +34 -0
  159. package/dot_config/fish/functions/h.fish +3 -0
  160. package/dot_config/fish/functions/l.fish +7 -0
  161. package/dot_config/fish/functions/la.fish +7 -0
  162. package/dot_config/fish/functions/ll.fish +7 -0
  163. package/dot_config/fish/functions/log_error.fish +13 -0
  164. package/dot_config/fish/functions/log_info.fish +13 -0
  165. package/dot_config/fish/functions/lr.fish +7 -0
  166. package/dot_config/fish/functions/lra.fish +7 -0
  167. package/dot_config/fish/functions/ls.fish +7 -0
  168. package/dot_config/fish/functions/lt.fish +7 -0
  169. package/dot_config/fish/functions/lta.fish +7 -0
  170. package/dot_config/fish/functions/notify-run.fish +11 -0
  171. package/dot_config/fish/functions/q.fish +3 -0
  172. package/dot_config/fish/functions/silent-run.fish +7 -0
  173. package/dot_config/fish/functions/yy.fish +8 -0
  174. package/dot_config/flatpak/flatpak.list +4 -0
  175. package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
  176. package/dot_config/foot/foot.ini.tmpl +33 -0
  177. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  178. package/dot_config/fzf/fzf.zsh +48 -0
  179. package/dot_config/gem/gemrc +9 -0
  180. package/dot_config/gh/config.yml +12 -0
  181. package/dot_config/ghostty/config.tmpl +165 -0
  182. package/dot_config/git/allowed_signers.tmpl +18 -0
  183. package/dot_config/git/attributes +12 -0
  184. package/dot_config/git/commit-template +10 -0
  185. package/dot_config/git/ignore +27 -0
  186. package/dot_config/gnupg/gpg-agent.conf +11 -0
  187. package/dot_config/go/golangci.yml +118 -0
  188. package/dot_config/go/gopls.json +30 -0
  189. package/dot_config/goose/config.yaml +29 -0
  190. package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
  191. package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
  192. package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
  193. package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
  194. package/dot_config/htop/htoprc +20 -0
  195. package/dot_config/inputrc +2 -0
  196. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  197. package/dot_config/just/justfile +122 -0
  198. package/dot_config/k9s/config.yaml +65 -0
  199. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  200. package/dot_config/kanshi/config.tmpl +22 -0
  201. package/dot_config/karabiner/karabiner.json +14 -0
  202. package/dot_config/kitty/kitty.conf.tmpl +53 -0
  203. package/dot_config/lazydocker/config.yml +186 -0
  204. package/dot_config/lazygit/config.yml +35 -0
  205. package/dot_config/mako/config +47 -0
  206. package/dot_config/mas/masapps.txt +5 -0
  207. package/dot_config/micro/settings.json +3 -0
  208. package/dot_config/mimeapps.list +77 -0
  209. package/dot_config/minikube/config.json +13 -0
  210. package/dot_config/mise/config.toml +99 -0
  211. package/dot_config/mongosh/mongoshrc.js +68 -0
  212. package/dot_config/mpv/input.conf +47 -0
  213. package/dot_config/mpv/mpv.conf +47 -0
  214. package/dot_config/mycli/myclirc +67 -0
  215. package/dot_config/nano/nanorc +28 -0
  216. package/dot_config/ncdu/config +12 -0
  217. package/dot_config/niri/config.kdl.tmpl +327 -0
  218. package/dot_config/nushell/aliases.nu +18 -0
  219. package/dot_config/nushell/completions.nu.tmpl +52 -0
  220. package/dot_config/nushell/config.nu.tmpl +86 -0
  221. package/dot_config/nushell/env.nu.tmpl +94 -0
  222. package/dot_config/nushell/functions.nu.tmpl +17 -0
  223. package/dot_config/nvim/init.lua +18 -0
  224. package/dot_config/nvim/lazy-lock.json +58 -0
  225. package/dot_config/nvim/lua/config/autocmds.lua +107 -0
  226. package/dot_config/nvim/lua/config/keymaps.lua +92 -0
  227. package/dot_config/nvim/lua/config/lazy.lua +44 -0
  228. package/dot_config/nvim/lua/config/options.lua +49 -0
  229. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  230. package/dot_config/nvim/lua/plugins/coding.lua +216 -0
  231. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  232. package/dot_config/nvim/lua/plugins/dap.lua +412 -0
  233. package/dot_config/nvim/lua/plugins/editor.lua +55 -0
  234. package/dot_config/nvim/lua/plugins/git.lua +10 -0
  235. package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
  236. package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
  237. package/dot_config/nvim/lua/plugins/rust.lua +34 -0
  238. package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
  239. package/dot_config/nvim/lua/plugins/ui.lua +509 -0
  240. package/dot_config/paru/paru.conf +10 -0
  241. package/dot_config/pip/pip.conf.tmpl +32 -0
  242. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  243. package/dot_config/pueue/pueue.yml +34 -0
  244. package/dot_config/pypoetry/config.toml +6 -0
  245. package/dot_config/pyrightconfig.json +5 -0
  246. package/dot_config/raycast/README.md +13 -0
  247. package/dot_config/redis/redisclirc +41 -0
  248. package/dot_config/ripgrep/ripgreprc +21 -0
  249. package/dot_config/shell/00-core-paths.sh.tmpl +133 -0
  250. package/dot_config/shell/05-core-safety.sh +47 -0
  251. package/dot_config/shell/10-secrets.sh +40 -0
  252. package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
  253. package/dot_config/shell/40-ls-colors.sh +48 -0
  254. package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
  255. package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
  256. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
  257. package/dot_config/shell/90-ux-aliases.sh.tmpl +120 -0
  258. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +54 -0
  259. package/dot_config/shell/Brewfile +207 -0
  260. package/dot_config/shell/Brewfile.cask +92 -0
  261. package/dot_config/shell/Brewfile.cli +127 -0
  262. package/dot_config/shell/README.md +267 -0
  263. package/dot_config/shell/als_data.txt.tmpl +65 -0
  264. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  265. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  266. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  267. package/dot_config/sops/dot_sops.yaml +23 -0
  268. package/dot_config/starship.toml.tmpl +202 -0
  269. package/dot_config/swaylock/config +43 -0
  270. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  271. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  272. package/dot_config/systemd/user/pueued.service +12 -0
  273. package/dot_config/systemd/user/ssh-agent.service +12 -0
  274. package/dot_config/task/Taskfile.yml +86 -0
  275. package/dot_config/tflint/tflint.hcl +9 -0
  276. package/dot_config/tmux/tmux.conf.tmpl +223 -0
  277. package/dot_config/topgrade.toml.tmpl +54 -0
  278. package/dot_config/user-dirs.dirs +9 -0
  279. package/dot_config/vscode/extensions.txt +11 -0
  280. package/dot_config/vscode/settings.json.tmpl +82 -0
  281. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  282. package/dot_config/waybar/style.css.tmpl +211 -0
  283. package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
  284. package/dot_config/wget/wgetrc +12 -0
  285. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  286. package/dot_config/yarn/yarnrc.yml +36 -0
  287. package/dot_config/yazi/keymap.toml +67 -0
  288. package/dot_config/yazi/theme.toml +102 -0
  289. package/dot_config/yazi/yazi.toml +40 -0
  290. package/dot_config/zathura/zathurarc +52 -0
  291. package/dot_config/zellij/config.kdl.tmpl +79 -0
  292. package/dot_config/zsh/dot_zprofile +7 -0
  293. package/dot_config/zsh/dot_zshenv +5 -0
  294. package/dot_config/zsh/dot_zshrc.tmpl +498 -0
  295. package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
  296. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
  297. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  298. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  299. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +194 -0
  300. package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
  301. package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
  302. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  303. package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
  304. package/dot_local/bin/executable_ai-update +195 -0
  305. package/dot_local/bin/executable_ai_core +152 -0
  306. package/dot_local/bin/executable_antigravity +11 -0
  307. package/dot_local/bin/executable_b64 +84 -0
  308. package/dot_local/bin/executable_bm +77 -0
  309. package/dot_local/bin/executable_cb +39 -0
  310. package/dot_local/bin/executable_dot +589 -0
  311. package/dot_local/bin/executable_dot-ai +36 -0
  312. package/dot_local/bin/executable_dot-bootstrap +77 -0
  313. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  314. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  315. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  316. package/dot_local/bin/executable_dot-theme-sync +952 -0
  317. package/dot_local/bin/executable_dot_completion +57 -0
  318. package/dot_local/bin/executable_dtags +28 -0
  319. package/dot_local/bin/executable_epoch +67 -0
  320. package/dot_local/bin/executable_extract +41 -0
  321. package/dot_local/bin/executable_gbd +52 -0
  322. package/dot_local/bin/executable_gd +42 -0
  323. package/dot_local/bin/executable_git-ai-commit +175 -0
  324. package/dot_local/bin/executable_git-ai-diff +169 -0
  325. package/dot_local/bin/executable_gl +101 -0
  326. package/dot_local/bin/executable_hash +161 -0
  327. package/dot_local/bin/executable_hashsum +160 -0
  328. package/dot_local/bin/executable_hex +115 -0
  329. package/dot_local/bin/executable_jsonv +78 -0
  330. package/dot_local/bin/executable_jwt +94 -0
  331. package/dot_local/bin/executable_kill-port +75 -0
  332. package/dot_local/bin/executable_lorem +118 -0
  333. package/dot_local/bin/executable_mkscript +35 -0
  334. package/dot_local/bin/executable_monitor +56 -0
  335. package/dot_local/bin/executable_myip +51 -0
  336. package/dot_local/bin/executable_notify +22 -0
  337. package/dot_local/bin/executable_open +36 -0
  338. package/dot_local/bin/executable_pw +27 -0
  339. package/dot_local/bin/executable_rec-start +46 -0
  340. package/dot_local/bin/executable_rec-stop +35 -0
  341. package/dot_local/bin/executable_regex +132 -0
  342. package/dot_local/bin/executable_start-niri +8 -0
  343. package/dot_local/bin/executable_tmux-sessionizer +314 -0
  344. package/dot_local/bin/executable_tour +175 -0
  345. package/dot_local/bin/executable_up +21 -0
  346. package/dot_local/bin/executable_update +142 -0
  347. package/dot_local/bin/executable_uuid +87 -0
  348. package/dot_local/bin/executable_win +32 -0
  349. package/dot_local/bin/executable_yamlv +57 -0
  350. package/dot_local/share/bash-completion/completions/dot +72 -0
  351. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  352. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  353. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  354. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  355. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  356. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  357. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  358. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  359. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  360. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  361. package/dot_local/share/man/man1/dot.1 +149 -0
  362. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  363. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  364. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  365. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  366. package/dot_local/share/zsh/completions/.keep +0 -0
  367. package/dot_local/share/zsh/completions/_dot +283 -0
  368. package/install.sh +342 -0
  369. package/package.json +1 -1
  370. package/scripts/ci/check-copyright-headers.sh +96 -0
  371. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  372. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  373. package/scripts/ci/validate-ci-config.sh +224 -0
  374. package/scripts/demo/record.sh +42 -0
  375. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  376. package/scripts/diagnostics/alias-governance.sh +137 -0
  377. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  378. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  379. package/scripts/diagnostics/benchmark.sh +381 -0
  380. package/scripts/diagnostics/conflicts.sh +72 -0
  381. package/scripts/diagnostics/doctor-unified.sh +38 -0
  382. package/scripts/diagnostics/doctor.sh +541 -0
  383. package/scripts/diagnostics/drift-dashboard.sh +37 -0
  384. package/scripts/diagnostics/health.sh +597 -0
  385. package/scripts/diagnostics/history-analysis.sh +85 -0
  386. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  387. package/scripts/diagnostics/perf.sh +225 -0
  388. package/scripts/diagnostics/scorecard.sh +118 -0
  389. package/scripts/diagnostics/secret-governance.sh +58 -0
  390. package/scripts/diagnostics/security-score.sh +438 -0
  391. package/scripts/diagnostics/smoke-test.sh +87 -0
  392. package/scripts/diagnostics/snapshot.sh +89 -0
  393. package/scripts/diagnostics/verify.sh +107 -0
  394. package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
  395. package/scripts/diagnostics/version-locks.sh +79 -0
  396. package/scripts/diagnostics/workstation-attestation.sh +181 -0
  397. package/scripts/docs/build-manual.sh +883 -0
  398. package/scripts/docs/check-manual.sh +213 -0
  399. package/scripts/dot/commands/agent.sh +465 -0
  400. package/scripts/dot/commands/ai.sh +416 -0
  401. package/scripts/dot/commands/aliases.sh +250 -0
  402. package/scripts/dot/commands/appearance.sh +80 -0
  403. package/scripts/dot/commands/core.sh +185 -0
  404. package/scripts/dot/commands/diagnostics.sh +229 -0
  405. package/scripts/dot/commands/fleet.sh +399 -0
  406. package/scripts/dot/commands/lint.sh +177 -0
  407. package/scripts/dot/commands/manual.sh +168 -0
  408. package/scripts/dot/commands/meta.sh +248 -0
  409. package/scripts/dot/commands/patterns.sh +54 -0
  410. package/scripts/dot/commands/restore.sh +231 -0
  411. package/scripts/dot/commands/secrets.sh +223 -0
  412. package/scripts/dot/commands/security.sh +76 -0
  413. package/scripts/dot/commands/tools.sh +469 -0
  414. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  415. package/scripts/dot/lib/bento.sh +49 -0
  416. package/scripts/dot/lib/log.sh +194 -0
  417. package/scripts/dot/lib/platform.sh +98 -0
  418. package/scripts/dot/lib/ui.sh +507 -0
  419. package/scripts/dot/lib/utils.sh +372 -0
  420. package/scripts/fonts/install-nerd-fonts.sh +68 -0
  421. package/scripts/fonts/patch-fonts.sh +35 -0
  422. package/scripts/git-hooks/install.sh +11 -0
  423. package/scripts/git-hooks/pre-commit +12 -0
  424. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  425. package/scripts/git-hooks/pre-push +29 -0
  426. package/scripts/git-hooks/prepare-commit-msg +29 -0
  427. package/scripts/lib/secrets_provider.sh +158 -0
  428. package/scripts/maintenance/check-updates.sh +131 -0
  429. package/scripts/ops/ai-setup.sh +55 -0
  430. package/scripts/ops/bundle.sh +77 -0
  431. package/scripts/ops/chaos.sh +49 -0
  432. package/scripts/ops/chezmoi-apply.sh +270 -0
  433. package/scripts/ops/chezmoi-diff.sh +15 -0
  434. package/scripts/ops/chezmoi-remove.sh +45 -0
  435. package/scripts/ops/chezmoi-update.sh +48 -0
  436. package/scripts/ops/heal-chezmoi.sh +51 -0
  437. package/scripts/ops/heal-system.sh +128 -0
  438. package/scripts/ops/heal-tools.sh +340 -0
  439. package/scripts/ops/heal.sh +222 -0
  440. package/scripts/ops/post-apply-repair.sh +106 -0
  441. package/scripts/ops/prewarm.sh +127 -0
  442. package/scripts/ops/release.sh +252 -0
  443. package/scripts/ops/rollback.sh +589 -0
  444. package/scripts/ops/setup.sh +137 -0
  445. package/scripts/ops/teleport.sh +33 -0
  446. package/scripts/qa/coverage-baseline.sh +60 -0
  447. package/scripts/qa/docs-coverage.sh +111 -0
  448. package/scripts/qa/reliability-audit.sh +138 -0
  449. package/scripts/qa/traceability-coverage.sh +116 -0
  450. package/scripts/qa/validate-examples.sh +26 -0
  451. package/scripts/qa/wsl-contract.sh +11 -0
  452. package/scripts/release/package-policy-bundles.sh +125 -0
  453. package/scripts/secrets/age-init.sh +70 -0
  454. package/scripts/secrets/create-secrets-file.sh +45 -0
  455. package/scripts/secrets/encrypt-ssh-key.sh +43 -0
  456. package/scripts/security/backup.sh +57 -0
  457. package/scripts/security/dns-doh.sh +51 -0
  458. package/scripts/security/encryption-check.sh +54 -0
  459. package/scripts/security/enforce-policies.sh +334 -0
  460. package/scripts/security/firewall.sh +90 -0
  461. package/scripts/security/lock-configs.sh +57 -0
  462. package/scripts/security/lock-screen.sh +55 -0
  463. package/scripts/security/manage-secrets.sh +428 -0
  464. package/scripts/security/ssh-cert.sh +203 -0
  465. package/scripts/security/telemetry-kill.sh +50 -0
  466. package/scripts/security/usb-safety.sh +51 -0
  467. package/scripts/theme/apply-gnome-theme.sh +328 -0
  468. package/scripts/theme/extract-theme.py +677 -0
  469. package/scripts/theme/install-boot-logo.sh +62 -0
  470. package/scripts/theme/install-catppuccin-themes.sh +370 -0
  471. package/scripts/theme/install-cursors.sh +25 -0
  472. package/scripts/theme/install-file-icons.sh +26 -0
  473. package/scripts/theme/install-grub-theme.sh +61 -0
  474. package/scripts/theme/install-lock-icon.sh +30 -0
  475. package/scripts/theme/merge-wallpaper.sh +141 -0
  476. package/scripts/theme/rebuild-themes.sh +309 -0
  477. package/scripts/theme/switch.sh +421 -0
  478. package/scripts/theme/wallpaper-rotate.sh +136 -0
  479. package/scripts/theme/wallpaper-sync.sh +397 -0
  480. package/scripts/tools/cmatrix.sh +21 -0
  481. package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
  482. package/scripts/tools/emoji-picker.sh +48 -0
  483. package/scripts/tools/figlet-banner.sh +18 -0
  484. package/scripts/tools/log-rotate.sh +30 -0
  485. package/scripts/tools/lolcat-wrap.sh +19 -0
  486. package/scripts/tools/pipes.sh +48 -0
  487. package/scripts/tuning/linux.sh +185 -0
  488. package/scripts/tuning/macos.sh +55 -0
  489. package/scripts/uninstall.sh +85 -0
  490. package/scripts/version-sync.sh +487 -0
  491. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  492. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  493. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  494. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  495. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  496. package/templates/projects/go/README.md +4 -0
  497. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  498. package/templates/projects/go/go.sum +0 -0
  499. package/templates/projects/molecule/README.md +7 -0
  500. package/templates/projects/molecule/converge.yml +7 -0
  501. package/templates/projects/molecule/molecule.yml +16 -0
  502. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  503. package/templates/projects/node/README.md +4 -0
  504. package/templates/projects/node/package-lock.json +12 -0
  505. package/templates/projects/node/src/index.js +1 -0
  506. package/templates/projects/packer/README.md +15 -0
  507. package/templates/projects/packer/main.pkr.hcl +15 -0
  508. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  509. package/templates/projects/python/README.md +4 -0
  510. package/templates/projects/python/pyproject.toml +15 -0
  511. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  512. package/templates/projects/python/tests/test_basic.py +1 -0
  513. package/docs/ARCHITECTURE.md +0 -62
  514. package/docs/COMPLIANCE.md +0 -47
  515. package/docs/OPERATIONS.md +0 -103
  516. package/docs/PR_DESCRIPTION.md +0 -150
  517. package/docs/ROADMAP_legacy.md +0 -556
  518. package/docs/SECURITY_CHECKLIST.md +0 -25
  519. package/docs/TASK.md +0 -99
  520. package/docs/WALKTHROUGH.md +0 -46
  521. package/scripts/backup.sh +0 -142
  522. package/scripts/banner.sh +0 -20
  523. package/scripts/benchmark.sh +0 -20
  524. package/scripts/build.sh +0 -41
  525. package/scripts/clean.sh +0 -31
  526. package/scripts/compile.sh +0 -54
  527. package/scripts/copy.sh +0 -108
  528. package/scripts/doctor.sh +0 -79
  529. package/scripts/dotfiles.sh +0 -63
  530. package/scripts/download.sh +0 -35
  531. package/scripts/help.sh +0 -57
  532. package/scripts/lock-configs.sh +0 -57
  533. package/scripts/package.sh +0 -46
  534. package/scripts/ssh.sh +0 -55
  535. package/scripts/teleport.sh +0 -23
  536. package/scripts/test-aliases.sh +0 -25
  537. package/scripts/test_smoke.sh +0 -88
  538. package/scripts/unpack.sh +0 -28
@@ -0,0 +1,43 @@
1
+ # Milestone v0.2.493 Scope
2
+
3
+ This milestone keeps scope intentionally small and operationally focused.
4
+
5
+ ## Goals
6
+
7
+ - Make post-merge verification a first-class workflow (`dot verify`).
8
+ - Keep protected-branch CI deterministic (no unsigned bot commits on `master`).
9
+ - Improve day-2 operator confidence with explicit verification guidance.
10
+
11
+ ## In Scope
12
+
13
+ - [x] Add `dot verify` command routing in diagnostics module.
14
+ - `scripts/dot/commands/diagnostics.sh`
15
+ - `dot_local/bin/executable_dot`
16
+ - [x] Add verification runner script.
17
+ - `scripts/diagnostics/verify.sh`
18
+ - Runs:
19
+ - `dot doctor`
20
+ - `dot status`
21
+ - `chezmoi diff`
22
+ - [x] Update completion surfaces for new command.
23
+ - `dot_local/share/bash-completion/completions/dot`
24
+ - `dot_local/bin/executable_dot_completion`
25
+ - [x] Harden sync-versions behavior for protected `master`.
26
+ - `.github/workflows/sync-versions.yml`
27
+ - `master` now verifies only; auto-sync commit job runs on non-master branches.
28
+ - [x] Update docs and command references.
29
+ - `README.md`
30
+ - `docs/README.md`
31
+ - `docs/OPERATIONS.md`
32
+
33
+ ## Out of Scope
34
+
35
+ - New security controls beyond existing baseline.
36
+ - Major CLI redesign or command namespace reshuffle.
37
+ - Release process automation changes outside sync-versions policy hardening.
38
+
39
+ ## Exit Criteria
40
+
41
+ - `dot verify` returns non-zero on drift/issues and zero when healthy.
42
+ - `sync-versions` workflow no longer attempts commits to protected `master`.
43
+ - Relevant unit tests and targeted command tests pass.
@@ -85,7 +85,7 @@ Establish a "Trust Layer" for the dotfiles ecosystem, ensuring supply chain secu
85
85
 
86
86
  ## Changes
87
87
  - **SLSA & SBOM**: Implemented `security-release.yml` for provenance and SBOM generation.
88
- - **Signing**: Created `enable-signing` wizard alias for easy GPG/SSH configuration.
88
+ - **Signing**: Created `enable-signing` wizard alias for streamlined GPG/SSH configuration.
89
89
  - **Immutability**: Created `lock-configs.sh` script and `lock-configs`/`unlock-configs` aliases.
90
90
 
91
91
  - **Immutability**: Created `lock-configs.sh` script and `lock-configs`/`unlock-configs` aliases.
@@ -96,7 +96,7 @@ Establish a "Trust Layer" for the dotfiles ecosystem, ensuring supply chain secu
96
96
  Enable the system to self-diagnose and repair configuration drift.
97
97
 
98
98
  ## Changes
99
- - **Scripts**: Created `scripts/doctor.sh` for system health checks.
99
+ - **Scripts**: Created `scripts/diagnostics/doctor.sh` for system health checks.
100
100
  - **Aliases**: Added `dot doctor`, `dot drift` (`chezmoi verify`), and `dot heal` (`chezmoi apply`).
101
101
 
102
102
  # Phase 51: Regulatory Compliance [COMPLETED]
@@ -144,7 +144,7 @@ Prepare the dotfiles for system-wide deployment and ensure strict adherence to s
144
144
  ## Proposed Changes
145
145
  - **XDG Compliance**: Audit `00-default.paths.sh` to ensure all standard XDG variables are exported.
146
146
  - **Vendor Hooks**: Update `dot_zshrc.tmpl` to source system-level overrides from `/etc/dotfiles/defaults.d/` (Simulates "site-local" config).
147
- - **Bundling**: Create `scripts/package.sh` to create a distributable tarball and scaffold `.deb`/`.pkg` generation logic.
147
+ - **Bundling**: Create `scripts/core/package.sh` to create a distributable tarball and scaffold `.deb`/`.pkg` generation logic.
148
148
 
149
149
  # Phase 24: The Universal Installer (Zero-Dependency) [COMPLETED]
150
150
 
@@ -158,4 +158,4 @@ Provide a frictionless, "one-curl" onboarding experience and capabilities to dep
158
158
  3. Initializes the dotfiles repo.
159
159
  4. Runs `chezmoi apply`.
160
160
  5. Uses ANSI colors for a polished "TUI" feel.
161
- - **Teleportation**: `scripts/teleport.sh` using `chezmoi archive` piped to SSH to ephemeralize configs on remote servers (e.g., `dot teleport user@server`).
161
+ - **Teleportation**: `scripts/ops/teleport.sh` using `chezmoi archive` piped to SSH to ephemeralize configs on remote servers (e.g., `dot teleport user@server`).
@@ -0,0 +1,23 @@
1
+ # Repo Audit
2
+
3
+ ## Source of truth
4
+ - `~/.dotfiles` (chezmoi source directory)
5
+
6
+ ## Key directories
7
+ - `.chezmoitemplates/` - templated aliases, functions, paths
8
+ - `dot_config/` - configs mapped into `~/.config`
9
+ - `dot_local/` - binaries and local data (e.g., `dot` CLI)
10
+ - `scripts/` - diagnostics, tests, tooling
11
+ - `tests/` - sandbox Dockerfile
12
+ - `nix/` - optional Nix toolchain
13
+
14
+ ## Notable dependencies
15
+ - `chezmoi`
16
+ - `zsh`, `starship`
17
+ - `neovim`
18
+ - `ripgrep`, `fd`, `bat`, `fzf`, `zoxide`
19
+ - `lazygit`
20
+
21
+ ## Notes
22
+ - Repo-only files excluded via `.chezmoiignore`.
23
+ - Secrets are handled via `age` + `dot secrets` (see `docs/SECRETS.md`).
@@ -0,0 +1,140 @@
1
+ # Install
2
+
3
+ Set up on macOS, Linux, or WSL in 3 to 5 minutes.
4
+
5
+ **You will need:** `git` and `curl`.
6
+
7
+ **Default shell:** Fish. You can change it after you install.
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ bash -c "$(
13
+ curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh
14
+ )"
15
+ ```
16
+
17
+ Then restart your terminal or run `exec $SHELL`.
18
+
19
+ ## Verify
20
+
21
+ ```bash
22
+ dot --version # Confirm installation
23
+ dot doctor # Check shell, git, and tools
24
+ dot help # Browse available commands
25
+ ```
26
+
27
+ ## Choose a shell
28
+
29
+ Fish is the default shell. To switch to Zsh or Nushell, edit `~/.dotfiles/.chezmoidata.toml`:
30
+
31
+ ```toml
32
+ default_shell = "zsh"
33
+ ```
34
+
35
+ Supported values: `zsh`, `fish`, `nushell`.
36
+
37
+ Then apply the change:
38
+
39
+ ```bash
40
+ dot apply
41
+ ```
42
+
43
+ ## Feature flags
44
+
45
+ Turn optional tools on or off after setup. Edit `.chezmoidata.toml`:
46
+
47
+ ```toml
48
+ [features]
49
+ zsh = true # Zsh shell configuration
50
+ fish = true # Fish shell configuration
51
+ nushell = true # Nushell configuration
52
+ nvim = true # Neovim IDE configuration
53
+ tmux = true # Terminal multiplexer
54
+ nix = true # Nix package manager integration
55
+ ```
56
+
57
+ ## Update
58
+
59
+ ```bash
60
+ dot update
61
+ ```
62
+
63
+ ## Next steps
64
+
65
+ 1. Run `dot learn` to take a guided tour.
66
+ 2. Add your own tweaks in `~/.config/shell/custom/`.
67
+ 3. Read the [Utilities and `dot` CLI](../reference/UTILS.md) reference.
68
+
69
+ ---
70
+
71
+ ## Advanced
72
+
73
+ ### Local source install
74
+
75
+ Clone the repo first, then run the installer from your local copy:
76
+
77
+ ```bash
78
+ git clone https://github.com/sebastienrousseau/dotfiles.git ~/.dotfiles
79
+ cd ~/.dotfiles
80
+ ./install.sh
81
+ ```
82
+
83
+ ### Minimal install
84
+
85
+ Install only shells and core tools. This skips editor and terminal extras:
86
+
87
+ ```bash
88
+ ./install.sh --minimal
89
+ ```
90
+
91
+ ### Non-interactive install
92
+
93
+ Use this mode for CI or scripts that run without user input:
94
+
95
+ ```bash
96
+ DOTFILES_SILENT=1 DOTFILES_NONINTERACTIVE=1 \
97
+ bash -c "$(
98
+ curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh
99
+ )"
100
+ ```
101
+
102
+ ### Nix
103
+
104
+ ```bash
105
+ nix develop ~/.dotfiles/nix
106
+ nix profile install ~/.dotfiles/nix#dot-utils
107
+ ```
108
+
109
+ ### Offline bundle
110
+
111
+ On a machine with internet access, create a bundle:
112
+
113
+ ```bash
114
+ dot bundle ~/Downloads
115
+ ```
116
+
117
+ Copy the archive to the target machine. Then unpack and install:
118
+
119
+ ```bash
120
+ tar --zstd -xf dotfiles_offline_bundle_*.tar.zst -P
121
+ cd ~/.dotfiles
122
+ ./install.sh --force
123
+ ```
124
+
125
+ ### Uninstall
126
+
127
+ ```bash
128
+ chezmoi purge
129
+ rm -rf ~/.dotfiles
130
+ rm -rf ~/.local/share/chezmoi ~/.local/share/dotfiles.log
131
+ ```
132
+
133
+ ### Signed contributions
134
+
135
+ All commits must be signed. See [Contributing](../../CONTRIBUTING.md) for details.
136
+
137
+ ---
138
+
139
+ - [Troubleshooting](TROUBLESHOOTING.md)
140
+ - [Support matrix](../reference/SUPPORT_MATRIX.md)
@@ -0,0 +1,52 @@
1
+ # Neovim
2
+
3
+ ## Modern Core
4
+ - **Requirement**: Neovim >= 0.11.2. The config checks this at startup.
5
+ - **Configuration**: Modular, lazy-loaded configuration based on `lazy.nvim`.
6
+ - **Completion**: `blink.cmp` for fast, keystroke-level completion with LSP, snippets, and path sources.
7
+ - **UI**: Snacks.nvim dashboard, notifications, status line, buffer line, and file explorer.
8
+ - **LSP**: Full LSP support for diagnostics, code actions, and more, managed by `mason.nvim`.
9
+
10
+ ## Language Support
11
+ - **Rust**: Out-of-the-box support with `rustaceanvim`.
12
+ - **Python**: Full support with `basedpyright`, `ruff`, and `venv-selector`.
13
+ - **Web**: Support for web development with `prettier` and `eslint`.
14
+
15
+ ## AI Integration
16
+ - **Copilot**: `copilot.lua` for code completion. Run `:Copilot auth` to sign in.
17
+ - **Copilot Chat**: AI sidebar for asking questions and getting help (`<leader>cc`).
18
+
19
+ ## VS Code Parity
20
+ - **Problem Panel**: `trouble.nvim` for a VS Code-like problems panel (`<leader>xx`).
21
+ - **Search & Replace**: `nvim-spectre` for project-wide search and replace (`<leader>S`).
22
+ - **Auto-Pairs**: Automatically closes brackets and pairs (via `blink.cmp` auto-brackets).
23
+ - **TODOs**: Highlights `TODO` and `FIXME` comments.
24
+ - **Session**: Auto-restores your last session.
25
+ - **Snippets**: Native `vim.snippet` engine (Neovim 0.11+).
26
+
27
+ ## Keybindings
28
+ | Key | Action |
29
+ | --- | --- |
30
+ | `<Space>ff` | Find Files |
31
+ | `<Space>fg` | Grep (Search) text |
32
+ | `<Space>fb` | File browser |
33
+ | `<Space>fp` | Projects |
34
+ | `<Space>e` | Toggle File Explorer |
35
+ | `<Space>a` | Add file to Harpoon |
36
+ | `<Ctrl>e` | Open Harpoon menu |
37
+ | `gd` | Go to Definition |
38
+ | `gr` | Go to References |
39
+ | `<leader>ca` | Code actions |
40
+ | `<leader>cf` | Format code |
41
+ | `<leader>cr` | Rename symbol |
42
+ | `<leader>tt` | Toggle terminal |
43
+ | `<leader>tn` | Test nearest |
44
+ | `<leader>tf` | Test file |
45
+ | `<leader>ts` | Test suite |
46
+ | `<F5>` | Continue (Debug) |
47
+ | `<F10>` | Step over (Debug) |
48
+ | `<F11>` | Step into (Debug) |
49
+ | `<F12>` | Step out (Debug) |
50
+ | `<leader>cc` | Toggle Copilot Chat |
51
+ | `<leader>xx` | Toggle Diagnostics (Trouble) |
52
+ | `<leader>S` | Toggle Spectre (Search/Replace) |
@@ -0,0 +1,222 @@
1
+ # Theming Guide
2
+
3
+ The dotfiles ship a wallpaper-driven theme system that generates terminal color palettes directly from wallpaper images using K-Means clustering in CIELAB color space. One command changes the terminal, editor, window manager, GTK, desktop environment, wallpaper, and browser-facing color mode in under a second.
4
+
5
+ Themes are not hand-crafted — they are extracted from whatever wallpapers are available on the system.
6
+
7
+ ## How Themes Work
8
+
9
+ Wallpapers are the source of truth. The system discovers wallpapers from two locations:
10
+
11
+ 1. **System wallpapers** — platform-native (macOS `/System/Library/Desktop Pictures/`, Linux `/usr/share/backgrounds/`)
12
+ 2. **Custom wallpapers** — user-provided in `~/Pictures/Wallpapers/` (custom overrides system)
13
+
14
+ `extract-theme.py` extracts dominant colors from each wallpaper using K-Means clustering in CIELAB color space, then generates a full terminal palette (16 ANSI colors, accent, bg/fg, panel, border) with WCAG contrast enforcement.
15
+
16
+ `rebuild-themes.sh` orchestrates discovery → extraction → assembly into `.chezmoidata/themes.toml`. Themes are cached in `~/.cache/dotfiles/themes/` and only regenerated when wallpapers change.
17
+
18
+ The `theme` key in `.chezmoidata.toml` controls the active theme. Every template references the active theme's data through `{{ $t := index .themes .theme }}`.
19
+
20
+ ## Switching Themes
21
+
22
+ ### Interactive Picker
23
+
24
+ ```bash
25
+ dot theme
26
+ ```
27
+
28
+ Opens an fzf picker listing every paired wallpaper theme (themes that have both `-dark` and `-light` variants). Two columns: **WALLPAPER** name and **SOURCE** (System or Custom). The current theme is marked with `✓` and `◀`. Select one and press Enter.
29
+
30
+ ### Direct Switch
31
+
32
+ ```bash
33
+ dot theme tahoe-dark
34
+ ```
35
+
36
+ Sets the theme immediately. Regenerates configs and reloads running applications.
37
+
38
+ ### Rebuild Themes
39
+
40
+ ```bash
41
+ dot theme rebuild # incremental (uses cache for unchanged wallpapers)
42
+ dot theme rebuild --force # full regeneration
43
+ dot theme rebuild --list # discover wallpapers without rebuilding
44
+ ```
45
+
46
+ Discovers wallpapers from system + custom paths, runs K-Means extraction in parallel (4 jobs), caches generated themes in `~/.cache/dotfiles/themes/`, and writes `.chezmoidata/themes.toml`. Custom wallpapers override system wallpapers on name collision.
47
+
48
+ ### Under the Hood: dot-theme-sync
49
+
50
+ `dot-theme-sync` handles the full switching pipeline:
51
+
52
+ 1. Writes the new theme name into `.chezmoidata.toml` (and `chezmoi.toml` if present).
53
+ If those files drift, `dot-theme-sync` now resynchronizes them before rendering because `chezmoi.toml` `[data]` overrides the source data file.
54
+ 2. Runs a targeted `chezmoi apply` on theme-dependent config files only -- much faster than a full apply.
55
+ 3. Signals running applications to reload and coordinates browser-facing theme state:
56
+
57
+ ```bash
58
+ dot-theme-sync # Reload current theme
59
+ dot-theme-sync macos-wave-light # Switch to a new theme
60
+ dot-theme-sync --full # Full chezmoi apply instead of targeted
61
+ ```
62
+
63
+ ## What Changes
64
+
65
+ Each theme switch touches these applications:
66
+
67
+ | Application | Mechanism | What Changes |
68
+ | :--- | :--- | :--- |
69
+ | **Ghostty** | `chezmoi apply` + macOS app-support sync + DBus `reload-config` or runtime signal fallback | Background, foreground, all 16 ANSI colors, cursor |
70
+ | **Tmux** | `chezmoi apply` + `source-file` | Status bar colors, pane borders, mode indicators |
71
+ | **Niri** | `chezmoi apply` + `load-config-file` IPC | Window borders, focus ring, inactive tint |
72
+ | **Desktop (macOS)** | `osascript` + `defaults write` + `killall` | System appearance (Light/Dark), accent color, highlight color; forces SystemUIServer/Dock/cfprefsd refresh |
73
+ | **Wallpaper (macOS)** | `osascript` System Events | Desktop wallpaper set across all displays |
74
+ | **Wallpaper (Linux)** | `gsettings` / `dms` / `swaybg` / `feh` | HEIC auto-converted to PNG; `picture-uri` and `picture-uri-dark` set separately |
75
+ | **Desktop (Linux/GNOME)** | `chezmoi apply` + `gsettings` | Theme name, icon theme, color scheme preference |
76
+ | **Safari / Chrome / Edge** | Native browser appearance follows desktop theme | Browser chrome stays aligned when using the default/native browser theme |
77
+ | **Firefox** | `chezmoi apply` on `~/.config/firefox/user.js` | Website color scheme preference follows the active dot theme; link that file into a Firefox profile to enforce it |
78
+ | **DMS** | `sed -i` on settings.json + IPC | Stock theme mapped to accent family, dark/light mode |
79
+ | **Neovim** | `--remote-expr` Lua eval over socket | Colorscheme, style variant, background mode |
80
+ | **VS Code** | `chezmoi apply` on `settings.json` | `workbench.colorTheme` value |
81
+ | **Alacritty** | `chezmoi apply` | Full color block regeneration |
82
+ | **Kitty** | `chezmoi apply` | Full color block regeneration |
83
+ | **WezTerm** | `chezmoi apply` | Color scheme in Lua config |
84
+
85
+ ## Dark/Light Toggle
86
+
87
+ ```bash
88
+ dot theme toggle
89
+ ```
90
+
91
+ Toggles between the dark and light variant of the current theme family. A theme named `macos-tahoe-dark` toggles to `macos-tahoe-light`, and vice versa.
92
+
93
+ ## Theme Families
94
+
95
+ Available themes depend on your system. Run `dot theme list` to see what's discovered. On macOS Sonoma, you'll see ~150+ themes from system wallpapers. Custom wallpapers in `~/Pictures/Wallpapers/` add more.
96
+
97
+ ### Rebuilding themes
98
+
99
+ When wallpapers change (new system update, new custom wallpapers), regenerate:
100
+
101
+ ```bash
102
+ dot theme rebuild # Regenerate (uses cache for unchanged wallpapers)
103
+ dot theme rebuild --force # Force full regeneration
104
+ dot theme rebuild --list # List discovered wallpapers without rebuilding
105
+ ```
106
+
107
+ ## What works without wallpapers
108
+
109
+ Theme switching is a two-tier system:
110
+
111
+ **Core (always works)** — ships in the repo, no setup needed:
112
+ - Terminal colors (Ghostty, Alacritty, Kitty, WezTerm, tmux)
113
+ - Editor themes (Neovim colorscheme, VS Code)
114
+ - macOS dark/light mode and accent color
115
+ - Linux GNOME color-scheme, GTK theme, icon theme
116
+ - Browser color mode (Safari, Chrome, Firefox)
117
+
118
+ **Wallpapers (optional)** — user-provided, enhances the theme:
119
+ - Desktop wallpaper matched to the active theme
120
+ - Requires `~/Pictures/Wallpapers/` with files named `macos-NAME-dark.heic`
121
+
122
+ If no wallpapers are present, `dot theme` applies all core changes and skips the wallpaper step. No errors, no manual config.
123
+
124
+ ## Wallpapers (optional)
125
+
126
+ Wallpapers are not shipped in the repo. Each user sources their own and places them in `~/Pictures/Wallpapers/`:
127
+
128
+ ```
129
+ macos-tahoe-dark.heic
130
+ macos-tahoe-light.heic
131
+ ```
132
+
133
+ The naming convention is `macos-NAME-APPEARANCE.heic` (or `.jpg`/`.png`). The theme picker marks themes with matching wallpapers as `[W]`.
134
+
135
+ ### Wallpaper guidelines
136
+
137
+ - **Resolution**: 6016x6016 recommended (matches Apple's native resolution)
138
+ - **Format**: `.heic` preferred on macOS, `.png`/`.jpg` also supported
139
+ - **Brightness**: dark/light pairs targeting a golden ratio (1.618) relationship give balanced contrast across displays
140
+
141
+ ### Platform behavior
142
+
143
+ | Platform | Wallpaper support | Mechanism |
144
+ |---|---|---|
145
+ | **macOS** | `.heic`, `.jpg`, `.png` | `osascript` (all desktops) |
146
+ | **Linux (GNOME)** | `.png`, `.jpg` (`.heic` auto-converted) | `gsettings picture-uri` + `picture-uri-dark` |
147
+ | **Linux (Wayland)** | `.png`, `.jpg` (`.heic` auto-converted) | `swaybg`, `feh`, or Niri/DMS IPC |
148
+ | **WSL** | Not applicable | No compositor; terminal colors still apply |
149
+
150
+ On Linux, `.heic` files are automatically converted to `.png` using `magick`, `heif-convert`, or `convert` (whichever is available). The `.png` is cached and only regenerated when the source `.heic` changes.
151
+
152
+ ### Using your OS default wallpapers
153
+
154
+ If you don't provide custom wallpapers, your OS keeps its current desktop wallpaper. The theme still applies all color changes (terminal, editor, accent, dark/light mode). This is the expected default for most users.
155
+
156
+ ## Build Artifacts
157
+
158
+ All build caches (Cargo, Go, pip, uv, Zig) are redirected to `/tmp/builds/` via environment variables in `mise.toml` and `cargo/config.toml`. The directory is created on shell init via `fish/conf.d/env.fish`. Build artifacts are cleared on reboot.
159
+
160
+ ## Troubleshooting
161
+
162
+ ### Theme switch did not apply
163
+
164
+ Run a full apply to force all configs:
165
+
166
+ ```bash
167
+ dot-theme-sync --full
168
+ ```
169
+
170
+ ### Ghostty did not reload
171
+
172
+ Ghostty reloads via DBus (`com.mitchellh.ghostty` / `reload-config`). If DBus is unavailable, the fallback sends `SIGUSR2` to the main process and also matches the macOS app bundle path when needed. Verify Ghostty is running:
173
+
174
+ ```bash
175
+ pgrep -x ghostty
176
+ ```
177
+
178
+ On macOS, Ghostty may also read `~/Library/Application Support/com.mitchellh.ghostty/config`. `dot-theme-sync` now mirrors the regenerated XDG config into that location before reloading so the app-support override cannot keep an older palette active.
179
+
180
+ ### Neovim did not change colors
181
+
182
+ `dot-theme-sync` finds Neovim server sockets at `/tmp/nvim*/0` and `$XDG_RUNTIME_DIR/nvim.*.0`. If Neovim runs with a custom `--listen` path, the auto-discovery misses it. Restart Neovim to pick up the new theme from the regenerated config.
183
+
184
+ ### GTK theme looks wrong
185
+
186
+ GTK theme names must match installed themes exactly. Catppuccin themes use names like `catppuccin-mocha-blue-standard+default`. Install the matching GTK theme package or fall back to `Adwaita-dark` / `Adwaita`.
187
+
188
+ ### macOS accent or appearance did not update
189
+
190
+ `dot-theme-sync` applies macOS appearance using `osascript` and accent via:
191
+
192
+ ```bash
193
+ defaults write -g AppleAccentColor -int <value>
194
+ ```
195
+
196
+ `dot-theme-sync` now kills `cfprefsd`, `SystemUIServer`, `Dock`, and `System Settings` after writing accent/highlight defaults to force an immediate refresh. If the UI still does not update, close and reopen System Settings.
197
+
198
+ ### Browser theme did not change
199
+
200
+ Safari, Chrome, and Edge are coordinated through the desktop theme, so custom browser themes can override what `dot-theme-sync` is trying to align. Switch those browsers back to their native/default theme if you want them to track macOS or GTK automatically.
201
+
202
+ Firefox uses the managed file at `~/.config/firefox/user.js`. Link that file into your active Firefox profile as `user.js` if you want `dot-theme-sync` to control website `prefers-color-scheme` behavior:
203
+
204
+ ```bash
205
+ ln -sf ~/.config/firefox/user.js ~/.mozilla/firefox/<profile>/user.js
206
+ ```
207
+
208
+ ### tmux shows old colors
209
+
210
+ Tmux reloads via `source-file`. If TPM plugins override colors, run:
211
+
212
+ ```bash
213
+ tmux source-file ~/.config/tmux/tmux.conf
214
+ ```
215
+
216
+ ### Checking the active theme
217
+
218
+ ```bash
219
+ grep '^theme = ' ~/.dotfiles/.chezmoidata.toml
220
+ ```
221
+
222
+ This prints the current theme name. Cross-reference with `dot theme list` for available options.
@@ -0,0 +1,148 @@
1
+ # Troubleshooting
2
+
3
+ Quick checks for common issues.
4
+
5
+ ## Install and update
6
+
7
+ **Problem:** Install script fails immediately
8
+ - Verify that `git` and `curl` are installed.
9
+ - Check internet connectivity.
10
+ - Try running with verbose output: `bash -x install.sh`
11
+
12
+ **Problem:** Chezmoi apply fails
13
+ - Re-run `chezmoi apply` to re-sync state.
14
+ - Check for merge conflicts: `chezmoi diff`
15
+ - If hooks fail, check `~/.local/share/dotfiles.log` for details.
16
+ - For non-interactive sessions, force apply to avoid TTY prompts: `DOTFILES_NONINTERACTIVE=1 dot apply --force`
17
+
18
+ **Problem:** Packages fail to install
19
+ - macOS: Verify Homebrew is installed and up to date (`brew update`)
20
+ - Linux: Run `sudo apt-get update` first
21
+ - Verify you have sufficient permissions
22
+
23
+ ## Shell startup
24
+
25
+ **Problem:** Shell is slow to start
26
+ - Run `dot benchmark` to measure startup time
27
+ - Profile with `zsh -x` to trace startup
28
+ - Check for slow plugins or large history files
29
+
30
+ **Problem:** Aliases or functions not available
31
+ - Run `chezmoi apply` to regenerate config files
32
+ - Source your shell config: `source ~/.zshrc`
33
+ - Verify the relevant tool is installed
34
+
35
+ **Problem:** `dot doctor` prints a directory listing instead of diagnostics
36
+ - This usually means `dot` was shadowed by a navigation alias in the current shell session.
37
+ - Check resolution: `type -a dot`
38
+ - Fix current session: `unalias dot 2>/dev/null || true && exec zsh`
39
+ - Validate after reload: `dot doctor`
40
+
41
+ **Problem:** Zsh reports it cannot write `.zwc` files
42
+ - Cause: stale read-only zsh cache files after an upgrade.
43
+ - Remove stale caches:
44
+ - `find ~/.config/shell ~/.config/zsh -type f -name '*.zwc' -delete`
45
+ - Reload shell: `exec zsh`
46
+ - Re-run health checks: `dot doctor`
47
+
48
+ **Problem:** Shell crashes on startup
49
+ - Temporarily move `~/.zshrc` and retry to isolate the fault
50
+ - Check for syntax errors: `zsh -n ~/.zshrc`
51
+ - Review recent changes: `chezmoi diff`
52
+
53
+ ## Secrets and encryption
54
+
55
+ **Problem:** Encrypted files fail to decrypt
56
+ - Confirm `~/.config/chezmoi/key.txt` exists.
57
+ - Verify the key matches the one used for encryption.
58
+ - Re-initialize with `dot secrets-init` if needed.
59
+
60
+ **Problem:** Age encryption not working
61
+ - Verify `age` is installed: `command -v age`
62
+ - Check key permissions: `ls -la ~/.config/chezmoi/key.txt` (should be 600)
63
+
64
+ ## Neovim
65
+
66
+ **Problem:** Plugins fail to load
67
+ - Run `:checkhealth` in Neovim
68
+ - Update plugins: `:Lazy sync`
69
+ - Check for missing dependencies (node, python, etc.)
70
+
71
+ **Problem:** LSP not working
72
+ - Install required language servers
73
+ - Check `:LspInfo` for status
74
+ - Review `:LspLog` for errors
75
+
76
+ ## Git
77
+
78
+ **Problem:** Git aliases not working
79
+ - Check if Git config is applied: `git config --list`
80
+ - Re-apply dotfiles: `chezmoi apply`
81
+
82
+ **Problem:** Delta (diff pager) not showing colors
83
+ - Verify `delta` is installed
84
+ - Confirm your terminal supports 256 colors
85
+
86
+ ## Kubernetes tools
87
+
88
+ **Problem:** kubectl context issues
89
+ - List contexts: `kubectl config get-contexts`
90
+ - Switch context: `kubectx <context-name>`
91
+ - Check kubeconfig: `echo $KUBECONFIG`
92
+
93
+ **Problem:** Minikube won't start
94
+ - Verify Docker is running
95
+ - Try: `minikube delete && minikube start`
96
+ - Check logs: `minikube logs`
97
+
98
+ ## Performance
99
+
100
+ **Problem:** High memory usage
101
+ - Look for runaway processes: `htop` or `btop`
102
+ - Review shell history size in atuin config
103
+ - Disable unused plugins
104
+
105
+ ## Common infrastructure failures
106
+
107
+ **Problem:** Nix isn't installed or commands not found
108
+ - Ensure you have followed the installation guide: `curl -L https://nixos.org/nix/install | sh`
109
+ - On Linux, you might need to enable experimental features in `~/.config/nix/nix.conf`:
110
+ `experimental-features = nix-command flakes`
111
+ - Verify the daemon is running: `ps aux | grep nix-daemon`
112
+
113
+ **Problem:** Systemd isn't available (mostly WSL2)
114
+ - Dotfiles functions that rely on systemd (like `pueue` management) will fallback to direct execution.
115
+ - To enable systemd in WSL2, add this to `/etc/wsl.conf` (requires Windows 11 or latest WSL):
116
+ ```ini
117
+ [boot]
118
+ systemd=true
119
+ ```
120
+ - Restart WSL: `wsl.exe --shutdown`
121
+
122
+ **Problem:** GPG or SSH signing fails
123
+ - Check if your key is present: `gpg --list-secret-keys` or `ssh-add -l`
124
+ - Ensure `GPG_TTY` is set (dotfiles does this automatically in `rc.d`).
125
+ - For hardware keys (Yubikey), ensure `pcscd` is running on Linux.
126
+
127
+ ## Advanced Troubleshooting
128
+
129
+ ### WSL2 and Nix Integration Issues
130
+
131
+ For complex WSL2 edge cases, Nix integration problems, and recovery procedures, see the comprehensive guide:
132
+ **[WSL2 & Nix Troubleshooting Guide](WSL2_NIX_TROUBLESHOOTING.md)**
133
+
134
+ This guide covers:
135
+ - WSL2 filesystem and networking edge cases
136
+ - Nix installation and flake management issues
137
+ - Complete system recovery procedures
138
+ - Performance optimization for WSL2/Nix environments
139
+ - Cross-platform migration scenarios
140
+
141
+ ## Still stuck
142
+
143
+ Open an issue with:
144
+ - OS + version
145
+ - Output of `dot doctor` (if available)
146
+ - Relevant log snippets from `~/.local/share/dotfiles.log`
147
+ - Steps to reproduce the issue
148
+ - For WSL2/Nix issues: Include diagnostic report from the advanced guide