@sebastienrousseau/dotfiles 0.2.499 → 0.2.501

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 (567) hide show
  1. package/CHANGELOG.md +452 -0
  2. package/LICENSE +1283 -0
  3. package/README.md +322 -0
  4. package/docs/.vitepress/reports/localization-readability-audit.md +73 -0
  5. package/docs/AI.md +108 -0
  6. package/docs/CNAME +1 -0
  7. package/docs/COPYRIGHT +4 -3
  8. package/docs/NAMING_CONVENTIONS.md +102 -0
  9. package/docs/README.md +82 -0
  10. package/docs/_config.yml +59 -0
  11. package/docs/adr/ADR-001-ci-cd-pipeline.md +118 -0
  12. package/docs/adr/ADR-002-shell-performance.md +130 -0
  13. package/docs/adr/ADR-003-security-first.md +158 -0
  14. package/docs/adr/ADR-004-cli-architecture.md +171 -0
  15. package/docs/adr/ADR-005-chezmoi-choice.md +99 -0
  16. package/docs/adr/ADR-006-shell-selection.md +124 -0
  17. package/docs/adr/ADR-007-multi-shell-parity.md +62 -0
  18. package/docs/adr/ADR-008-alias-system-architecture.md +95 -0
  19. package/docs/adr/ADR-009-wallpaper-driven-theming.md +131 -0
  20. package/docs/adr/ADR-010-starship-transient-prompt.md +144 -0
  21. package/docs/adr/ADR-011-nushell-tier3-keep.md +144 -0
  22. package/docs/adr/README.md +39 -0
  23. package/docs/architecture/ARCHITECTURE.md +117 -0
  24. package/docs/architecture/INTEROP.md +44 -0
  25. package/docs/architecture/REPO_LAYOUT.md +241 -0
  26. package/docs/architecture/WALKTHROUGH.md +86 -0
  27. package/docs/architecture/fleet-deployment.md +77 -0
  28. package/docs/archive/EUXIS_2026_REVIEW.md +127 -0
  29. package/docs/archive/LEGACY_ROADMAP.md +160 -0
  30. package/docs/archive/MILESTONE_v0.2.493.md +47 -0
  31. package/docs/{PLAN.md → archive/PLAN.md} +50 -12
  32. package/docs/archive/REPO_AUDIT.md +31 -0
  33. package/docs/guides/INSTALL.md +144 -0
  34. package/docs/guides/NEOVIM_IDE_GUIDE.md +61 -0
  35. package/docs/guides/THEMING.md +230 -0
  36. package/docs/guides/TROUBLESHOOTING.md +176 -0
  37. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +792 -0
  38. package/docs/index.md +43 -0
  39. package/docs/interop/A2A.md +39 -0
  40. package/docs/interop/POWERSHELL.md +102 -0
  41. package/docs/manual/00-introduction.md +89 -0
  42. package/docs/manual/01-concepts/01-architecture.md +138 -0
  43. package/docs/manual/01-concepts/02-trust-model.md +182 -0
  44. package/docs/manual/01-concepts/03-theme-engine.md +186 -0
  45. package/docs/manual/01-concepts/04-fleet.md +148 -0
  46. package/docs/manual/01-concepts/05-self-healing.md +204 -0
  47. package/docs/manual/02-tutorials/01-first-install.md +197 -0
  48. package/docs/manual/02-tutorials/02-add-wallpaper.md +216 -0
  49. package/docs/manual/02-tutorials/03-create-profile.md +244 -0
  50. package/docs/manual/02-tutorials/04-encrypt-secret.md +281 -0
  51. package/docs/manual/02-tutorials/05-deploy-fleet.md +283 -0
  52. package/docs/manual/03-reference/01-dot-cli.md +417 -0
  53. package/docs/manual/03-reference/02-config-files.md +265 -0
  54. package/docs/manual/03-reference/03-environment.md +124 -0
  55. package/docs/manual/03-reference/04-templates.md +190 -0
  56. package/docs/manual/03-reference/05-feature-flags.md +128 -0
  57. package/docs/manual/04-cookbook/01-recipes.md +285 -0
  58. package/docs/manual/04-cookbook/02-troubleshooting.md +351 -0
  59. package/docs/manual/04-cookbook/03-faq.md +175 -0
  60. package/docs/manual/05-appendices/A-platform-matrix.md +101 -0
  61. package/docs/manual/05-appendices/B-security-checklist.md +84 -0
  62. package/docs/manual/05-appendices/C-glossary.md +40 -0
  63. package/docs/manual/05-appendices/D-bibliography.md +58 -0
  64. package/docs/manual/05-appendices/E-license.md +38 -0
  65. package/docs/manual/_toc.yml +58 -0
  66. package/docs/manual/command-index.md +62 -0
  67. package/docs/manual/concept-index.md +168 -0
  68. package/docs/operations/ATTESTATION.md +44 -0
  69. package/docs/operations/CI_CADENCE.md +107 -0
  70. package/docs/operations/CI_COMPOSITES.md +156 -0
  71. package/docs/operations/COMPLETIONS.md +123 -0
  72. package/docs/operations/COVERAGE.md +148 -0
  73. package/docs/operations/DRIFT.md +107 -0
  74. package/docs/operations/MAINTENANCE.md +63 -0
  75. package/docs/operations/MIGRATION.md +109 -0
  76. package/docs/operations/OPERATIONS.md +188 -0
  77. package/docs/operations/PERFORMANCE.md +133 -0
  78. package/docs/operations/RELIABILITY.md +122 -0
  79. package/docs/{ROADMAP.md → operations/ROADMAP.md} +57 -39
  80. package/docs/operations/TESTING.md +199 -0
  81. package/docs/operations/TRACEABILITY.md +35 -0
  82. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +65 -0
  83. package/docs/operations/VERSION_SYNC.md +393 -0
  84. package/docs/reference/ALIASES.md +131 -0
  85. package/docs/reference/ALIASES_CHEATSHEET.md +32 -0
  86. package/docs/reference/ALIASES_DEPRECATIONS.md +13 -0
  87. package/docs/reference/FEATURES.md +66 -0
  88. package/docs/reference/FONTS.md +112 -0
  89. package/docs/reference/PROFILES.md +69 -0
  90. package/docs/reference/SCREENSHOTS.md +121 -0
  91. package/docs/reference/SCRIPTS.md +71 -0
  92. package/docs/reference/SUPPORT_MATRIX.md +80 -0
  93. package/docs/reference/THEMES.md +117 -0
  94. package/docs/reference/TOOLS.md +109 -0
  95. package/docs/reference/UTILS.md +155 -0
  96. package/docs/security/AI_ACT_COMPLIANCE.md +94 -0
  97. package/docs/security/AUDIT_BYPASS.md +103 -0
  98. package/docs/security/AUTOMATION_SECRETS.md +26 -0
  99. package/docs/security/CI_EGRESS_ALLOWLIST.md +127 -0
  100. package/docs/security/COMPLIANCE.md +458 -0
  101. package/docs/security/DEPS_DEV_EXCEPTIONS.md +86 -0
  102. package/docs/security/ENCRYPTION.md +57 -0
  103. package/docs/security/FMEA.md +159 -0
  104. package/docs/security/HISTORY_FILTERING.md +132 -0
  105. package/docs/security/INCIDENT_RESPONSE.md +579 -0
  106. package/docs/security/INSTALL_VERIFICATION.md +122 -0
  107. package/docs/security/KEYS.md +49 -0
  108. package/docs/security/KEY_ROTATION.md +223 -0
  109. package/docs/security/MCP_POLICY.md +78 -0
  110. package/docs/security/POLICY_RELEASES.md +37 -0
  111. package/docs/security/README.md +28 -0
  112. package/docs/security/SCORECARD.md +80 -0
  113. package/docs/security/SECRETS.md +158 -0
  114. package/docs/security/SECURITY.md +45 -0
  115. package/docs/security/SECURITY_CHECKLIST.md +55 -0
  116. package/docs/security/SHELL_EXEMPTIONS.md +145 -0
  117. package/docs/security/SOUP_REGISTER.md +36 -0
  118. package/docs/security/THREAT_MODEL.md +130 -0
  119. package/docs/security/VERIFICATION_VALIDATION.md +228 -0
  120. package/docs/themes/README.md +10 -0
  121. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +30 -0
  122. package/docs/themes/hero-shot.svg +78 -0
  123. package/dot_config/.module-manifest.json +69 -0
  124. package/dot_config/ai/identity.md +23 -0
  125. package/dot_config/ai/patterns/architect.md +16 -0
  126. package/dot_config/ai/patterns/hardener.md +15 -0
  127. package/dot_config/ai/patterns/refactor.md +15 -0
  128. package/dot_config/aider/aider.conf.yml +32 -0
  129. package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
  130. package/dot_config/ansible/ansible.cfg +11 -0
  131. package/dot_config/atuin/config.toml.tmpl +47 -0
  132. package/dot_config/bat/config +23 -0
  133. package/dot_config/brave-flags.conf.tmpl +7 -0
  134. package/dot_config/btop/btop.conf +16 -0
  135. package/dot_config/btop/themes/tokyonight.theme +34 -0
  136. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  137. package/dot_config/claude/mcp_servers.json +20 -0
  138. package/dot_config/containers/containers.conf +14 -0
  139. package/dot_config/curl/dot_curlrc +18 -0
  140. package/dot_config/dlv/config.yml +39 -0
  141. package/dot_config/docker/config.json +15 -0
  142. package/dot_config/dotfiles/agent-card.json +29 -0
  143. package/dot_config/dotfiles/agent-profiles.json +92 -0
  144. package/dot_config/dotfiles/boot/README.md +13 -0
  145. package/dot_config/dotfiles/grub/README.md +13 -0
  146. package/dot_config/dotfiles/lock/README.md +13 -0
  147. package/dot_config/dotfiles/mcp-lock.json +33 -0
  148. package/dot_config/dotfiles/mcp-policy.json +52 -0
  149. package/dot_config/dotfiles/mcp-registry.json +47 -0
  150. package/dot_config/dotfiles/model-registry.json +20 -0
  151. package/dot_config/dotfiles/policy-bundles.json +38 -0
  152. package/dot_config/dotfiles/prompt-registry.json +16 -0
  153. package/dot_config/dotfiles/versions.env +18 -0
  154. package/dot_config/duf/duf.conf +6 -0
  155. package/dot_config/duti/defaults.duti +5 -0
  156. package/dot_config/emoji/emoji.txt +34 -0
  157. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  158. package/dot_config/environment.d/90-wayland.conf +19 -0
  159. package/dot_config/fastfetch/config.jsonc +28 -0
  160. package/dot_config/firefox/user.js.tmpl +58 -0
  161. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  162. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  163. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  164. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  165. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  166. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  167. package/dot_config/fish/conf.d/init.fish.tmpl +172 -0
  168. package/dot_config/fish/config.fish.tmpl +44 -0
  169. package/dot_config/fish/fish_plugins +1 -0
  170. package/dot_config/fish/functions/_.fish +3 -0
  171. package/dot_config/fish/functions/_cached_eval.fish +131 -0
  172. package/dot_config/fish/functions/_cached_eval_clear.fish +17 -0
  173. package/dot_config/fish/functions/als.fish +46 -0
  174. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  175. package/dot_config/fish/functions/c.fish +3 -0
  176. package/dot_config/fish/functions/cat.fish +9 -0
  177. package/dot_config/fish/functions/d.fish +7 -0
  178. package/dot_config/fish/functions/dot.fish +34 -0
  179. package/dot_config/fish/functions/h.fish +3 -0
  180. package/dot_config/fish/functions/l.fish +7 -0
  181. package/dot_config/fish/functions/la.fish +7 -0
  182. package/dot_config/fish/functions/ll.fish +7 -0
  183. package/dot_config/fish/functions/log_error.fish +13 -0
  184. package/dot_config/fish/functions/log_info.fish +13 -0
  185. package/dot_config/fish/functions/lr.fish +7 -0
  186. package/dot_config/fish/functions/lra.fish +7 -0
  187. package/dot_config/fish/functions/ls.fish +7 -0
  188. package/dot_config/fish/functions/lt.fish +7 -0
  189. package/dot_config/fish/functions/lta.fish +7 -0
  190. package/dot_config/fish/functions/notify-run.fish +11 -0
  191. package/dot_config/fish/functions/q.fish +3 -0
  192. package/dot_config/fish/functions/silent-run.fish +7 -0
  193. package/dot_config/fish/functions/yy.fish +8 -0
  194. package/dot_config/flatpak/flatpak.list +4 -0
  195. package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
  196. package/dot_config/foot/foot.ini.tmpl +33 -0
  197. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  198. package/dot_config/fzf/fzf.zsh +48 -0
  199. package/dot_config/gem/gemrc +9 -0
  200. package/dot_config/gh/config.yml +12 -0
  201. package/dot_config/ghostty/config.tmpl +165 -0
  202. package/dot_config/git/allowed_signers.tmpl +18 -0
  203. package/dot_config/git/attributes +12 -0
  204. package/dot_config/git/commit-template +10 -0
  205. package/dot_config/git/hooks/executable_commit-msg +146 -0
  206. package/dot_config/git/ignore +27 -0
  207. package/dot_config/gnupg/gpg-agent.conf +11 -0
  208. package/dot_config/go/golangci.yml +118 -0
  209. package/dot_config/go/gopls.json +30 -0
  210. package/dot_config/goose/config.yaml +29 -0
  211. package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
  212. package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
  213. package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
  214. package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
  215. package/dot_config/htop/htoprc +20 -0
  216. package/dot_config/inputrc +2 -0
  217. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  218. package/dot_config/just/justfile +122 -0
  219. package/dot_config/k9s/config.yaml +65 -0
  220. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  221. package/dot_config/kanshi/config.tmpl +22 -0
  222. package/dot_config/karabiner/karabiner.json +14 -0
  223. package/dot_config/kitty/kitty.conf.tmpl +53 -0
  224. package/dot_config/lazydocker/config.yml +186 -0
  225. package/dot_config/lazygit/config.yml +35 -0
  226. package/dot_config/mako/config +47 -0
  227. package/dot_config/mas/masapps.txt +5 -0
  228. package/dot_config/micro/settings.json +3 -0
  229. package/dot_config/mimeapps.list +77 -0
  230. package/dot_config/minikube/config.json +13 -0
  231. package/dot_config/mise/config.toml +99 -0
  232. package/dot_config/mongosh/mongoshrc.js +68 -0
  233. package/dot_config/mpv/input.conf +47 -0
  234. package/dot_config/mpv/mpv.conf +47 -0
  235. package/dot_config/mycli/myclirc +67 -0
  236. package/dot_config/nano/nanorc +28 -0
  237. package/dot_config/ncdu/config +12 -0
  238. package/dot_config/niri/config.kdl.tmpl +327 -0
  239. package/dot_config/nushell/aliases.nu +18 -0
  240. package/dot_config/nushell/cached_eval.nu +80 -0
  241. package/dot_config/nushell/completions.nu.tmpl +52 -0
  242. package/dot_config/nushell/config.nu.tmpl +86 -0
  243. package/dot_config/nushell/env.nu.tmpl +102 -0
  244. package/dot_config/nushell/functions.nu.tmpl +17 -0
  245. package/dot_config/nvim/init.lua +18 -0
  246. package/dot_config/nvim/lazy-lock.json +58 -0
  247. package/dot_config/nvim/lua/config/autocmds.lua +107 -0
  248. package/dot_config/nvim/lua/config/keymaps.lua +92 -0
  249. package/dot_config/nvim/lua/config/lazy.lua +44 -0
  250. package/dot_config/nvim/lua/config/options.lua +49 -0
  251. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  252. package/dot_config/nvim/lua/plugins/coding.lua +216 -0
  253. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  254. package/dot_config/nvim/lua/plugins/dap.lua +412 -0
  255. package/dot_config/nvim/lua/plugins/editor.lua +55 -0
  256. package/dot_config/nvim/lua/plugins/git.lua +10 -0
  257. package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
  258. package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
  259. package/dot_config/nvim/lua/plugins/rust.lua +34 -0
  260. package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
  261. package/dot_config/nvim/lua/plugins/ui.lua +509 -0
  262. package/dot_config/paru/paru.conf +10 -0
  263. package/dot_config/pip/pip.conf.tmpl +32 -0
  264. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  265. package/dot_config/pueue/pueue.yml +34 -0
  266. package/dot_config/pypoetry/config.toml +6 -0
  267. package/dot_config/pyrightconfig.json +5 -0
  268. package/dot_config/raycast/README.md +13 -0
  269. package/dot_config/redis/redisclirc +41 -0
  270. package/dot_config/ripgrep/ripgreprc +21 -0
  271. package/dot_config/shell/00-core-paths.sh.tmpl +134 -0
  272. package/dot_config/shell/05-core-safety.sh +48 -0
  273. package/dot_config/shell/10-secrets.sh +41 -0
  274. package/dot_config/shell/40-fzf-defaults.sh.tmpl +17 -0
  275. package/dot_config/shell/40-ls-colors.sh +49 -0
  276. package/dot_config/shell/50-logic-functions-core.sh.tmpl +11 -0
  277. package/dot_config/shell/50-logic-functions.sh.tmpl +11 -0
  278. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +65 -0
  279. package/dot_config/shell/90-ux-aliases.sh.tmpl +121 -0
  280. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +55 -0
  281. package/dot_config/shell/Brewfile +207 -0
  282. package/dot_config/shell/Brewfile.cask +92 -0
  283. package/dot_config/shell/Brewfile.cli +127 -0
  284. package/dot_config/shell/README.md +284 -0
  285. package/dot_config/shell/als_data.txt.tmpl +65 -0
  286. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  287. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  288. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  289. package/dot_config/sops/dot_sops.yaml +23 -0
  290. package/dot_config/starship.toml.tmpl +202 -0
  291. package/dot_config/swaylock/config +43 -0
  292. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  293. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  294. package/dot_config/systemd/user/pueued.service +12 -0
  295. package/dot_config/systemd/user/ssh-agent.service +12 -0
  296. package/dot_config/task/Taskfile.yml +86 -0
  297. package/dot_config/tflint/tflint.hcl +9 -0
  298. package/dot_config/tmux/tmux.conf.tmpl +223 -0
  299. package/dot_config/topgrade.toml.tmpl +54 -0
  300. package/dot_config/user-dirs.dirs +10 -0
  301. package/dot_config/vscode/extensions.txt +11 -0
  302. package/dot_config/vscode/settings.json.tmpl +82 -0
  303. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  304. package/dot_config/waybar/style.css.tmpl +211 -0
  305. package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
  306. package/dot_config/wget/wgetrc +12 -0
  307. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  308. package/dot_config/yarn/yarnrc.yml +36 -0
  309. package/dot_config/yazi/keymap.toml +67 -0
  310. package/dot_config/yazi/theme.toml +102 -0
  311. package/dot_config/yazi/yazi.toml +40 -0
  312. package/dot_config/zathura/zathurarc +52 -0
  313. package/dot_config/zellij/config.kdl.tmpl +79 -0
  314. package/dot_config/zsh/dot_zprofile +7 -0
  315. package/dot_config/zsh/dot_zshenv +5 -0
  316. package/dot_config/zsh/dot_zshrc.tmpl +635 -0
  317. package/dot_config/zsh/rc.d/00-alias-shims.zsh +99 -0
  318. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
  319. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  320. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  321. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +214 -0
  322. package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
  323. package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
  324. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  325. package/dot_local/bin/executable_ai-update +195 -0
  326. package/dot_local/bin/executable_ai_core +152 -0
  327. package/dot_local/bin/executable_antigravity +11 -0
  328. package/dot_local/bin/executable_b64 +84 -0
  329. package/dot_local/bin/executable_bm +79 -0
  330. package/dot_local/bin/executable_cb +39 -0
  331. package/dot_local/bin/executable_dot +596 -0
  332. package/dot_local/bin/executable_dot-ai +36 -0
  333. package/dot_local/bin/executable_dot-bootstrap +77 -0
  334. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  335. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  336. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  337. package/dot_local/bin/executable_dot-theme-sync +952 -0
  338. package/dot_local/bin/executable_dot_completion +57 -0
  339. package/dot_local/bin/executable_dtags +28 -0
  340. package/dot_local/bin/executable_epoch +67 -0
  341. package/dot_local/bin/executable_extract +41 -0
  342. package/dot_local/bin/executable_gbd +52 -0
  343. package/dot_local/bin/executable_gd +42 -0
  344. package/dot_local/bin/executable_git-ai-commit +175 -0
  345. package/dot_local/bin/executable_git-ai-diff +169 -0
  346. package/dot_local/bin/executable_gl +101 -0
  347. package/dot_local/bin/executable_hash +161 -0
  348. package/dot_local/bin/executable_hashsum +160 -0
  349. package/dot_local/bin/executable_hex +115 -0
  350. package/dot_local/bin/executable_jsonv +78 -0
  351. package/dot_local/bin/executable_jwt +94 -0
  352. package/dot_local/bin/executable_kill-port +75 -0
  353. package/dot_local/bin/executable_lorem +118 -0
  354. package/dot_local/bin/executable_mkscript +35 -0
  355. package/dot_local/bin/executable_monitor +56 -0
  356. package/dot_local/bin/executable_myip +51 -0
  357. package/dot_local/bin/executable_notify +24 -0
  358. package/dot_local/bin/executable_open +38 -0
  359. package/dot_local/bin/executable_pw +27 -0
  360. package/dot_local/bin/executable_rec-start +46 -0
  361. package/dot_local/bin/executable_rec-stop +35 -0
  362. package/dot_local/bin/executable_regex +132 -0
  363. package/dot_local/bin/executable_start-niri +8 -0
  364. package/dot_local/bin/executable_tmux-sessionizer +314 -0
  365. package/dot_local/bin/executable_tour +177 -0
  366. package/dot_local/bin/executable_up +23 -0
  367. package/dot_local/bin/executable_update +142 -0
  368. package/dot_local/bin/executable_uuid +87 -0
  369. package/dot_local/bin/executable_win +32 -0
  370. package/dot_local/bin/executable_yamlv +57 -0
  371. package/dot_local/share/bash-completion/completions/dot +72 -0
  372. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  373. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  374. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  375. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  376. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  377. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  378. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  379. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  380. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  381. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  382. package/dot_local/share/man/man1/dot.1 +149 -0
  383. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  384. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  385. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  386. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  387. package/dot_local/share/zsh/completions/.keep +0 -0
  388. package/dot_local/share/zsh/completions/_dot +283 -0
  389. package/install.sh +350 -0
  390. package/package.json +1 -1
  391. package/scripts/ci/check-copyright-headers.sh +96 -0
  392. package/scripts/ci/check-dangerous-chmod.sh +19 -0
  393. package/scripts/ci/check-deps-dev.sh +236 -0
  394. package/scripts/ci/check-insecure-tls.sh +61 -0
  395. package/scripts/ci/check-regression-traceability.sh +67 -0
  396. package/scripts/ci/check-shell-preamble.sh +106 -0
  397. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  398. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  399. package/scripts/ci/run-coverage.sh +362 -0
  400. package/scripts/ci/validate-chezmoidata.sh +25 -0
  401. package/scripts/ci/validate-ci-config.sh +224 -0
  402. package/scripts/demo/record.sh +42 -0
  403. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  404. package/scripts/diagnostics/alias-governance.sh +137 -0
  405. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  406. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  407. package/scripts/diagnostics/benchmark.sh +381 -0
  408. package/scripts/diagnostics/conflicts.sh +72 -0
  409. package/scripts/diagnostics/doctor-unified.sh +38 -0
  410. package/scripts/diagnostics/doctor.sh +709 -0
  411. package/scripts/diagnostics/drift-dashboard.sh +201 -0
  412. package/scripts/diagnostics/health.sh +614 -0
  413. package/scripts/diagnostics/history-analysis.sh +85 -0
  414. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  415. package/scripts/diagnostics/perf.sh +452 -0
  416. package/scripts/diagnostics/scorecard.sh +118 -0
  417. package/scripts/diagnostics/secret-governance.sh +58 -0
  418. package/scripts/diagnostics/security-score.sh +438 -0
  419. package/scripts/diagnostics/smoke-test.sh +87 -0
  420. package/scripts/diagnostics/snapshot.sh +89 -0
  421. package/scripts/diagnostics/verify.sh +107 -0
  422. package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
  423. package/scripts/diagnostics/version-locks.sh +79 -0
  424. package/scripts/diagnostics/workstation-attestation.sh +186 -0
  425. package/scripts/docs/build-manual.sh +883 -0
  426. package/scripts/docs/check-manual.sh +213 -0
  427. package/scripts/dot/commands/agent.sh +474 -0
  428. package/scripts/dot/commands/ai.sh +481 -0
  429. package/scripts/dot/commands/aliases.sh +250 -0
  430. package/scripts/dot/commands/appearance.sh +80 -0
  431. package/scripts/dot/commands/core.sh +185 -0
  432. package/scripts/dot/commands/diagnostics.sh +229 -0
  433. package/scripts/dot/commands/fleet.sh +399 -0
  434. package/scripts/dot/commands/lint.sh +177 -0
  435. package/scripts/dot/commands/manual.sh +168 -0
  436. package/scripts/dot/commands/meta.sh +248 -0
  437. package/scripts/dot/commands/patterns.sh +54 -0
  438. package/scripts/dot/commands/restore.sh +231 -0
  439. package/scripts/dot/commands/secrets.sh +223 -0
  440. package/scripts/dot/commands/security.sh +76 -0
  441. package/scripts/dot/commands/tools.sh +469 -0
  442. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  443. package/scripts/dot/lib/bento.sh +50 -0
  444. package/scripts/dot/lib/log.sh +200 -0
  445. package/scripts/dot/lib/platform.sh +99 -0
  446. package/scripts/dot/lib/ui.sh +518 -0
  447. package/scripts/dot/lib/utils.sh +377 -0
  448. package/scripts/fonts/install-nerd-fonts.sh +68 -0
  449. package/scripts/fonts/patch-fonts.sh +35 -0
  450. package/scripts/git-hooks/install.sh +11 -0
  451. package/scripts/git-hooks/pre-commit +12 -0
  452. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  453. package/scripts/git-hooks/pre-push +92 -0
  454. package/scripts/git-hooks/prepare-commit-msg +29 -0
  455. package/scripts/lib/secrets_provider.sh +158 -0
  456. package/scripts/maintenance/check-updates.sh +131 -0
  457. package/scripts/ops/ai-setup.sh +55 -0
  458. package/scripts/ops/bundle.sh +77 -0
  459. package/scripts/ops/chaos.sh +49 -0
  460. package/scripts/ops/chezmoi-apply.sh +270 -0
  461. package/scripts/ops/chezmoi-diff.sh +15 -0
  462. package/scripts/ops/chezmoi-remove.sh +45 -0
  463. package/scripts/ops/chezmoi-update.sh +48 -0
  464. package/scripts/ops/heal-chezmoi.sh +86 -0
  465. package/scripts/ops/heal-system.sh +128 -0
  466. package/scripts/ops/heal-tools.sh +340 -0
  467. package/scripts/ops/heal.sh +222 -0
  468. package/scripts/ops/post-apply-repair.sh +106 -0
  469. package/scripts/ops/prewarm.sh +127 -0
  470. package/scripts/ops/release.sh +252 -0
  471. package/scripts/ops/rollback.sh +589 -0
  472. package/scripts/ops/setup.sh +137 -0
  473. package/scripts/ops/teleport.sh +33 -0
  474. package/scripts/qa/coverage-baseline.sh +60 -0
  475. package/scripts/qa/docs-coverage.sh +111 -0
  476. package/scripts/qa/powershell-contract.ps1 +95 -0
  477. package/scripts/qa/reliability-audit.sh +138 -0
  478. package/scripts/qa/traceability-coverage.sh +116 -0
  479. package/scripts/qa/validate-examples.sh +26 -0
  480. package/scripts/qa/wsl-contract.sh +11 -0
  481. package/scripts/release/package-policy-bundles.sh +125 -0
  482. package/scripts/secrets/age-init.sh +70 -0
  483. package/scripts/secrets/create-secrets-file.sh +45 -0
  484. package/scripts/secrets/encrypt-ssh-key.sh +43 -0
  485. package/scripts/security/backup.sh +57 -0
  486. package/scripts/security/dns-doh.sh +51 -0
  487. package/scripts/security/encryption-check.sh +54 -0
  488. package/scripts/security/enforce-policies.sh +334 -0
  489. package/scripts/security/firewall.sh +90 -0
  490. package/scripts/security/lock-configs.sh +57 -0
  491. package/scripts/security/lock-screen.sh +55 -0
  492. package/scripts/security/manage-secrets.sh +428 -0
  493. package/scripts/security/ssh-cert.sh +203 -0
  494. package/scripts/security/telemetry-kill.sh +50 -0
  495. package/scripts/security/usb-safety.sh +51 -0
  496. package/scripts/theme/apply-gnome-theme.sh +328 -0
  497. package/scripts/theme/extract-theme.py +677 -0
  498. package/scripts/theme/install-boot-logo.sh +62 -0
  499. package/scripts/theme/install-catppuccin-themes.sh +370 -0
  500. package/scripts/theme/install-cursors.sh +25 -0
  501. package/scripts/theme/install-file-icons.sh +26 -0
  502. package/scripts/theme/install-grub-theme.sh +61 -0
  503. package/scripts/theme/install-lock-icon.sh +30 -0
  504. package/scripts/theme/merge-wallpaper.sh +145 -0
  505. package/scripts/theme/rebuild-themes.sh +309 -0
  506. package/scripts/theme/switch.sh +431 -0
  507. package/scripts/theme/wallpaper-rotate.sh +136 -0
  508. package/scripts/theme/wallpaper-sync.sh +397 -0
  509. package/scripts/tools/cmatrix.sh +21 -0
  510. package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
  511. package/scripts/tools/emoji-picker.sh +48 -0
  512. package/scripts/tools/figlet-banner.sh +18 -0
  513. package/scripts/tools/log-rotate.sh +30 -0
  514. package/scripts/tools/lolcat-wrap.sh +19 -0
  515. package/scripts/tools/pipes.sh +48 -0
  516. package/scripts/tuning/linux.sh +185 -0
  517. package/scripts/tuning/macos.sh +55 -0
  518. package/scripts/uninstall.sh +85 -0
  519. package/scripts/version-sync.sh +487 -0
  520. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  521. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  522. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  523. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  524. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  525. package/templates/projects/go/README.md +4 -0
  526. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  527. package/templates/projects/go/go.sum +0 -0
  528. package/templates/projects/molecule/README.md +7 -0
  529. package/templates/projects/molecule/converge.yml +7 -0
  530. package/templates/projects/molecule/molecule.yml +16 -0
  531. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  532. package/templates/projects/node/README.md +4 -0
  533. package/templates/projects/node/package-lock.json +12 -0
  534. package/templates/projects/node/src/index.js +1 -0
  535. package/templates/projects/packer/README.md +15 -0
  536. package/templates/projects/packer/main.pkr.hcl +15 -0
  537. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  538. package/templates/projects/python/README.md +4 -0
  539. package/templates/projects/python/pyproject.toml +15 -0
  540. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  541. package/templates/projects/python/tests/test_basic.py +1 -0
  542. package/docs/ARCHITECTURE.md +0 -62
  543. package/docs/COMPLIANCE.md +0 -47
  544. package/docs/OPERATIONS.md +0 -103
  545. package/docs/PR_DESCRIPTION.md +0 -150
  546. package/docs/ROADMAP_legacy.md +0 -556
  547. package/docs/SECURITY_CHECKLIST.md +0 -25
  548. package/docs/TASK.md +0 -99
  549. package/docs/WALKTHROUGH.md +0 -46
  550. package/scripts/backup.sh +0 -142
  551. package/scripts/banner.sh +0 -20
  552. package/scripts/benchmark.sh +0 -20
  553. package/scripts/build.sh +0 -41
  554. package/scripts/clean.sh +0 -31
  555. package/scripts/compile.sh +0 -54
  556. package/scripts/copy.sh +0 -108
  557. package/scripts/doctor.sh +0 -79
  558. package/scripts/dotfiles.sh +0 -63
  559. package/scripts/download.sh +0 -35
  560. package/scripts/help.sh +0 -57
  561. package/scripts/lock-configs.sh +0 -57
  562. package/scripts/package.sh +0 -46
  563. package/scripts/ssh.sh +0 -55
  564. package/scripts/teleport.sh +0 -23
  565. package/scripts/test-aliases.sh +0 -25
  566. package/scripts/test_smoke.sh +0 -88
  567. package/scripts/unpack.sh +0 -28
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ logo_path="${DOTFILES_BOOT_LOGO:-$HOME/.config/dotfiles/boot/logo.png}"
6
+ APPLY=0
7
+
8
+ for arg in "$@"; do
9
+ case "$arg" in
10
+ --apply) APPLY=1 ;;
11
+ esac
12
+ done
13
+
14
+ if [[ "$(uname -s)" != "Linux" ]]; then
15
+ echo "Boot logo customization is Linux-only." >&2
16
+ exit 0
17
+ fi
18
+
19
+ if [[ ! -f "$logo_path" ]]; then
20
+ echo "Boot logo not found: $logo_path" >&2
21
+ echo "Place a PNG at that path or set DOTFILES_BOOT_LOGO." >&2
22
+ exit 1
23
+ fi
24
+
25
+ if [[ $APPLY -ne 1 ]]; then
26
+ echo "Dry run. Use --apply to install the boot logo." >&2
27
+ exit 0
28
+ fi
29
+
30
+ if [[ $EUID -ne 0 ]]; then
31
+ echo "Please run with sudo for boot logo install." >&2
32
+ exit 1
33
+ fi
34
+
35
+ if command -v plymouth-set-default-theme >/dev/null; then
36
+ theme_dir="/usr/share/plymouth/themes/dotfiles"
37
+ mkdir -p "$theme_dir"
38
+ cp "$logo_path" "$theme_dir/logo.png"
39
+ cat >"$theme_dir/dotfiles.plymouth" <<PLY
40
+ [Plymouth Theme]
41
+ Name=Dotfiles
42
+ Description=Dotfiles boot splash
43
+ ModuleName=script
44
+
45
+ [script]
46
+ ImageDir=$theme_dir
47
+ ScriptFile=$theme_dir/dotfiles.script
48
+ PLY
49
+
50
+ cat >"$theme_dir/dotfiles.script" <<'SCRIPT'
51
+ # Simple Plymouth script
52
+ image = Image("logo.png");
53
+ image.SetPosition(Window.GetX() + Window.GetWidth()/2 - image.GetWidth()/2,
54
+ Window.GetY() + Window.GetHeight()/2 - image.GetHeight()/2);
55
+ SCRIPT
56
+
57
+ plymouth-set-default-theme -R dotfiles
58
+ echo "Boot logo installed via Plymouth."
59
+ else
60
+ echo "Plymouth not found. Install plymouth to apply boot logo." >&2
61
+ exit 1
62
+ fi
@@ -0,0 +1,370 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ ## Catppuccin Theme Installer — Install Catppuccin themes for GNOME.
4
+ ##
5
+ ## Downloads and installs GTK themes, icon themes, cursor themes,
6
+ ## GNOME Shell themes, and wallpapers from Catppuccin repositories.
7
+ ##
8
+ ## # Requirements
9
+ ## - git: For cloning theme repositories
10
+ ## - curl: For downloading assets
11
+ ## - gnome-tweaks (optional): For applying themes
12
+ ## - gnome-extensions (optional): For shell themes
13
+ ##
14
+ ## # Usage
15
+ ## install-catppuccin-themes.sh # Install all components
16
+ ## install-catppuccin-themes.sh gtk # GTK themes only
17
+ ## install-catppuccin-themes.sh icons # Icon themes only
18
+ ## install-catppuccin-themes.sh cursors # Cursor themes only
19
+ ## install-catppuccin-themes.sh shell # GNOME Shell themes only
20
+ ## install-catppuccin-themes.sh wallpapers # Wallpapers only
21
+ ## install-catppuccin-themes.sh refresh # Refresh theme cache
22
+ ##
23
+ ## # Platform Notes
24
+ ## - Linux/GNOME: Full support
25
+ ## - Other DEs: GTK themes may work, shell themes require GNOME
26
+
27
+ set -euo pipefail
28
+
29
+ THEME_DIR="$HOME/.themes"
30
+ ICON_DIR="$HOME/.icons"
31
+ TEMP_DIR="$(umask 077 && mktemp -d)"
32
+
33
+ # Colors for output (respect NO_COLOR: https://no-color.org)
34
+ if [[ -z "${NO_COLOR:-}" ]] && [[ -t 1 ]]; then
35
+ RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m'
36
+ BLUE='\033[0;34m' NC='\033[0m'
37
+ else
38
+ RED='' GREEN='' YELLOW='' BLUE='' NC=''
39
+ fi
40
+
41
+ log() {
42
+ printf '%b\n' "${BLUE}[INFO]${NC} $1"
43
+ }
44
+
45
+ warn() {
46
+ printf '%b\n' "${YELLOW}[WARN]${NC} $1"
47
+ }
48
+
49
+ error() {
50
+ printf '%b\n' "${RED}[ERROR]${NC} $1"
51
+ }
52
+
53
+ success() {
54
+ printf '%b\n' "${GREEN}[SUCCESS]${NC} $1"
55
+ }
56
+
57
+ # Create directories
58
+ mkdir -p "$THEME_DIR" "$ICON_DIR"
59
+ trap 'rm -rf "$TEMP_DIR"' EXIT
60
+
61
+ # Check if git is available
62
+ if ! command -v git &>/dev/null; then
63
+ error "git is required but not installed."
64
+ exit 1
65
+ fi
66
+
67
+ # Function to install GTK themes
68
+ install_gtk_themes() {
69
+ log "Installing Catppuccin GTK themes..."
70
+
71
+ cd "$TEMP_DIR" || return 1
72
+
73
+ if [ ! -d "catppuccin-gtk" ]; then
74
+ git clone https://github.com/catppuccin/gtk.git catppuccin-gtk
75
+ else
76
+ git -C catppuccin-gtk pull
77
+ fi
78
+
79
+ cd catppuccin-gtk || return 1
80
+
81
+ # Install all variants
82
+ for variant in Latte Frappe Macchiato Mocha; do
83
+ for accent in Blue Lavender; do # Blue as primary, Lavender as alternative
84
+ theme_name="Catppuccin-$variant-Standard-$accent"
85
+ if [ "$variant" = "Latte" ]; then
86
+ theme_name="$theme_name-Light"
87
+ else
88
+ theme_name="$theme_name-Dark"
89
+ fi
90
+
91
+ log "Installing $theme_name..."
92
+ if [ -d "themes/$theme_name" ]; then
93
+ cp -r "themes/$theme_name" "$THEME_DIR/"
94
+ success "Installed $theme_name"
95
+ else
96
+ warn "Theme $theme_name not found in repository"
97
+ fi
98
+ done
99
+ done
100
+ }
101
+
102
+ # Function to install Papirus icon theme
103
+ install_papirus_icons() {
104
+ log "Installing Papirus icon themes..."
105
+
106
+ cd "$TEMP_DIR" || return 1
107
+
108
+ if [ ! -d "papirus-icon-theme" ]; then
109
+ git clone https://github.com/PapirusDevelopmentTeam/papirus-icon-theme.git
110
+ else
111
+ git -C papirus-icon-theme pull
112
+ fi
113
+
114
+ cd papirus-icon-theme || return 1
115
+
116
+ # Install Papirus variants
117
+ for variant in Papirus Papirus-Dark Papirus-Light; do
118
+ if [ -d "$variant" ]; then
119
+ log "Installing $variant icons..."
120
+ cp -r "$variant" "$ICON_DIR/"
121
+ success "Installed $variant"
122
+ fi
123
+ done
124
+ }
125
+
126
+ # Function to install Catppuccin cursors
127
+ install_catppuccin_cursors() {
128
+ log "Installing Catppuccin cursor themes..."
129
+
130
+ cd "$TEMP_DIR" || return 1
131
+
132
+ if [ ! -d "catppuccin-cursors" ]; then
133
+ git clone https://github.com/catppuccin/cursors.git catppuccin-cursors
134
+ else
135
+ git -C catppuccin-cursors pull
136
+ fi
137
+
138
+ cd catppuccin-cursors || return 1
139
+
140
+ # Install cursor themes for each variant
141
+ for variant in Catppuccin-Latte-* Catppuccin-Frappe-* Catppuccin-Macchiato-* Catppuccin-Mocha-*; do
142
+ if [ -d "cursors/$variant" ]; then
143
+ log "Installing cursor theme $variant..."
144
+ cp -r "cursors/$variant" "$ICON_DIR/"
145
+ success "Installed cursor theme $variant"
146
+ fi
147
+ done
148
+ }
149
+
150
+ # Function to install GNOME Shell themes
151
+ install_shell_themes() {
152
+ log "Installing GNOME Shell themes..."
153
+
154
+ # Check if user-themes extension is available
155
+ if command -v gnome-extensions &>/dev/null; then
156
+ if ! gnome-extensions list | grep -q "user-theme"; then
157
+ warn "User Themes extension not found. Install it from GNOME Extensions."
158
+ warn "Run: gnome-extensions install user-theme@gnome-shell-extensions.gcampax.github.com"
159
+ fi
160
+ fi
161
+
162
+ cd "$TEMP_DIR" || return 1
163
+
164
+ if [ ! -d "catppuccin-gnome-shell" ]; then
165
+ git clone https://github.com/catppuccin/gnome.git catppuccin-gnome-shell
166
+ else
167
+ git -C catppuccin-gnome-shell pull
168
+ fi
169
+
170
+ cd catppuccin-gnome-shell || return 1
171
+
172
+ # Install shell themes (use explicit names for portability)
173
+ for variant in Latte Frappe Macchiato Mocha; do
174
+ theme_name="Catppuccin-${variant}"
175
+ if [ -d "themes/$theme_name" ]; then
176
+ log "Installing GNOME Shell theme $theme_name..."
177
+ cp -r "themes/$theme_name" "$THEME_DIR/"
178
+ success "Installed GNOME Shell theme $theme_name"
179
+ fi
180
+ done
181
+ }
182
+
183
+ # Function to install wallpapers
184
+ install_wallpapers() {
185
+ log "Installing Catppuccin wallpapers..."
186
+
187
+ local wallpaper_dir="/usr/share/backgrounds/catppuccin"
188
+ local user_wallpaper_dir="$HOME/.local/share/backgrounds/catppuccin"
189
+
190
+ # Try system directory first, fallback to user directory
191
+ if [ -w "/usr/share/backgrounds" ] || sudo -n true 2>/dev/null; then
192
+ sudo mkdir -p "$wallpaper_dir" 2>/dev/null || {
193
+ warn "Cannot create system wallpaper directory, using user directory"
194
+ wallpaper_dir="$user_wallpaper_dir"
195
+ mkdir -p "$wallpaper_dir"
196
+ }
197
+ else
198
+ wallpaper_dir="$user_wallpaper_dir"
199
+ mkdir -p "$wallpaper_dir"
200
+ fi
201
+
202
+ cd "$TEMP_DIR" || return 1
203
+
204
+ if [ ! -d "catppuccin-wallpapers" ]; then
205
+ git clone https://github.com/catppuccin/wallpapers.git catppuccin-wallpapers
206
+ else
207
+ git -C catppuccin-wallpapers pull
208
+ fi
209
+
210
+ cd catppuccin-wallpapers || return 1
211
+
212
+ # Copy wallpapers
213
+ for variant in latte frappe macchiato mocha; do
214
+ for image in os/*.png misc/*.png; do
215
+ if [[ "$image" == *"$variant"* ]]; then
216
+ log "Installing wallpaper: $(basename "$image")"
217
+ if [ -w "$wallpaper_dir" ]; then
218
+ cp "$image" "$wallpaper_dir/cat_$variant.png"
219
+ else
220
+ sudo cp "$image" "$wallpaper_dir/cat_$variant.png"
221
+ fi
222
+ fi
223
+ done
224
+ done
225
+
226
+ success "Installed Catppuccin wallpapers to $wallpaper_dir"
227
+ }
228
+
229
+ # Function to apply GTK theme refresh
230
+ refresh_gtk() {
231
+ log "Refreshing GTK theme cache..."
232
+
233
+ # Update GTK icon cache
234
+ if command -v gtk-update-icon-cache &>/dev/null; then
235
+ for theme_dir in "$ICON_DIR"/*; do
236
+ if [ -d "$theme_dir" ] && [ -f "$theme_dir/index.theme" ]; then
237
+ gtk-update-icon-cache -f "$theme_dir" 2>/dev/null || true
238
+ fi
239
+ done
240
+ fi
241
+
242
+ # Reload GNOME Shell (if running)
243
+ if [ "$XDG_CURRENT_DESKTOP" = "GNOME" ] && command -v gnome-shell &>/dev/null; then
244
+ log "Reloading GNOME Shell..."
245
+ # Alt+F2, r, Enter - but we'll use dbus for safety
246
+ if command -v busctl &>/dev/null; then
247
+ busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Themes updated")' 2>/dev/null || true
248
+ fi
249
+ fi
250
+
251
+ success "GTK theme cache refreshed"
252
+ }
253
+
254
+ # Function to provide installation summary
255
+ show_summary() {
256
+ echo ""
257
+ echo "=== Installation Summary ==="
258
+ echo ""
259
+ echo "Installed themes are now available in:"
260
+ echo " GTK Themes: $THEME_DIR"
261
+ echo " Icon Themes: $ICON_DIR"
262
+ echo " Wallpapers: $wallpaper_dir"
263
+ echo ""
264
+ echo "To apply themes:"
265
+ echo " 1. Use GNOME Tweaks or Extensions app"
266
+ echo " 2. Or use the dot theme switcher:"
267
+ echo " dot theme set catppuccin-mocha"
268
+ echo " dot theme set catppuccin-latte"
269
+ echo ""
270
+ echo "Available Catppuccin themes:"
271
+ echo " - catppuccin-latte (light)"
272
+ echo " - catppuccin-frappe (dark - muted)"
273
+ echo " - catppuccin-macchiato (dark - balanced)"
274
+ echo " - catppuccin-mocha (dark - rich)"
275
+ echo ""
276
+ }
277
+
278
+ # Function to check dependencies
279
+ check_dependencies() {
280
+ local missing_deps=()
281
+
282
+ # Check required commands
283
+ for cmd in git curl; do
284
+ if ! command -v "$cmd" &>/dev/null; then
285
+ missing_deps+=("$cmd")
286
+ fi
287
+ done
288
+
289
+ # Check optional commands
290
+ for cmd in gnome-tweaks gnome-extensions; do
291
+ if ! command -v "$cmd" &>/dev/null; then
292
+ warn "Optional dependency missing: $cmd"
293
+ fi
294
+ done
295
+
296
+ if [ ${#missing_deps[@]} -gt 0 ]; then
297
+ error "Missing required dependencies: ${missing_deps[*]}"
298
+ echo "Please install them and run this script again."
299
+ exit 1
300
+ fi
301
+ }
302
+
303
+ # Main execution
304
+ main() {
305
+ echo "=== Catppuccin GNOME Theme Installer ==="
306
+ echo ""
307
+
308
+ check_dependencies
309
+
310
+ log "Starting Catppuccin theme installation..."
311
+
312
+ install_gtk_themes
313
+ install_papirus_icons
314
+ install_catppuccin_cursors
315
+ install_shell_themes
316
+ install_wallpapers
317
+ refresh_gtk
318
+
319
+ show_summary
320
+
321
+ success "Catppuccin theme installation completed!"
322
+
323
+ # Cleanup
324
+ log "Cleaning up temporary files..."
325
+ rm -rf "$TEMP_DIR"
326
+ }
327
+
328
+ # Handle script arguments
329
+ case "${1:-install}" in
330
+ install | "")
331
+ main
332
+ ;;
333
+ gtk)
334
+ install_gtk_themes
335
+ refresh_gtk
336
+ ;;
337
+ icons)
338
+ install_papirus_icons
339
+ refresh_gtk
340
+ ;;
341
+ cursors)
342
+ install_catppuccin_cursors
343
+ ;;
344
+ shell)
345
+ install_shell_themes
346
+ ;;
347
+ wallpapers)
348
+ install_wallpapers
349
+ ;;
350
+ refresh)
351
+ refresh_gtk
352
+ ;;
353
+ help)
354
+ echo "Usage: $0 [install|gtk|icons|cursors|shell|wallpapers|refresh|help]"
355
+ echo ""
356
+ echo " install Install all Catppuccin theme components (default)"
357
+ echo " gtk Install only GTK themes"
358
+ echo " icons Install only icon themes"
359
+ echo " cursors Install only cursor themes"
360
+ echo " shell Install only GNOME Shell themes"
361
+ echo " wallpapers Install only wallpapers"
362
+ echo " refresh Refresh theme cache"
363
+ echo " help Show this help message"
364
+ ;;
365
+ *)
366
+ error "Unknown option: $1"
367
+ echo "Use '$0 help' for usage information."
368
+ exit 1
369
+ ;;
370
+ esac
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ THEME="${DOTFILES_CURSOR_THEME:-Bibata-Modern-Ice}"
6
+ SIZE="${DOTFILES_CURSOR_SIZE:-24}"
7
+
8
+ case "$(uname -s)" in
9
+ Darwin)
10
+ echo "Cursor theming is not supported via script on macOS." >&2
11
+ exit 0
12
+ ;;
13
+ Linux)
14
+ if command -v gsettings >/dev/null; then
15
+ gsettings set org.gnome.desktop.interface cursor-theme "$THEME" || true
16
+ gsettings set org.gnome.desktop.interface cursor-size "$SIZE" || true
17
+ echo "Set GNOME cursor theme to $THEME ($SIZE)."
18
+ else
19
+ echo "gsettings not found. Set cursor theme in your DE settings." >&2
20
+ fi
21
+ ;;
22
+ *)
23
+ echo "Unsupported OS for cursor theming." >&2
24
+ ;;
25
+ esac
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ THEME="${DOTFILES_ICON_THEME:-Papirus}"
6
+
7
+ case "$(uname -s)" in
8
+ Darwin)
9
+ if command -v fileicon >/dev/null; then
10
+ echo "Use: fileicon set <path> <icon.icns> to apply custom icons."
11
+ else
12
+ echo "fileicon not found. Install it via brew (brew install fileicon)." >&2
13
+ fi
14
+ ;;
15
+ Linux)
16
+ if command -v gsettings >/dev/null; then
17
+ gsettings set org.gnome.desktop.interface icon-theme "$THEME" || true
18
+ echo "Set GNOME icon theme to $THEME."
19
+ else
20
+ echo "gsettings not found. Set icon theme in your DE settings." >&2
21
+ fi
22
+ ;;
23
+ *)
24
+ echo "Unsupported OS for icon theming." >&2
25
+ ;;
26
+ esac
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ # Cross-platform sed in-place (BSD vs GNU)
6
+ sed_in_place() {
7
+ if sed --version >/dev/null 2>&1; then
8
+ sed -i "$@" # GNU
9
+ else
10
+ sed -i '' "$@" # BSD (macOS)
11
+ fi
12
+ }
13
+
14
+ THEME_SRC="${DOTFILES_GRUB_THEME_DIR:-$HOME/.config/dotfiles/grub/theme}"
15
+ THEME_NAME="${DOTFILES_GRUB_THEME_NAME:-dotfiles}"
16
+ APPLY=0
17
+
18
+ for arg in "$@"; do
19
+ case "$arg" in
20
+ --apply) APPLY=1 ;;
21
+ esac
22
+ done
23
+
24
+ if [[ "$(uname -s)" != "Linux" ]]; then
25
+ echo "GRUB theming is Linux-only." >&2
26
+ exit 0
27
+ fi
28
+
29
+ if [[ ! -d "$THEME_SRC" ]]; then
30
+ echo "Theme directory not found: $THEME_SRC" >&2
31
+ echo "Place a GRUB theme there or set DOTFILES_GRUB_THEME_DIR." >&2
32
+ exit 1
33
+ fi
34
+
35
+ if [[ $APPLY -ne 1 ]]; then
36
+ echo "Dry run. Use --apply to install the theme." >&2
37
+ exit 0
38
+ fi
39
+
40
+ if [[ $EUID -ne 0 ]]; then
41
+ echo "Please run with sudo for GRUB theme install." >&2
42
+ exit 1
43
+ fi
44
+
45
+ THEME_DST="/boot/grub/themes/$THEME_NAME"
46
+ mkdir -p "$THEME_DST"
47
+ cp -R "$THEME_SRC/." "$THEME_DST"
48
+
49
+ if grep -q '^GRUB_THEME=' /etc/default/grub; then
50
+ sed_in_place "s|^GRUB_THEME=.*|GRUB_THEME=\"$THEME_DST/theme.txt\"|" /etc/default/grub
51
+ else
52
+ echo "GRUB_THEME=\"$THEME_DST/theme.txt\"" >>/etc/default/grub
53
+ fi
54
+
55
+ if command -v update-grub >/dev/null; then
56
+ update-grub
57
+ elif command -v grub-mkconfig >/dev/null; then
58
+ grub-mkconfig -o /boot/grub/grub.cfg
59
+ fi
60
+
61
+ echo "GRUB theme installed: $THEME_DST"
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ icon_path="${DOTFILES_LOCK_ICON:-$HOME/.config/dotfiles/lock/icon.png}"
6
+
7
+ if [[ ! -f "$icon_path" ]]; then
8
+ echo "Lock icon not found: $icon_path" >&2
9
+ echo "Place a PNG at that path or set DOTFILES_LOCK_ICON." >&2
10
+ exit 1
11
+ fi
12
+
13
+ case "$(uname -s)" in
14
+ Darwin)
15
+ echo "Lock icon customization is not supported via script on macOS." >&2
16
+ exit 0
17
+ ;;
18
+ Linux)
19
+ if command -v swaylock >/dev/null; then
20
+ echo "Use: swaylock --image '$icon_path'"
21
+ elif command -v i3lock >/dev/null; then
22
+ echo "Use: i3lock -i '$icon_path'"
23
+ else
24
+ echo "No supported lock screen tool found (swaylock/i3lock)." >&2
25
+ fi
26
+ ;;
27
+ *)
28
+ echo "Unsupported OS for lock icon." >&2
29
+ ;;
30
+ esac