@sebastienrousseau/dotfiles 0.2.500 → 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 (204) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/README.md +82 -44
  3. package/docs/.vitepress/reports/localization-readability-audit.md +4 -0
  4. package/docs/AI.md +8 -2
  5. package/docs/CNAME +1 -0
  6. package/docs/COPYRIGHT +1 -1
  7. package/docs/NAMING_CONVENTIONS.md +7 -0
  8. package/docs/README.md +4 -0
  9. package/docs/_config.yml +59 -0
  10. package/docs/adr/ADR-001-ci-cd-pipeline.md +17 -0
  11. package/docs/adr/ADR-002-shell-performance.md +9 -0
  12. package/docs/adr/ADR-003-security-first.md +18 -0
  13. package/docs/adr/ADR-004-cli-architecture.md +14 -0
  14. package/docs/adr/ADR-005-chezmoi-choice.md +10 -0
  15. package/docs/adr/ADR-006-shell-selection.md +9 -0
  16. package/docs/adr/ADR-007-multi-shell-parity.md +10 -1
  17. package/docs/adr/ADR-008-alias-system-architecture.md +10 -0
  18. package/docs/adr/ADR-009-wallpaper-driven-theming.md +131 -0
  19. package/docs/adr/ADR-010-starship-transient-prompt.md +144 -0
  20. package/docs/adr/ADR-011-nushell-tier3-keep.md +144 -0
  21. package/docs/adr/README.md +7 -0
  22. package/docs/architecture/ARCHITECTURE.md +4 -0
  23. package/docs/architecture/INTEROP.md +8 -0
  24. package/docs/architecture/REPO_LAYOUT.md +5 -1
  25. package/docs/architecture/WALKTHROUGH.md +4 -0
  26. package/docs/architecture/fleet-deployment.md +4 -0
  27. package/docs/archive/EUXIS_2026_REVIEW.md +11 -3
  28. package/docs/archive/LEGACY_ROADMAP.md +45 -27
  29. package/docs/archive/MILESTONE_v0.2.493.md +4 -0
  30. package/docs/archive/PLAN.md +46 -8
  31. package/docs/archive/REPO_AUDIT.md +8 -0
  32. package/docs/guides/INSTALL.md +4 -0
  33. package/docs/guides/NEOVIM_IDE_GUIDE.md +9 -0
  34. package/docs/guides/THEMING.md +8 -0
  35. package/docs/guides/TROUBLESHOOTING.md +28 -0
  36. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +70 -1
  37. package/docs/index.md +6 -2
  38. package/docs/interop/A2A.md +7 -0
  39. package/docs/interop/POWERSHELL.md +102 -0
  40. package/docs/manual/00-introduction.md +5 -1
  41. package/docs/manual/01-concepts/01-architecture.md +4 -0
  42. package/docs/manual/01-concepts/02-trust-model.md +6 -2
  43. package/docs/manual/01-concepts/03-theme-engine.md +4 -0
  44. package/docs/manual/01-concepts/04-fleet.md +7 -1
  45. package/docs/manual/01-concepts/05-self-healing.md +8 -1
  46. package/docs/manual/02-tutorials/01-first-install.md +5 -0
  47. package/docs/manual/02-tutorials/02-add-wallpaper.md +5 -0
  48. package/docs/manual/02-tutorials/03-create-profile.md +6 -0
  49. package/docs/manual/02-tutorials/04-encrypt-secret.md +6 -0
  50. package/docs/manual/02-tutorials/05-deploy-fleet.md +5 -1
  51. package/docs/manual/03-reference/01-dot-cli.md +4 -0
  52. package/docs/manual/03-reference/02-config-files.md +8 -2
  53. package/docs/manual/03-reference/03-environment.md +4 -0
  54. package/docs/manual/03-reference/04-templates.md +7 -1
  55. package/docs/manual/03-reference/05-feature-flags.md +10 -0
  56. package/docs/manual/04-cookbook/01-recipes.md +4 -0
  57. package/docs/manual/04-cookbook/02-troubleshooting.md +32 -0
  58. package/docs/manual/04-cookbook/03-faq.md +8 -0
  59. package/docs/manual/05-appendices/A-platform-matrix.md +4 -0
  60. package/docs/manual/05-appendices/B-security-checklist.md +6 -0
  61. package/docs/manual/05-appendices/C-glossary.md +4 -0
  62. package/docs/manual/05-appendices/D-bibliography.md +5 -1
  63. package/docs/manual/05-appendices/E-license.md +4 -0
  64. package/docs/manual/_toc.yml +1 -1
  65. package/docs/manual/command-index.md +4 -0
  66. package/docs/manual/concept-index.md +4 -0
  67. package/docs/operations/ATTESTATION.md +5 -0
  68. package/docs/operations/CI_CADENCE.md +107 -0
  69. package/docs/operations/CI_COMPOSITES.md +156 -0
  70. package/docs/operations/COMPLETIONS.md +123 -0
  71. package/docs/operations/COVERAGE.md +148 -0
  72. package/docs/operations/DRIFT.md +107 -0
  73. package/docs/operations/MAINTENANCE.md +5 -1
  74. package/docs/operations/MIGRATION.md +14 -6
  75. package/docs/operations/OPERATIONS.md +24 -0
  76. package/docs/operations/PERFORMANCE.md +133 -0
  77. package/docs/operations/RELIABILITY.md +6 -0
  78. package/docs/operations/ROADMAP.md +36 -18
  79. package/docs/operations/TESTING.md +4 -0
  80. package/docs/operations/TRACEABILITY.md +4 -0
  81. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +4 -0
  82. package/docs/operations/VERSION_SYNC.md +54 -5
  83. package/docs/reference/ALIASES.md +7 -0
  84. package/docs/reference/ALIASES_CHEATSHEET.md +5 -1
  85. package/docs/reference/ALIASES_DEPRECATIONS.md +5 -1
  86. package/docs/reference/FEATURES.md +4 -0
  87. package/docs/reference/FONTS.md +4 -0
  88. package/docs/reference/PROFILES.md +4 -0
  89. package/docs/reference/SCREENSHOTS.md +4 -0
  90. package/docs/reference/SCRIPTS.md +4 -0
  91. package/docs/reference/SUPPORT_MATRIX.md +10 -4
  92. package/docs/reference/THEMES.md +4 -0
  93. package/docs/reference/TOOLS.md +4 -0
  94. package/docs/reference/UTILS.md +16 -12
  95. package/docs/security/AI_ACT_COMPLIANCE.md +4 -0
  96. package/docs/security/AUDIT_BYPASS.md +103 -0
  97. package/docs/security/AUTOMATION_SECRETS.md +4 -0
  98. package/docs/security/CI_EGRESS_ALLOWLIST.md +127 -0
  99. package/docs/security/COMPLIANCE.md +5 -0
  100. package/docs/security/DEPS_DEV_EXCEPTIONS.md +86 -0
  101. package/docs/security/ENCRYPTION.md +5 -0
  102. package/docs/security/FMEA.md +4 -0
  103. package/docs/security/HISTORY_FILTERING.md +132 -0
  104. package/docs/security/INCIDENT_RESPONSE.md +4 -0
  105. package/docs/security/INSTALL_VERIFICATION.md +122 -0
  106. package/docs/security/KEYS.md +4 -0
  107. package/docs/security/KEY_ROTATION.md +4 -0
  108. package/docs/security/MCP_POLICY.md +9 -0
  109. package/docs/security/POLICY_RELEASES.md +4 -0
  110. package/docs/security/README.md +4 -0
  111. package/docs/security/SCORECARD.md +80 -0
  112. package/docs/security/SECRETS.md +12 -0
  113. package/docs/security/SECURITY.md +4 -0
  114. package/docs/security/SECURITY_CHECKLIST.md +11 -0
  115. package/docs/security/SHELL_EXEMPTIONS.md +145 -0
  116. package/docs/security/SOUP_REGISTER.md +4 -0
  117. package/docs/security/THREAT_MODEL.md +10 -0
  118. package/docs/security/VERIFICATION_VALIDATION.md +5 -1
  119. package/docs/themes/README.md +4 -0
  120. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +4 -0
  121. package/dot_config/ai/identity.md +3 -0
  122. package/dot_config/ai/patterns/architect.md +2 -0
  123. package/dot_config/ai/patterns/hardener.md +2 -0
  124. package/dot_config/ai/patterns/refactor.md +2 -0
  125. package/dot_config/alacritty/alacritty.toml.tmpl +3 -3
  126. package/dot_config/atuin/config.toml.tmpl +47 -0
  127. package/dot_config/dotfiles/agent-card.json +1 -1
  128. package/dot_config/dotfiles/boot/README.md +2 -0
  129. package/dot_config/dotfiles/grub/README.md +2 -0
  130. package/dot_config/dotfiles/lock/README.md +2 -0
  131. package/dot_config/fish/conf.d/init.fish.tmpl +21 -0
  132. package/dot_config/fish/functions/_cached_eval.fish +84 -11
  133. package/dot_config/fish/functions/_cached_eval_clear.fish +17 -0
  134. package/dot_config/foot/foot.ini.tmpl +3 -3
  135. package/dot_config/fuzzel/fuzzel.ini.tmpl +2 -2
  136. package/dot_config/ghostty/config.tmpl +3 -3
  137. package/dot_config/git/hooks/executable_commit-msg +146 -0
  138. package/dot_config/goose/config.yaml +2 -2
  139. package/dot_config/gtk-3.0/gtk.css.tmpl +2 -2
  140. package/dot_config/gtk-3.0/settings.ini.tmpl +2 -2
  141. package/dot_config/gtk-4.0/gtk.css.tmpl +2 -2
  142. package/dot_config/gtk-4.0/settings.ini.tmpl +2 -2
  143. package/dot_config/kitty/kitty.conf.tmpl +3 -3
  144. package/dot_config/mise/config.toml +1 -1
  145. package/dot_config/niri/config.kdl.tmpl +2 -2
  146. package/dot_config/nushell/cached_eval.nu +80 -0
  147. package/dot_config/nushell/env.nu.tmpl +21 -13
  148. package/dot_config/shell/00-core-paths.sh.tmpl +1 -0
  149. package/dot_config/shell/05-core-safety.sh +1 -0
  150. package/dot_config/shell/10-secrets.sh +1 -0
  151. package/dot_config/shell/40-fzf-defaults.sh.tmpl +1 -0
  152. package/dot_config/shell/40-ls-colors.sh +1 -0
  153. package/dot_config/shell/50-logic-functions-core.sh.tmpl +1 -0
  154. package/dot_config/shell/50-logic-functions.sh.tmpl +1 -0
  155. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +1 -0
  156. package/dot_config/shell/90-ux-aliases.sh.tmpl +1 -0
  157. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +1 -0
  158. package/dot_config/shell/README.md +25 -8
  159. package/dot_config/starship.toml.tmpl +2 -2
  160. package/dot_config/tmux/tmux.conf.tmpl +3 -3
  161. package/dot_config/user-dirs.dirs +1 -0
  162. package/dot_config/vscode/settings.json.tmpl +2 -2
  163. package/dot_config/waybar/config.jsonc.tmpl +2 -2
  164. package/dot_config/waybar/style.css.tmpl +2 -2
  165. package/dot_config/wezterm/wezterm.lua.tmpl +3 -3
  166. package/dot_config/zsh/dot_zshrc.tmpl +154 -17
  167. package/dot_config/zsh/rc.d/00-alias-shims.zsh +28 -6
  168. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +26 -6
  169. package/dot_local/bin/executable_bm +2 -0
  170. package/dot_local/bin/executable_dot +9 -2
  171. package/dot_local/bin/executable_dot-load-benchmark +1 -1
  172. package/dot_local/bin/executable_notify +2 -0
  173. package/dot_local/bin/executable_open +2 -0
  174. package/dot_local/bin/executable_tour +4 -2
  175. package/dot_local/bin/executable_up +3 -1
  176. package/install.sh +12 -4
  177. package/package.json +1 -1
  178. package/scripts/ci/check-dangerous-chmod.sh +19 -0
  179. package/scripts/ci/check-deps-dev.sh +236 -0
  180. package/scripts/ci/check-insecure-tls.sh +61 -0
  181. package/scripts/ci/check-regression-traceability.sh +67 -0
  182. package/scripts/ci/check-shell-preamble.sh +106 -0
  183. package/scripts/ci/run-coverage.sh +362 -0
  184. package/scripts/ci/validate-chezmoidata.sh +25 -0
  185. package/scripts/diagnostics/doctor.sh +173 -5
  186. package/scripts/diagnostics/drift-dashboard.sh +177 -13
  187. package/scripts/diagnostics/health.sh +21 -4
  188. package/scripts/diagnostics/perf.sh +304 -77
  189. package/scripts/diagnostics/workstation-attestation.sh +6 -1
  190. package/scripts/dot/commands/agent.sh +14 -5
  191. package/scripts/dot/commands/ai.sh +75 -10
  192. package/scripts/dot/lib/bento.sh +2 -1
  193. package/scripts/dot/lib/log.sh +6 -0
  194. package/scripts/dot/lib/platform.sh +1 -0
  195. package/scripts/dot/lib/ui.sh +11 -0
  196. package/scripts/dot/lib/utils.sh +5 -0
  197. package/scripts/git-hooks/pre-commit-audit.sh +1 -1
  198. package/scripts/git-hooks/pre-push +66 -3
  199. package/scripts/ops/heal-chezmoi.sh +41 -6
  200. package/scripts/qa/powershell-contract.ps1 +95 -0
  201. package/scripts/theme/merge-wallpaper.sh +4 -0
  202. package/scripts/theme/switch.sh +20 -10
  203. package/dot_config/atuin/config.toml +0 -40
  204. package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Self-Healing
2
6
 
3
7
  `.dotfiles` detects, diagnoses, and repairs configuration drift, missing tools, broken symlinks, and environmental damage — often without user intervention.
@@ -124,11 +128,13 @@ dot rollback clean # delete snapshots older than 30 days
124
128
  ```
125
129
 
126
130
  Snapshots include:
131
+
127
132
  - Every file chezmoi would have overwritten
128
133
  - The previous `.chezmoidata.toml` and `chezmoi.toml`
129
134
  - A pointer to the Git SHA at apply time
130
135
 
131
136
  They do **not** include:
137
+
132
138
  - Generated caches (`~/.cache/`)
133
139
  - Tool binaries (Mise-managed)
134
140
  - External state (databases, remote repos)
@@ -138,7 +144,7 @@ They do **not** include:
138
144
  `dot bundle` creates a self-contained archive that can restore the workstation without network access:
139
145
 
140
146
  ```
141
- dotfiles-bundle-v0.2.500-20260416.tar.zst
147
+ dotfiles-bundle-v0.2.501-20260416.tar.zst
142
148
  ├── source/ # Full git clone at current HEAD
143
149
  ├── tools/ # Pre-built chezmoi binary + mise
144
150
  ├── secrets/ # Age-encrypted snapshot of ~/.config/age/
@@ -173,6 +179,7 @@ Recovery use case: you're stranded on a new machine with no internet. Copy the b
173
179
  | Compliance (policy hash match) | 15 |
174
180
 
175
181
  Scores:
182
+
176
183
  - 90-100 — healthy
177
184
  - 70-89 — minor issues
178
185
  - 50-69 — needs attention
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Tutorial: First Install
2
6
 
3
7
  End-to-end installation and verification, from zero to a fully-working environment in under 5 minutes.
@@ -16,6 +20,7 @@ bash -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfil
16
20
  ```
17
21
 
18
22
  The installer:
23
+
19
24
  1. Verifies prerequisites (`git`, `curl`, write access to `~`)
20
25
  2. Downloads chezmoi via the SHA256-verified installer
21
26
  3. Clones the dotfiles source to `~/.dotfiles`
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Tutorial: Add a Wallpaper → Theme
2
6
 
3
7
  Drop an image. Get a fully-WCAG-AAA terminal theme.
@@ -57,6 +61,7 @@ bash scripts/theme/merge-wallpaper.sh mytheme
57
61
  ```
58
62
 
59
63
  This:
64
+
60
65
  1. Resizes both to 6016×6016 (preserving aspect ratio, center-cropped)
61
66
  2. Encodes both into a single `.heic` via `heif-enc`
62
67
  3. Injects `apple_desktop:apr` XMP metadata (image 0 = light, image 1 = dark)
@@ -1,3 +1,8 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+ {% raw %}
5
+
1
6
  # Tutorial: Create a Machine Profile
2
7
 
3
8
  Machine profiles tell chezmoi how to render templates differently on each host — display scale, keyboard layout, performance preset, available features.
@@ -236,3 +241,4 @@ Profiles let one source tree produce correctly-configured output on every host y
236
241
  - [Concept: Fleet Architecture](../01-concepts/04-fleet.md)
237
242
  - [Reference: Templates](../03-reference/04-templates.md)
238
243
  - [Reference: Feature Flags](../03-reference/05-feature-flags.md)
244
+ {% endraw %}
@@ -1,3 +1,8 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+ {% raw %}
5
+
1
6
  # Tutorial: Encrypt a Secret
2
7
 
3
8
  How to store an API key (or any secret) encrypted in the repository using Age and SOPS — decrypted automatically on `dot apply`.
@@ -273,3 +278,4 @@ chezmoi apply --verbose dot_tmp/stripe-key.txt
273
278
  - [Concept: Trust Model](../01-concepts/02-trust-model.md) — the security architecture
274
279
  - [Reference: Secret operations](../03-reference/01-dot-cli.md#secrets)
275
280
  - [Security: Secret management](../../security/SECRETS.md)
281
+ {% endraw %}
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Tutorial: Deploy to a Fleet
2
6
 
3
7
  Roll out `.dotfiles` across multiple workstations and verify they're in sync.
@@ -111,7 +115,7 @@ dot fleet attest
111
115
  Expected output:
112
116
 
113
117
  ```
114
- Fleet Attestation — v0.2.500
118
+ Fleet Attestation — v0.2.501
115
119
 
116
120
  Host Git SHA Policy Tools OK Drift Verified
117
121
  -------------- ---------- --------- ---------- ------- --------
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Reference: The `dot` CLI
2
6
 
3
7
  Complete command reference. Every subcommand, every flag, every exit code.
@@ -1,3 +1,8 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+ {% raw %}
5
+
1
6
  # Reference: Configuration Files
2
7
 
3
8
  Every config file read or written by `.dotfiles`, with its schema and purpose.
@@ -28,7 +33,7 @@ Every config file read or written by `.dotfiles`, with its schema and purpose.
28
33
 
29
34
  ```toml
30
35
  # Version — bumped by version-sync.sh at release time
31
- dotfiles_version = "0.2.500"
36
+ dotfiles_version = "0.2.501"
32
37
 
33
38
  # Machine preset — override in ~/.config/chezmoi/chezmoi.toml per host
34
39
  machine = ""
@@ -214,7 +219,7 @@ Agent Card (MCP A2A spec):
214
219
  ```json
215
220
  {
216
221
  "name": "dotfiles-agent",
217
- "version": "0.2.500",
222
+ "version": "0.2.501",
218
223
  "capabilities": ["chezmoi.apply", "theme.switch", "secrets.decrypt"],
219
224
  "policy_hash": "0x7f2a..."
220
225
  }
@@ -257,3 +262,4 @@ _build/
257
262
  - [Template Variables](04-templates.md)
258
263
  - [Feature Flags](05-feature-flags.md)
259
264
  - [First Install Tutorial](../02-tutorials/01-first-install.md)
265
+ {% endraw %}
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Reference: Environment Variables
2
6
 
3
7
  All environment variables that affect `.dotfiles` behaviour.
@@ -1,3 +1,8 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+ {% raw %}
5
+
1
6
  # Reference: Template Variables
2
7
 
3
8
  Every variable available to chezmoi templates (`.tmpl` files).
@@ -8,7 +13,7 @@ Flat top-level keys:
8
13
 
9
14
  | Variable | Type | Example |
10
15
  |:---|:---|:---|
11
- | `.dotfiles_version` | string | `"0.2.500"` |
16
+ | `.dotfiles_version` | string | `"0.2.501"` |
12
17
  | `.theme` | string | `"tahoe-dark"` |
13
18
  | `.machine` | string | `"macbook-t2"` |
14
19
  | `.profile` | string | `"laptop"` |
@@ -182,3 +187,4 @@ If any template fails to render, the build breaks before merge.
182
187
  - [Chezmoi template reference](https://www.chezmoi.io/reference/templates/)
183
188
  - [Configuration Files](02-config-files.md)
184
189
  - [Create a Profile tutorial](../02-tutorials/03-create-profile.md)
190
+ {% endraw %}
@@ -1,3 +1,8 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+ {% raw %}
5
+
1
6
  # Reference: Feature Flags
2
7
 
3
8
  Feature flags toggle optional subsystems. Set in `.chezmoidata.toml`, override per-preset in `.chezmoidata/hardware.toml`.
@@ -28,6 +33,7 @@ The effective value is `mergeOverwrite` of global + preset features.
28
33
  ### `dms` — Dank Material Shell
29
34
 
30
35
  When `true`:
36
+
31
37
  - Configures DMS IPC for theme sync
32
38
  - Enables Quickshell templates
33
39
  - Sets up per-monitor wallpaper via `dms ipc wallpaper`
@@ -37,6 +43,7 @@ Requires: Niri + Quickshell + DMS installed.
37
43
  ### `linux_desktop` — Linux Desktop Configs
38
44
 
39
45
  When `true`:
46
+
40
47
  - Enables GTK 3/4 theme generation from `themes.toml`
41
48
  - Configures `gsettings color-scheme` behaviour
42
49
  - Generates desktop file entries for installed tools
@@ -46,6 +53,7 @@ No effect on macOS.
46
53
  ### `niri` — Niri Window Manager
47
54
 
48
55
  When `true`:
56
+
49
57
  - Generates `~/.config/niri/config.kdl`
50
58
  - Enables Niri keybindings from `keybinds.toml`
51
59
  - Configures workspace rules per preset
@@ -55,6 +63,7 @@ Requires: Niri installed.
55
63
  ### `waybar` — Waybar Status Bar
56
64
 
57
65
  When `true`:
66
+
58
67
  - Generates `~/.config/waybar/config.jsonc` + `style.css`
59
68
  - Hooks into theme switching via `dot-theme-sync`
60
69
 
@@ -116,3 +125,4 @@ Flags can be deprecated without breaking existing hosts. The deprecation process
116
125
 
117
126
  - [Configuration Files](02-config-files.md)
118
127
  - [Create a Profile](../02-tutorials/03-create-profile.md)
128
+ {% endraw %}
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Cookbook: Recipes
2
6
 
3
7
  Thirty short recipes for common tasks.
@@ -1,3 +1,8 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+ {% raw %}
5
+
1
6
  # Cookbook: Troubleshooting
2
7
 
3
8
  Symptom → cause → fix.
@@ -9,6 +14,7 @@ Symptom → cause → fix.
9
14
  **Cause**: `/usr/local/bin` or `~/.local/bin` not in PATH at install time.
10
15
 
11
16
  **Fix**:
17
+
12
18
  ```sh
13
19
  export PATH="$HOME/.local/bin:$PATH"
14
20
  bash -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh)"
@@ -19,6 +25,7 @@ bash -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfil
19
25
  **Cause**: Permission issue on `~/.local`.
20
26
 
21
27
  **Fix**:
28
+
22
29
  ```sh
23
30
  mkdir -p ~/.local/share ~/.local/state ~/.local/bin
24
31
  chmod 755 ~/.local ~/.local/share
@@ -29,6 +36,7 @@ chmod 755 ~/.local ~/.local/share
29
36
  **Cause**: Slow network or corporate proxy.
30
37
 
31
38
  **Fix**:
39
+
32
40
  ```sh
33
41
  export https_proxy=$HTTP_PROXY # if applicable
34
42
  # Or pre-download chezmoi manually
@@ -43,6 +51,7 @@ apt install chezmoi # Debian 13+
43
51
  **Cause**: Chezmoi detected local drift on a managed file.
44
52
 
45
53
  **Fix**:
54
+
46
55
  ```sh
47
56
  dot diff # see what differs
48
57
  dot apply --force # overwrite local
@@ -55,10 +64,13 @@ dot add <path> # import local change to source
55
64
  **Cause**: A template references a missing data field.
56
65
 
57
66
  **Fix**: Check that your `.chezmoidata.toml` has the required field. For example:
67
+
58
68
  ```sh
59
69
  chezmoi execute-template '{{- $hw := index .hardware .machine -}}{{ $hw.wm }}'
60
70
  ```
71
+
61
72
  If `machine` is not set in your `~/.config/chezmoi/chezmoi.toml`, `index` returns nil. Set:
73
+
62
74
  ```toml
63
75
  [data]
64
76
  machine = "macbook-t2"
@@ -69,6 +81,7 @@ machine = "macbook-t2"
69
81
  **Cause**: Cached init scripts are stale.
70
82
 
71
83
  **Fix**:
84
+
72
85
  ```sh
73
86
  dot clean-cache
74
87
  dot prewarm
@@ -82,6 +95,7 @@ exec $SHELL -l
82
95
  **Cause**: No wallpapers discovered, themes.toml not generated.
83
96
 
84
97
  **Fix**:
98
+
85
99
  ```sh
86
100
  dot theme rebuild --force
87
101
  ```
@@ -91,6 +105,7 @@ dot theme rebuild --force
91
105
  **Cause**: Theme name doesn't exist in `themes.toml`.
92
106
 
93
107
  **Fix**:
108
+
94
109
  ```sh
95
110
  dot theme list # see valid names
96
111
  dot theme rebuild --force # regenerate if expected but missing
@@ -101,10 +116,12 @@ dot theme rebuild --force # regenerate if expected but missing
101
116
  **Cause**: System Settings UI cached the old value.
102
117
 
103
118
  **Fix**: `dot-theme-sync` now calls `killall cfprefsd SystemUIServer Dock "System Settings"`. If it still doesn't refresh:
119
+
104
120
  ```sh
105
121
  killall -KILL Dock SystemUIServer
106
122
  sudo killall -KILL cfprefsd
107
123
  ```
124
+
108
125
  Or log out and back in.
109
126
 
110
127
  ### Symptom: Wallpaper not applying
@@ -112,6 +129,7 @@ Or log out and back in.
112
129
  **Cause**: Wrong format or missing DE support on Linux.
113
130
 
114
131
  **Fix**:
132
+
115
133
  ```sh
116
134
  # Check the wallpaper file exists
117
135
  ls -la ~/Pictures/Wallpapers/
@@ -127,6 +145,7 @@ sudo apt install imagemagick-7
127
145
  **Cause**: Ghostty DBus or SIGUSR2 signaling failed.
128
146
 
129
147
  **Fix**:
148
+
130
149
  ```sh
131
150
  # Restart Ghostty manually, or:
132
151
  pkill -USR2 ghostty 2>/dev/null
@@ -140,6 +159,7 @@ pkill -USR2 ghostty 2>/dev/null
140
159
  **Cause**: `~/.config/age/keys.txt` missing or unreadable.
141
160
 
142
161
  **Fix**:
162
+
143
163
  ```sh
144
164
  ls -la ~/.config/age/keys.txt
145
165
  # Should be: -rw------- 1 user user
@@ -153,6 +173,7 @@ chmod 600 ~/.config/age/keys.txt
153
173
  **Cause**: Your Age public key isn't listed in the file's recipients.
154
174
 
155
175
  **Fix**:
176
+
156
177
  ```sh
157
178
  # Add your public key to .sops.yaml
158
179
  sops updatekeys path/to/file.sops.yaml
@@ -165,6 +186,7 @@ sops updatekeys path/to/file.sops.yaml
165
186
  **Cause**: A secret was committed to Git history.
166
187
 
167
188
  **Fix**:
189
+
168
190
  ```sh
169
191
  # Immediate mitigation
170
192
  dot verify --security # confirm which file
@@ -184,6 +206,7 @@ git filter-repo --path <file> --invert-paths
184
206
  **Cause**: Heavy modules loaded synchronously.
185
207
 
186
208
  **Fix**:
209
+
187
210
  ```sh
188
211
  dot benchmark --detailed
189
212
  # Identify which module is slow
@@ -200,6 +223,7 @@ dot prewarm
200
223
  **Cause**: Multiple health issues.
201
224
 
202
225
  **Fix**:
226
+
203
227
  ```sh
204
228
  dot doctor --verbose # see every failure
205
229
  dot heal # auto-fix what's possible
@@ -211,6 +235,7 @@ dot doctor # recheck
211
235
  **Cause**: Mise shim not activated.
212
236
 
213
237
  **Fix**:
238
+
214
239
  ```sh
215
240
  eval "$(mise activate zsh)" # or fish, bash
216
241
  dot doctor # confirm
@@ -223,6 +248,7 @@ dot doctor # confirm
223
248
  **Cause**: `~/.cargo/config.toml` not managed or was overridden.
224
249
 
225
250
  **Fix**:
251
+
226
252
  ```sh
227
253
  chezmoi apply ~/.cargo/config.toml
228
254
  cat ~/.cargo/config.toml | grep target-dir
@@ -234,6 +260,7 @@ cat ~/.cargo/config.toml | grep target-dir
234
260
  **Cause**: Created by shell init, but shell wasn't restarted.
235
261
 
236
262
  **Fix**:
263
+
237
264
  ```sh
238
265
  mkdir -p /tmp/builds
239
266
  # Or restart shell
@@ -247,6 +274,7 @@ exec $SHELL -l
247
274
  **Cause**: A fleet host is unreachable.
248
275
 
249
276
  **Fix**:
277
+
250
278
  ```sh
251
279
  # Check connectivity to each host
252
280
  for host in macbook-t2 surface-pro geekom-a9; do
@@ -261,6 +289,7 @@ done
261
289
  **Cause**: Remote host's SSH public key not in local `~/.ssh/allowed_signers`.
262
290
 
263
291
  **Fix**:
292
+
264
293
  ```sh
265
294
  # On the remote host:
266
295
  ssh remote-host 'cat ~/.ssh/id_ed25519.pub'
@@ -274,6 +303,7 @@ ssh remote-host 'cat ~/.ssh/id_ed25519.pub'
274
303
  **Cause**: `shfmt` formatting differs from canonical.
275
304
 
276
305
  **Fix**:
306
+
277
307
  ```sh
278
308
  shfmt -w -i 2 -ci scripts/**/*.sh install.sh .chezmoitemplates/**/*.sh
279
309
  # Commit the changes
@@ -284,6 +314,7 @@ shfmt -w -i 2 -ci scripts/**/*.sh install.sh .chezmoitemplates/**/*.sh
284
314
  **Cause**: New code added without tests.
285
315
 
286
316
  **Fix**:
317
+
287
318
  ```sh
288
319
  bash examples/example-coverage-gate.sh
289
320
  # Identifies uncovered modules
@@ -317,3 +348,4 @@ chezmoi --version
317
348
  - [Self-Healing concept](../01-concepts/05-self-healing.md)
318
349
  - [FAQ](03-faq.md)
319
350
  - [Security: Incident Response](../../security/INCIDENT_RESPONSE.md)
351
+ {% endraw %}
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Cookbook: Frequently Asked Questions
2
6
 
3
7
  ## General
@@ -36,6 +40,7 @@ CIELAB distances approximate human perception. A Δ in RGB might look identical
36
40
  ### Why not pre-built themes like Catppuccin or Rosé Pine?
37
41
 
38
42
  Two reasons:
43
+
39
44
  1. **Maintenance** — 100+ themes × 20+ applications = thousands of template variables to keep in sync. Generation from wallpapers eliminates that.
40
45
  2. **User agency** — users bring their own wallpapers. The theme adapts to them, not the other way around.
41
46
 
@@ -52,6 +57,7 @@ You don't directly — the accent hue is extracted from the wallpaper. But `_com
52
57
  ### Can I use my own theme without a wallpaper?
53
58
 
54
59
  Not directly — the engine expects a source image. You could:
60
+
55
61
  1. Pick a wallpaper whose palette you want
56
62
  2. Let the engine generate the theme
57
63
  3. Lock the generated `.toml` entry by copying to a non-regenerated path
@@ -116,6 +122,7 @@ DOTFILES_DEBUG=1 zsh -i -c exit 2>&1 | grep -E '\[debug [0-9]+ms\]'
116
122
  ```
117
123
 
118
124
  Common culprits:
125
+
119
126
  - nvm loading Node on every shell (use lazy loading)
120
127
  - `mise activate` with aggressive hook-env (set `activate_aggressive = false`)
121
128
  - Plugin manager scanning for updates
@@ -153,6 +160,7 @@ To maximize adoption and contribution. MIT is compatible with commercial use; co
153
160
  ### Why no GUI configurator?
154
161
 
155
162
  Text + Git is the optimal interface for a workstation baseline:
163
+
156
164
  - Versioned (Git history)
157
165
  - Reproducible (same input → same output)
158
166
  - Auditable (diff-able)
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Appendix A: Platform Support Matrix
2
6
 
3
7
  ## Supported Platforms
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Appendix B: Security Checklist
2
6
 
3
7
  Run this checklist after a fresh install and quarterly afterwards.
@@ -40,10 +44,12 @@ Run this checklist after a fresh install and quarterly afterwards.
40
44
  If a secret leak is detected:
41
45
 
42
46
  1. **Contain** — remove from history, force-push
47
+
43
48
  ```sh
44
49
  git filter-repo --path <file> --invert-paths
45
50
  git push --force
46
51
  ```
52
+
47
53
  2. **Rotate** — change the leaked secret upstream (Stripe key, SSH key, etc.)
48
54
  3. **Audit** — check who/what had access
49
55
  4. **Notify** — inform affected parties if required
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Appendix C: Glossary
2
6
 
3
7
  | Term | Definition |
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Appendix D: Bibliography
2
6
 
3
7
  Cited works and recommended reading.
@@ -51,4 +55,4 @@ Cited works and recommended reading.
51
55
 
52
56
  ## Author
53
57
 
54
- - **Rousseau, S.** *Dotfiles v0.2.500.* <https://github.com/sebastienrousseau/dotfiles>
58
+ - **Rousseau, S.** *Dotfiles v0.2.501.* <https://github.com/sebastienrousseau/dotfiles>
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Appendix E: License
2
6
 
3
7
  ## MIT License
@@ -2,7 +2,7 @@
2
2
  # Determines concatenation order for single-page HTML/PDF/EPUB
3
3
  title: "The .dotfiles Manual"
4
4
  subtitle: "A Trusted Agent Workstation for macOS, Linux, and WSL"
5
- version: "0.2.500"
5
+ version: "0.2.501"
6
6
 
7
7
  sections:
8
8
  - file: 00-introduction.md
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Command Index
2
6
 
3
7
  Alphabetical list of `dot` subcommands referenced in the manual.
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Concept Index
2
6
 
3
7
  Alphabetical list of concepts covered in the manual.
@@ -1,8 +1,13 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Workstation Attestation
2
6
 
3
7
  `dot attest` exports a machine-readable record of the current workstation state.
4
8
 
5
9
  It captures:
10
+
6
11
  - dotfiles version
7
12
  - platform and architecture
8
13
  - Git signing settings