@sebastienrousseau/dotfiles 0.2.520 → 0.2.521

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 (323) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/LICENSE-APACHE +190 -0
  3. package/LICENSE-MIT +21 -0
  4. package/README.md +43 -37
  5. package/install.sh +76 -10
  6. package/package.json +7 -7
  7. package/tools/README.md +49 -0
  8. package/tools/ci/install-chezmoi-verified.sh +68 -0
  9. package/docs/.vitepress/reports/localization-readability-audit.md +0 -73
  10. package/docs/AI.md +0 -179
  11. package/docs/ARCHITECTURE.md +0 -117
  12. package/docs/CNAME +0 -1
  13. package/docs/CONFIG_STRATEGY.md +0 -124
  14. package/docs/COPYRIGHT +0 -7
  15. package/docs/ECOSYSTEM.md +0 -220
  16. package/docs/GOLD-STANDARD-AUDIT.md +0 -352
  17. package/docs/GOVERNANCE.md +0 -98
  18. package/docs/MAINTAINERS.md +0 -41
  19. package/docs/MINIMUM-TOOLCHAIN.md +0 -100
  20. package/docs/NAMING_CONVENTIONS.md +0 -102
  21. package/docs/OPENCODE.md +0 -127
  22. package/docs/README.md +0 -84
  23. package/docs/STRUCTURE.md +0 -102
  24. package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -118
  25. package/docs/adr/ADR-002-shell-performance.md +0 -130
  26. package/docs/adr/ADR-003-security-first.md +0 -158
  27. package/docs/adr/ADR-004-cli-architecture.md +0 -171
  28. package/docs/adr/ADR-005-chezmoi-choice.md +0 -99
  29. package/docs/adr/ADR-006-shell-selection.md +0 -124
  30. package/docs/adr/ADR-007-multi-shell-parity.md +0 -62
  31. package/docs/adr/ADR-008-alias-system-architecture.md +0 -95
  32. package/docs/adr/ADR-009-wallpaper-driven-theming.md +0 -131
  33. package/docs/adr/ADR-010-starship-transient-prompt.md +0 -144
  34. package/docs/adr/ADR-011-nushell-tier3-keep.md +0 -144
  35. package/docs/adr/ADR-012-ai-fleet-local-proxy.md +0 -79
  36. package/docs/adr/README.md +0 -40
  37. package/docs/architecture/AI_COST_OPTIMIZATION.md +0 -144
  38. package/docs/architecture/ARCHITECTURE.md +0 -20
  39. package/docs/architecture/INTEROP.md +0 -44
  40. package/docs/architecture/REPO_LAYOUT.md +0 -241
  41. package/docs/architecture/WALKTHROUGH.md +0 -86
  42. package/docs/architecture/fleet-deployment.md +0 -77
  43. package/docs/archive/EUXIS_2026_REVIEW.md +0 -127
  44. package/docs/archive/LEGACY_ROADMAP.md +0 -6
  45. package/docs/archive/MILESTONE_v0.2.493.md +0 -47
  46. package/docs/archive/PLAN.md +0 -199
  47. package/docs/archive/REPO_AUDIT.md +0 -31
  48. package/docs/articles/.pages +0 -6
  49. package/docs/articles/2026-07-05-custom-mkdocs-material-dark-theme.md +0 -216
  50. package/docs/articles/2026-07-05-fish-startup-abbr.md +0 -153
  51. package/docs/articles/2026-07-05-master-to-main-rename-runbook.md +0 -128
  52. package/docs/articles/index.md +0 -36
  53. package/docs/guides/INSTALL.md +0 -144
  54. package/docs/guides/MACOS_ICLOUD_SYMLINKS.md +0 -121
  55. package/docs/guides/NEOVIM_IDE_GUIDE.md +0 -61
  56. package/docs/guides/THEMING.md +0 -230
  57. package/docs/guides/TROUBLESHOOTING.md +0 -176
  58. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +0 -792
  59. package/docs/index.md +0 -132
  60. package/docs/interop/A2A.md +0 -39
  61. package/docs/interop/POWERSHELL.md +0 -102
  62. package/docs/manual/00-introduction.md +0 -89
  63. package/docs/manual/01-concepts/01-architecture.md +0 -138
  64. package/docs/manual/01-concepts/02-trust-model.md +0 -183
  65. package/docs/manual/01-concepts/03-theme-engine.md +0 -186
  66. package/docs/manual/01-concepts/04-fleet.md +0 -148
  67. package/docs/manual/01-concepts/05-self-healing.md +0 -204
  68. package/docs/manual/02-tutorials/01-first-install.md +0 -197
  69. package/docs/manual/02-tutorials/02-add-wallpaper.md +0 -216
  70. package/docs/manual/02-tutorials/03-create-profile.md +0 -244
  71. package/docs/manual/02-tutorials/04-encrypt-secret.md +0 -281
  72. package/docs/manual/02-tutorials/05-deploy-fleet.md +0 -283
  73. package/docs/manual/03-reference/01-dot-cli.md +0 -475
  74. package/docs/manual/03-reference/02-config-files.md +0 -265
  75. package/docs/manual/03-reference/03-environment.md +0 -124
  76. package/docs/manual/03-reference/04-templates.md +0 -190
  77. package/docs/manual/03-reference/05-feature-flags.md +0 -187
  78. package/docs/manual/04-cookbook/01-recipes.md +0 -285
  79. package/docs/manual/04-cookbook/02-troubleshooting.md +0 -351
  80. package/docs/manual/04-cookbook/03-faq.md +0 -175
  81. package/docs/manual/05-appendices/A-platform-matrix.md +0 -101
  82. package/docs/manual/05-appendices/B-security-checklist.md +0 -85
  83. package/docs/manual/05-appendices/C-glossary.md +0 -40
  84. package/docs/manual/05-appendices/D-bibliography.md +0 -58
  85. package/docs/manual/05-appendices/E-license.md +0 -38
  86. package/docs/manual/_toc.yml +0 -58
  87. package/docs/manual/command-index.md +0 -175
  88. package/docs/manual/concept-index.md +0 -170
  89. package/docs/manual/index.md +0 -66
  90. package/docs/migration/README.md +0 -81
  91. package/docs/migration/from-bare-git-repo.md +0 -156
  92. package/docs/migration/from-gnu-stow.md +0 -165
  93. package/docs/migration/from-plain-chezmoi.md +0 -148
  94. package/docs/migration/from-yadm.md +0 -187
  95. package/docs/operations/ARCHITECTURE_ROADMAP.md +0 -7
  96. package/docs/operations/ATTESTATION.md +0 -44
  97. package/docs/operations/CI_CADENCE.md +0 -107
  98. package/docs/operations/CI_COMPOSITES.md +0 -156
  99. package/docs/operations/COMPLETIONS.md +0 -123
  100. package/docs/operations/COVERAGE.md +0 -204
  101. package/docs/operations/DRIFT.md +0 -107
  102. package/docs/operations/HARD_AUDIT_2026.md +0 -631
  103. package/docs/operations/MAINTENANCE.md +0 -63
  104. package/docs/operations/MANIFEST.md +0 -127
  105. package/docs/operations/MIGRATION.md +0 -109
  106. package/docs/operations/OPERATIONS.md +0 -188
  107. package/docs/operations/PERFORMANCE.md +0 -133
  108. package/docs/operations/PERFORMANCE_BUDGETS.md +0 -196
  109. package/docs/operations/REGISTRY.md +0 -90
  110. package/docs/operations/RELEASE_PIPELINE.md +0 -128
  111. package/docs/operations/RELIABILITY.md +0 -122
  112. package/docs/operations/RFC_v0_2_503_reorganization.md +0 -280
  113. package/docs/operations/ROADMAP.md +0 -10
  114. package/docs/operations/ROADMAP_2026.md +0 -7
  115. package/docs/operations/ROADMAP_V0_2_503.md +0 -10
  116. package/docs/operations/TESTING.md +0 -216
  117. package/docs/operations/TRACEABILITY.md +0 -44
  118. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +0 -65
  119. package/docs/operations/VERSION_SYNC.md +0 -393
  120. package/docs/packaging.md +0 -222
  121. package/docs/reference/ALIASES.md +0 -131
  122. package/docs/reference/ALIASES_CHEATSHEET.md +0 -32
  123. package/docs/reference/ALIASES_DEPRECATIONS.md +0 -13
  124. package/docs/reference/FEATURE-MATRIX.md +0 -646
  125. package/docs/reference/FEATURES.md +0 -66
  126. package/docs/reference/FONTS.md +0 -112
  127. package/docs/reference/POWERSHELL_PARITY.md +0 -82
  128. package/docs/reference/PROFILES.md +0 -69
  129. package/docs/reference/SCREENSHOTS.md +0 -121
  130. package/docs/reference/SCRIPTS.md +0 -71
  131. package/docs/reference/SUPPORT_MATRIX.md +0 -80
  132. package/docs/reference/THEMES.md +0 -117
  133. package/docs/reference/TOOLS.md +0 -110
  134. package/docs/reference/UTILS.md +0 -243
  135. package/docs/registry.json +0 -6
  136. package/docs/schema/dot-env-v1.json +0 -110
  137. package/docs/schema/dot-registry-v1.json +0 -33
  138. package/docs/security/AI_ACT_COMPLIANCE.md +0 -94
  139. package/docs/security/AUDIT_BYPASS.md +0 -103
  140. package/docs/security/AUTOMATION_SECRETS.md +0 -26
  141. package/docs/security/CI_EGRESS_ALLOWLIST.md +0 -127
  142. package/docs/security/CI_PINNING.md +0 -129
  143. package/docs/security/COMMIT_SIGNING.md +0 -138
  144. package/docs/security/COMPLIANCE.md +0 -458
  145. package/docs/security/DEPS_DEV_EXCEPTIONS.md +0 -86
  146. package/docs/security/DISCLOSURE.md +0 -130
  147. package/docs/security/ENCRYPTION.md +0 -57
  148. package/docs/security/FMEA.md +0 -159
  149. package/docs/security/FUZZING.md +0 -209
  150. package/docs/security/HISTORY_FILTERING.md +0 -132
  151. package/docs/security/INCIDENT_RESPONSE.md +0 -579
  152. package/docs/security/INSTALL_VERIFICATION.md +0 -122
  153. package/docs/security/KEYS.md +0 -49
  154. package/docs/security/KEY_ROTATION.md +0 -303
  155. package/docs/security/MCP_POLICY.md +0 -78
  156. package/docs/security/POLICY_RELEASES.md +0 -37
  157. package/docs/security/README.md +0 -28
  158. package/docs/security/SCORECARD.md +0 -195
  159. package/docs/security/SECRETS.md +0 -158
  160. package/docs/security/SECURITY.md +0 -45
  161. package/docs/security/SECURITY_CHECKLIST.md +0 -55
  162. package/docs/security/SHELL_EXEMPTIONS.md +0 -145
  163. package/docs/security/SOUP_REGISTER.md +0 -36
  164. package/docs/security/THREAT_MODEL.md +0 -130
  165. package/docs/security/VERIFICATION_VALIDATION.md +0 -228
  166. package/docs/security/VERIFY_RELEASE.md +0 -201
  167. package/docs/security/security-pubkey.asc +0 -15
  168. package/docs/stylesheets/extra.css +0 -444
  169. package/docs/themes/README.md +0 -10
  170. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +0 -30
  171. package/docs/themes/hero-shot.svg +0 -78
  172. package/scripts/README.md +0 -123
  173. package/scripts/ci/check-copyright-headers.sh +0 -8
  174. package/scripts/ci/check-shell-preamble.sh +0 -8
  175. package/scripts/ci/guard-gitleaks-checkout.sh +0 -8
  176. package/scripts/demo/record.sh +0 -43
  177. package/scripts/diagnostics/a2a-conformance.sh +0 -163
  178. package/scripts/diagnostics/alias-governance.sh +0 -165
  179. package/scripts/diagnostics/aliases-cheatsheet.sh +0 -74
  180. package/scripts/diagnostics/aliases-manifest.sh +0 -77
  181. package/scripts/diagnostics/attest-verify.sh +0 -147
  182. package/scripts/diagnostics/benchmark.sh +0 -408
  183. package/scripts/diagnostics/conflicts.sh +0 -73
  184. package/scripts/diagnostics/doctor-unified.sh +0 -43
  185. package/scripts/diagnostics/doctor.sh +0 -797
  186. package/scripts/diagnostics/drift-dashboard.sh +0 -203
  187. package/scripts/diagnostics/health.sh +0 -656
  188. package/scripts/diagnostics/history-analysis.sh +0 -86
  189. package/scripts/diagnostics/mcp-doctor.sh +0 -582
  190. package/scripts/diagnostics/perf.sh +0 -453
  191. package/scripts/diagnostics/scorecard.sh +0 -120
  192. package/scripts/diagnostics/secret-governance.sh +0 -65
  193. package/scripts/diagnostics/security-score.sh +0 -467
  194. package/scripts/diagnostics/smoke-test.sh +0 -88
  195. package/scripts/diagnostics/snapshot.sh +0 -90
  196. package/scripts/diagnostics/verify.sh +0 -108
  197. package/scripts/diagnostics/verify_state.sh +0 -73
  198. package/scripts/diagnostics/version-locks.sh +0 -94
  199. package/scripts/diagnostics/workstation-attestation.sh +0 -212
  200. package/scripts/dot/commands/agent.sh +0 -535
  201. package/scripts/dot/commands/agents.sh +0 -352
  202. package/scripts/dot/commands/ai.sh +0 -600
  203. package/scripts/dot/commands/aliases.sh +0 -277
  204. package/scripts/dot/commands/appearance.sh +0 -110
  205. package/scripts/dot/commands/completion.sh +0 -171
  206. package/scripts/dot/commands/core.sh +0 -217
  207. package/scripts/dot/commands/diagnostics.sh +0 -265
  208. package/scripts/dot/commands/env-emit.sh +0 -203
  209. package/scripts/dot/commands/fleet.sh +0 -711
  210. package/scripts/dot/commands/init.sh +0 -185
  211. package/scripts/dot/commands/lint.sh +0 -208
  212. package/scripts/dot/commands/manual.sh +0 -169
  213. package/scripts/dot/commands/meta.sh +0 -438
  214. package/scripts/dot/commands/patterns.sh +0 -55
  215. package/scripts/dot/commands/registry.sh +0 -455
  216. package/scripts/dot/commands/restore.sh +0 -232
  217. package/scripts/dot/commands/secrets.sh +0 -296
  218. package/scripts/dot/commands/security.sh +0 -102
  219. package/scripts/dot/commands/tools.sh +0 -570
  220. package/scripts/dot/data/alias-deprecations.tsv +0 -2
  221. package/scripts/dot/powershell/Dot.psm1 +0 -319
  222. package/scripts/fonts/install-nerd-fonts.sh +0 -75
  223. package/scripts/fonts/patch-fonts.sh +0 -36
  224. package/scripts/git-hooks/install.sh +0 -12
  225. package/scripts/git-hooks/pre-commit +0 -12
  226. package/scripts/git-hooks/pre-commit-audit.sh +0 -146
  227. package/scripts/git-hooks/pre-push +0 -105
  228. package/scripts/git-hooks/prepare-commit-msg +0 -29
  229. package/scripts/lib/secrets_provider.sh +0 -200
  230. package/scripts/nvim/headless-upgrade.lua +0 -81
  231. package/scripts/ops/ai-setup.sh +0 -71
  232. package/scripts/ops/bundle.sh +0 -104
  233. package/scripts/ops/chaos.sh +0 -50
  234. package/scripts/ops/chezmoi-apply.sh +0 -333
  235. package/scripts/ops/chezmoi-diff.sh +0 -16
  236. package/scripts/ops/chezmoi-remove.sh +0 -46
  237. package/scripts/ops/chezmoi-update.sh +0 -67
  238. package/scripts/ops/heal-chezmoi.sh +0 -87
  239. package/scripts/ops/heal-system.sh +0 -129
  240. package/scripts/ops/heal-tools.sh +0 -297
  241. package/scripts/ops/heal.sh +0 -223
  242. package/scripts/ops/post-apply-repair.sh +0 -107
  243. package/scripts/ops/prewarm.sh +0 -128
  244. package/scripts/ops/release.sh +0 -262
  245. package/scripts/ops/rollback.sh +0 -613
  246. package/scripts/ops/setup.sh +0 -138
  247. package/scripts/ops/teleport.sh +0 -34
  248. package/scripts/qa/check-feature-matrix.sh +0 -296
  249. package/scripts/qa/check-version-consistency.sh +0 -12
  250. package/scripts/qa/coverage-baseline.sh +0 -61
  251. package/scripts/qa/docs-coverage.sh +0 -118
  252. package/scripts/qa/examples-coverage.sh +0 -94
  253. package/scripts/qa/powershell-contract.ps1 +0 -95
  254. package/scripts/qa/reliability-audit.sh +0 -139
  255. package/scripts/qa/scorecard-snapshot.sh +0 -128
  256. package/scripts/qa/traceability-coverage.sh +0 -124
  257. package/scripts/qa/validate-examples.sh +0 -90
  258. package/scripts/qa/wsl-contract.sh +0 -12
  259. package/scripts/secrets/age-init.sh +0 -82
  260. package/scripts/secrets/create-secrets-file.sh +0 -46
  261. package/scripts/secrets/encrypt-ssh-key.sh +0 -44
  262. package/scripts/security/backup.sh +0 -58
  263. package/scripts/security/check-disclosure-key-expiry.sh +0 -111
  264. package/scripts/security/dns-doh.sh +0 -52
  265. package/scripts/security/encryption-check.sh +0 -55
  266. package/scripts/security/enforce-policies.sh +0 -552
  267. package/scripts/security/firewall.sh +0 -91
  268. package/scripts/security/lock-configs.sh +0 -67
  269. package/scripts/security/lock-screen.sh +0 -56
  270. package/scripts/security/manage-secrets.sh +0 -429
  271. package/scripts/security/ssh-cert.sh +0 -204
  272. package/scripts/security/telemetry-kill.sh +0 -51
  273. package/scripts/security/usb-safety.sh +0 -52
  274. package/scripts/theme/apply-gnome-theme.sh +0 -333
  275. package/scripts/theme/extract-heic-frames.sh +0 -115
  276. package/scripts/theme/extract-theme.py +0 -1020
  277. package/scripts/theme/install-boot-logo.sh +0 -63
  278. package/scripts/theme/install-catppuccin-themes.sh +0 -371
  279. package/scripts/theme/install-cursors.sh +0 -26
  280. package/scripts/theme/install-file-icons.sh +0 -27
  281. package/scripts/theme/install-grub-theme.sh +0 -62
  282. package/scripts/theme/install-lock-icon.sh +0 -31
  283. package/scripts/theme/merge-wallpaper.sh +0 -146
  284. package/scripts/theme/rebuild-themes.sh +0 -603
  285. package/scripts/theme/switch.sh +0 -476
  286. package/scripts/theme/wallpaper-rotate.sh +0 -137
  287. package/scripts/theme/wallpaper-sync.sh +0 -690
  288. package/scripts/tools/cmatrix.sh +0 -22
  289. package/scripts/tools/detect-collisions.py +0 -103
  290. package/scripts/tools/emoji-picker.sh +0 -49
  291. package/scripts/tools/figlet-banner.sh +0 -19
  292. package/scripts/tools/log-rotate.sh +0 -31
  293. package/scripts/tools/lolcat-wrap.sh +0 -20
  294. package/scripts/tools/pipes.sh +0 -49
  295. package/scripts/tuning/linux.sh +0 -186
  296. package/scripts/tuning/macos.sh +0 -56
  297. package/scripts/uninstall.sh +0 -86
  298. package/scripts/verify-release-versions +0 -156
  299. package/scripts/version-sync.sh +0 -714
  300. package/templates/chezmoi-data/geekom-a9.toml.example +0 -21
  301. package/templates/chezmoi-data/mac-m1.toml.example +0 -16
  302. package/templates/chezmoi-data/mac-t2-linux.toml.example +0 -21
  303. package/templates/chezmoi-data/surface-pro-7p.toml.example +0 -21
  304. package/templates/projects/go/.github/workflows/ci.yml +0 -31
  305. package/templates/projects/go/README.md +0 -7
  306. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +0 -8
  307. package/templates/projects/go/go.mod +0 -3
  308. package/templates/projects/go/go.sum +0 -0
  309. package/templates/projects/molecule/README.md +0 -7
  310. package/templates/projects/molecule/converge.yml +0 -7
  311. package/templates/projects/molecule/molecule.yml +0 -16
  312. package/templates/projects/node/.github/workflows/ci.yml +0 -30
  313. package/templates/projects/node/README.md +0 -7
  314. package/templates/projects/node/package-lock.json +0 -12
  315. package/templates/projects/node/package.json +0 -10
  316. package/templates/projects/node/src/index.js +0 -3
  317. package/templates/projects/packer/README.md +0 -15
  318. package/templates/projects/packer/main.pkr.hcl +0 -15
  319. package/templates/projects/python/.github/workflows/ci.yml +0 -34
  320. package/templates/projects/python/README.md +0 -7
  321. package/templates/projects/python/pyproject.toml +0 -25
  322. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +0 -2
  323. package/templates/projects/python/tests/test_basic.py +0 -3
@@ -1,230 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
- {% raw %}
5
-
6
- # Theming Guide
7
-
8
- 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.
9
-
10
- Themes are not hand-crafted — they are extracted from whatever wallpapers are available on the system.
11
-
12
- ## How Themes Work
13
-
14
- Wallpapers are the source of truth. The system discovers wallpapers from two locations:
15
-
16
- 1. **System wallpapers** — platform-native (macOS `/System/Library/Desktop Pictures/`, Linux `/usr/share/backgrounds/`)
17
- 2. **Custom wallpapers** — user-provided in `~/Pictures/Wallpapers/` (custom overrides system)
18
-
19
- `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.
20
-
21
- `rebuild-themes.sh` orchestrates discovery → extraction → assembly into `.chezmoidata/themes.toml`. Themes are cached in `~/.cache/dotfiles/themes/` and only regenerated when wallpapers change.
22
-
23
- The `theme` key in `.chezmoidata.toml` controls the active theme. Every template references the active theme's data through `{{ $t := index .themes .theme }}`.
24
-
25
- ## Switching Themes
26
-
27
- ### Interactive Picker
28
-
29
- ```bash
30
- dot theme
31
- ```
32
-
33
- 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.
34
-
35
- ### Direct Switch
36
-
37
- ```bash
38
- dot theme tahoe-dark
39
- ```
40
-
41
- Sets the theme immediately. Regenerates configs and reloads running applications.
42
-
43
- ### Rebuild Themes
44
-
45
- ```bash
46
- dot theme rebuild # incremental (uses cache for unchanged wallpapers)
47
- dot theme rebuild --force # full regeneration
48
- dot theme rebuild --list # discover wallpapers without rebuilding
49
- ```
50
-
51
- 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.
52
-
53
- ### Under the Hood: dot-theme-sync
54
-
55
- `dot-theme-sync` handles the full switching pipeline:
56
-
57
- 1. Writes the new theme name into `.chezmoidata.toml` (and `chezmoi.toml` if present).
58
- If those files drift, `dot-theme-sync` now resynchronizes them before rendering because `chezmoi.toml` `[data]` overrides the source data file.
59
- 2. Runs a targeted `chezmoi apply` on theme-dependent config files only -- much faster than a full apply.
60
- 3. Signals running applications to reload and coordinates browser-facing theme state:
61
-
62
- ```bash
63
- dot-theme-sync # Reload current theme
64
- dot-theme-sync macos-wave-light # Switch to a new theme
65
- dot-theme-sync --full # Full chezmoi apply instead of targeted
66
- ```
67
-
68
- ## What Changes
69
-
70
- Each theme switch touches these applications:
71
-
72
- | Application | Mechanism | What Changes |
73
- | :--- | :--- | :--- |
74
- | **Ghostty** | `chezmoi apply` + macOS app-support sync + DBus `reload-config` or runtime signal fallback | Background, foreground, all 16 ANSI colors, cursor |
75
- | **Tmux** | `chezmoi apply` + `source-file` | Status bar colors, pane borders, mode indicators |
76
- | **Niri** | `chezmoi apply` + `load-config-file` IPC | Window borders, focus ring, inactive tint |
77
- | **Desktop (macOS)** | `osascript` + `defaults write` + `killall` | System appearance (Light/Dark), accent color, highlight color; forces SystemUIServer/Dock/cfprefsd refresh |
78
- | **Wallpaper (macOS)** | `osascript` System Events | Desktop wallpaper set across all displays |
79
- | **Wallpaper (Linux)** | `gsettings` / `dms` / `swaybg` / `feh` | HEIC auto-converted to PNG; `picture-uri` and `picture-uri-dark` set separately |
80
- | **Desktop (Linux/GNOME)** | `chezmoi apply` + `gsettings` | Theme name, icon theme, color scheme preference |
81
- | **Safari / Chrome / Edge** | Native browser appearance follows desktop theme | Browser chrome stays aligned when using the default/native browser theme |
82
- | **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 |
83
- | **DMS** | `sed -i` on settings.json + IPC | Stock theme mapped to accent family, dark/light mode |
84
- | **Neovim** | `--remote-expr` Lua eval over socket | Colorscheme, style variant, background mode |
85
- | **VS Code** | `chezmoi apply` on `settings.json` | `workbench.colorTheme` value |
86
- | **Alacritty** | `chezmoi apply` | Full color block regeneration |
87
- | **Kitty** | `chezmoi apply` | Full color block regeneration |
88
- | **WezTerm** | `chezmoi apply` | Color scheme in Lua config |
89
-
90
- ## Dark/Light Toggle
91
-
92
- ```bash
93
- dot theme toggle
94
- ```
95
-
96
- 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.
97
-
98
- ## Theme Families
99
-
100
- 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.
101
-
102
- ### Rebuilding themes
103
-
104
- When wallpapers change (new system update, new custom wallpapers), regenerate:
105
-
106
- ```bash
107
- dot theme rebuild # Regenerate (uses cache for unchanged wallpapers)
108
- dot theme rebuild --force # Force full regeneration
109
- dot theme rebuild --list # List discovered wallpapers without rebuilding
110
- ```
111
-
112
- ## What works without wallpapers
113
-
114
- Theme switching is a two-tier system:
115
-
116
- **Core (always works)** — ships in the repo, no setup needed:
117
-
118
- - Terminal colors (Ghostty, Alacritty, Kitty, WezTerm, tmux)
119
- - Editor themes (Neovim colorscheme, VS Code)
120
- - macOS dark/light mode and accent color
121
- - Linux GNOME color-scheme, GTK theme, icon theme
122
- - Browser color mode (Safari, Chrome, Firefox)
123
-
124
- **Wallpapers (optional)** — user-provided, enhances the theme:
125
-
126
- - Desktop wallpaper matched to the active theme
127
- - Requires `~/Pictures/Wallpapers/` with files named `macos-NAME-dark.heic`
128
-
129
- If no wallpapers are present, `dot theme` applies all core changes and skips the wallpaper step. No errors, no manual config.
130
-
131
- ## Wallpapers (optional)
132
-
133
- Wallpapers are not shipped in the repo. Each user sources their own and places them in `~/Pictures/Wallpapers/`:
134
-
135
- ```
136
- macos-tahoe-dark.heic
137
- macos-tahoe-light.heic
138
- ```
139
-
140
- The naming convention is `macos-NAME-APPEARANCE.heic` (or `.jpg`/`.png`). The theme picker marks themes with matching wallpapers as `[W]`.
141
-
142
- ### Wallpaper guidelines
143
-
144
- - **Resolution**: 6016x6016 recommended (matches Apple's native resolution)
145
- - **Format**: `.heic` preferred on macOS, `.png`/`.jpg` also supported
146
- - **Brightness**: dark/light pairs targeting a golden ratio (1.618) relationship give balanced contrast across displays
147
-
148
- ### Platform behavior
149
-
150
- | Platform | Wallpaper support | Mechanism |
151
- |---|---|---|
152
- | **macOS** | `.heic`, `.jpg`, `.png` | `osascript` (all desktops) |
153
- | **Linux (GNOME)** | `.png`, `.jpg` (`.heic` auto-converted) | `gsettings picture-uri` + `picture-uri-dark` |
154
- | **Linux (Wayland)** | `.png`, `.jpg` (`.heic` auto-converted) | `swaybg`, `feh`, or Niri/DMS IPC |
155
- | **WSL** | Not applicable | No compositor; terminal colors still apply |
156
-
157
- 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.
158
-
159
- ### Using your OS default wallpapers
160
-
161
- 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.
162
-
163
- ## Build Artifacts
164
-
165
- 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.
166
-
167
- ## Troubleshooting
168
-
169
- ### Theme switch did not apply
170
-
171
- Run a full apply to force all configs:
172
-
173
- ```bash
174
- dot-theme-sync --full
175
- ```
176
-
177
- ### Ghostty did not reload
178
-
179
- 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:
180
-
181
- ```bash
182
- pgrep -x ghostty
183
- ```
184
-
185
- 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.
186
-
187
- ### Neovim did not change colors
188
-
189
- `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.
190
-
191
- ### GTK theme looks wrong
192
-
193
- 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`.
194
-
195
- ### macOS accent or appearance did not update
196
-
197
- `dot-theme-sync` applies macOS appearance using `osascript` and accent via:
198
-
199
- ```bash
200
- defaults write -g AppleAccentColor -int <value>
201
- ```
202
-
203
- `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.
204
-
205
- ### Browser theme did not change
206
-
207
- 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.
208
-
209
- 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:
210
-
211
- ```bash
212
- ln -sf ~/.config/firefox/user.js ~/.mozilla/firefox/<profile>/user.js
213
- ```
214
-
215
- ### tmux shows old colors
216
-
217
- Tmux reloads via `source-file`. If TPM plugins override colors, run:
218
-
219
- ```bash
220
- tmux source-file ~/.config/tmux/tmux.conf
221
- ```
222
-
223
- ### Checking the active theme
224
-
225
- ```bash
226
- grep '^theme = ' ~/.dotfiles/.chezmoidata.toml
227
- ```
228
-
229
- This prints the current theme name. Cross-reference with `dot theme list` for available options.
230
- {% endraw %}
@@ -1,176 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
-
5
- # Troubleshooting
6
-
7
- Quick checks for common issues.
8
-
9
- ## Install and update
10
-
11
- **Problem:** Install script fails immediately
12
-
13
- - Verify that `git` and `curl` are installed.
14
- - Check internet connectivity.
15
- - Try running with verbose output: `bash -x install.sh`
16
-
17
- **Problem:** Chezmoi apply fails
18
-
19
- - Re-run `chezmoi apply` to re-sync state.
20
- - Check for merge conflicts: `chezmoi diff`
21
- - If hooks fail, check `~/.local/share/dotfiles.log` for details.
22
- - For non-interactive sessions, force apply to avoid TTY prompts: `DOTFILES_NONINTERACTIVE=1 dot apply --force`
23
-
24
- **Problem:** Packages fail to install
25
-
26
- - macOS: Verify Homebrew is installed and up to date (`brew update`)
27
- - Linux: Run `sudo apt-get update` first
28
- - Verify you have sufficient permissions
29
-
30
- ## Shell startup
31
-
32
- **Problem:** Shell is slow to start
33
-
34
- - Run `dot benchmark` to measure startup time
35
- - Profile with `zsh -x` to trace startup
36
- - Check for slow plugins or large history files
37
-
38
- **Problem:** Aliases or functions not available
39
-
40
- - Run `chezmoi apply` to regenerate config files
41
- - Source your shell config: `source ~/.zshrc`
42
- - Verify the relevant tool is installed
43
-
44
- **Problem:** `dot doctor` prints a directory listing instead of diagnostics
45
-
46
- - This usually means `dot` was shadowed by a navigation alias in the current shell session.
47
- - Check resolution: `type -a dot`
48
- - Fix current session: `unalias dot 2>/dev/null || true && exec zsh`
49
- - Validate after reload: `dot doctor`
50
-
51
- **Problem:** Zsh reports it cannot write `.zwc` files
52
-
53
- - Cause: stale read-only zsh cache files after an upgrade.
54
- - Remove stale caches:
55
- - `find ~/.config/shell ~/.config/zsh -type f -name '*.zwc' -delete`
56
- - Reload shell: `exec zsh`
57
- - Re-run health checks: `dot doctor`
58
-
59
- **Problem:** Shell crashes on startup
60
-
61
- - Temporarily move `~/.zshrc` and retry to isolate the fault
62
- - Check for syntax errors: `zsh -n ~/.zshrc`
63
- - Review recent changes: `chezmoi diff`
64
-
65
- ## Secrets and encryption
66
-
67
- **Problem:** Encrypted files fail to decrypt
68
-
69
- - Confirm `~/.config/chezmoi/key.txt` exists.
70
- - Verify the key matches the one used for encryption.
71
- - Re-initialize with `dot secrets-init` if needed.
72
-
73
- **Problem:** Age encryption not working
74
-
75
- - Verify `age` is installed: `command -v age`
76
- - Check key permissions: `ls -la ~/.config/chezmoi/key.txt` (should be 600)
77
-
78
- ## Neovim
79
-
80
- **Problem:** Plugins fail to load
81
-
82
- - Run `:checkhealth` in Neovim
83
- - Update plugins: `:Lazy sync`
84
- - Check for missing dependencies (node, python, etc.)
85
-
86
- **Problem:** LSP not working
87
-
88
- - Install required language servers
89
- - Check `:LspInfo` for status
90
- - Review `:LspLog` for errors
91
-
92
- ## Git
93
-
94
- **Problem:** Git aliases not working
95
-
96
- - Check if Git config is applied: `git config --list`
97
- - Re-apply dotfiles: `chezmoi apply`
98
-
99
- **Problem:** Delta (diff pager) not showing colors
100
-
101
- - Verify `delta` is installed
102
- - Confirm your terminal supports 256 colors
103
-
104
- ## Kubernetes tools
105
-
106
- **Problem:** kubectl context issues
107
-
108
- - List contexts: `kubectl config get-contexts`
109
- - Switch context: `kubectx <context-name>`
110
- - Check kubeconfig: `echo $KUBECONFIG`
111
-
112
- **Problem:** Minikube won't start
113
-
114
- - Verify Docker is running
115
- - Try: `minikube delete && minikube start`
116
- - Check logs: `minikube logs`
117
-
118
- ## Performance
119
-
120
- **Problem:** High memory usage
121
-
122
- - Look for runaway processes: `htop` or `btop`
123
- - Review shell history size in atuin config
124
- - Disable unused plugins
125
-
126
- ## Common infrastructure failures
127
-
128
- **Problem:** Nix isn't installed or commands not found
129
-
130
- - Ensure you have followed the installation guide: `curl -L https://nixos.org/nix/install | sh`
131
- - On Linux, you might need to enable experimental features in `~/.config/nix/nix.conf`:
132
- `experimental-features = nix-command flakes`
133
- - Verify the daemon is running: `ps aux | grep nix-daemon`
134
-
135
- **Problem:** Systemd isn't available (mostly WSL2)
136
-
137
- - Dotfiles functions that rely on systemd (like `pueue` management) will fallback to direct execution.
138
- - To enable systemd in WSL2, add this to `/etc/wsl.conf` (requires Windows 11 or latest WSL):
139
-
140
- ```ini
141
- [boot]
142
- systemd=true
143
- ```
144
-
145
- - Restart WSL: `wsl.exe --shutdown`
146
-
147
- **Problem:** GPG or SSH signing fails
148
-
149
- - Check if your key is present: `gpg --list-secret-keys` or `ssh-add -l`
150
- - Ensure `GPG_TTY` is set (dotfiles does this automatically in `rc.d`).
151
- - For hardware keys (Yubikey), ensure `pcscd` is running on Linux.
152
-
153
- ## Advanced Troubleshooting
154
-
155
- ### WSL2 and Nix Integration Issues
156
-
157
- For complex WSL2 edge cases, Nix integration problems, and recovery procedures, see the comprehensive guide:
158
- **[WSL2 & Nix Troubleshooting Guide](WSL2_NIX_TROUBLESHOOTING.md)**
159
-
160
- This guide covers:
161
-
162
- - WSL2 filesystem and networking edge cases
163
- - Nix installation and flake management issues
164
- - Complete system recovery procedures
165
- - Performance optimization for WSL2/Nix environments
166
- - Cross-platform migration scenarios
167
-
168
- ## Still stuck
169
-
170
- Open an issue with:
171
-
172
- - OS + version
173
- - Output of `dot doctor` (if available)
174
- - Relevant log snippets from `~/.local/share/dotfiles.log`
175
- - Steps to reproduce the issue
176
- - For WSL2/Nix issues: Include diagnostic report from the advanced guide