@sebastienrousseau/dotfiles 0.2.500 → 0.2.502
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.
- package/CHANGELOG.md +154 -0
- package/README.md +113 -45
- package/docs/.vitepress/reports/localization-readability-audit.md +4 -0
- package/docs/AI.md +8 -2
- package/docs/CNAME +1 -0
- package/docs/COPYRIGHT +1 -1
- package/docs/NAMING_CONVENTIONS.md +7 -0
- package/docs/README.md +4 -0
- package/docs/_config.yml +59 -0
- package/docs/adr/ADR-001-ci-cd-pipeline.md +17 -0
- package/docs/adr/ADR-002-shell-performance.md +9 -0
- package/docs/adr/ADR-003-security-first.md +18 -0
- package/docs/adr/ADR-004-cli-architecture.md +14 -0
- package/docs/adr/ADR-005-chezmoi-choice.md +10 -0
- package/docs/adr/ADR-006-shell-selection.md +9 -0
- package/docs/adr/ADR-007-multi-shell-parity.md +10 -1
- package/docs/adr/ADR-008-alias-system-architecture.md +10 -0
- package/docs/adr/ADR-009-wallpaper-driven-theming.md +131 -0
- package/docs/adr/ADR-010-starship-transient-prompt.md +144 -0
- package/docs/adr/ADR-011-nushell-tier3-keep.md +144 -0
- package/docs/adr/README.md +7 -0
- package/docs/architecture/ARCHITECTURE.md +4 -0
- package/docs/architecture/INTEROP.md +8 -0
- package/docs/architecture/REPO_LAYOUT.md +5 -1
- package/docs/architecture/WALKTHROUGH.md +4 -0
- package/docs/architecture/fleet-deployment.md +4 -0
- package/docs/archive/EUXIS_2026_REVIEW.md +11 -3
- package/docs/archive/LEGACY_ROADMAP.md +45 -27
- package/docs/archive/MILESTONE_v0.2.493.md +4 -0
- package/docs/archive/PLAN.md +46 -8
- package/docs/archive/REPO_AUDIT.md +8 -0
- package/docs/guides/INSTALL.md +4 -0
- package/docs/guides/NEOVIM_IDE_GUIDE.md +9 -0
- package/docs/guides/THEMING.md +8 -0
- package/docs/guides/TROUBLESHOOTING.md +28 -0
- package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +70 -1
- package/docs/index.md +6 -2
- package/docs/interop/A2A.md +7 -0
- package/docs/interop/POWERSHELL.md +102 -0
- package/docs/manual/00-introduction.md +5 -1
- package/docs/manual/01-concepts/01-architecture.md +4 -0
- package/docs/manual/01-concepts/02-trust-model.md +6 -2
- package/docs/manual/01-concepts/03-theme-engine.md +4 -0
- package/docs/manual/01-concepts/04-fleet.md +7 -1
- package/docs/manual/01-concepts/05-self-healing.md +8 -1
- package/docs/manual/02-tutorials/01-first-install.md +5 -0
- package/docs/manual/02-tutorials/02-add-wallpaper.md +5 -0
- package/docs/manual/02-tutorials/03-create-profile.md +6 -0
- package/docs/manual/02-tutorials/04-encrypt-secret.md +6 -0
- package/docs/manual/02-tutorials/05-deploy-fleet.md +5 -1
- package/docs/manual/03-reference/01-dot-cli.md +67 -45
- package/docs/manual/03-reference/02-config-files.md +8 -2
- package/docs/manual/03-reference/03-environment.md +4 -0
- package/docs/manual/03-reference/04-templates.md +7 -1
- package/docs/manual/03-reference/05-feature-flags.md +72 -3
- package/docs/manual/04-cookbook/01-recipes.md +4 -0
- package/docs/manual/04-cookbook/02-troubleshooting.md +32 -0
- package/docs/manual/04-cookbook/03-faq.md +8 -0
- package/docs/manual/05-appendices/A-platform-matrix.md +4 -0
- package/docs/manual/05-appendices/B-security-checklist.md +6 -0
- package/docs/manual/05-appendices/C-glossary.md +4 -0
- package/docs/manual/05-appendices/D-bibliography.md +5 -1
- package/docs/manual/05-appendices/E-license.md +4 -0
- package/docs/manual/_toc.yml +1 -1
- package/docs/manual/command-index.md +16 -8
- package/docs/manual/concept-index.md +4 -0
- package/docs/manual/index.md +66 -0
- package/docs/operations/ATTESTATION.md +5 -0
- package/docs/operations/CI_CADENCE.md +107 -0
- package/docs/operations/CI_COMPOSITES.md +156 -0
- package/docs/operations/COMPLETIONS.md +123 -0
- package/docs/operations/COVERAGE.md +182 -0
- package/docs/operations/DRIFT.md +107 -0
- package/docs/operations/HARD_AUDIT_2026.md +631 -0
- package/docs/operations/MAINTENANCE.md +5 -1
- package/docs/operations/MIGRATION.md +14 -6
- package/docs/operations/OPERATIONS.md +24 -0
- package/docs/operations/PERFORMANCE.md +133 -0
- package/docs/operations/REGISTRY.md +89 -0
- package/docs/operations/RELIABILITY.md +6 -0
- package/docs/operations/ROADMAP.md +36 -18
- package/docs/operations/ROADMAP_2026.md +665 -0
- package/docs/operations/TESTING.md +4 -0
- package/docs/operations/TRACEABILITY.md +7 -0
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +4 -0
- package/docs/operations/VERSION_SYNC.md +54 -5
- package/docs/reference/ALIASES.md +7 -0
- package/docs/reference/ALIASES_CHEATSHEET.md +5 -1
- package/docs/reference/ALIASES_DEPRECATIONS.md +5 -1
- package/docs/reference/FEATURES.md +4 -0
- package/docs/reference/FONTS.md +4 -0
- package/docs/reference/POWERSHELL_PARITY.md +80 -0
- package/docs/reference/PROFILES.md +4 -0
- package/docs/reference/SCREENSHOTS.md +4 -0
- package/docs/reference/SCRIPTS.md +4 -0
- package/docs/reference/SUPPORT_MATRIX.md +10 -4
- package/docs/reference/THEMES.md +4 -0
- package/docs/reference/TOOLS.md +4 -0
- package/docs/reference/UTILS.md +16 -12
- package/docs/registry.json +6 -0
- package/docs/security/AI_ACT_COMPLIANCE.md +4 -0
- package/docs/security/AUDIT_BYPASS.md +103 -0
- package/docs/security/AUTOMATION_SECRETS.md +4 -0
- package/docs/security/CI_EGRESS_ALLOWLIST.md +127 -0
- package/docs/security/CI_PINNING.md +113 -0
- package/docs/security/COMMIT_SIGNING.md +138 -0
- package/docs/security/COMPLIANCE.md +5 -0
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +86 -0
- package/docs/security/DISCLOSURE.md +130 -0
- package/docs/security/ENCRYPTION.md +5 -0
- package/docs/security/FMEA.md +4 -0
- package/docs/security/HISTORY_FILTERING.md +132 -0
- package/docs/security/INCIDENT_RESPONSE.md +4 -0
- package/docs/security/INSTALL_VERIFICATION.md +122 -0
- package/docs/security/KEYS.md +4 -0
- package/docs/security/KEY_ROTATION.md +85 -1
- package/docs/security/MCP_POLICY.md +9 -0
- package/docs/security/POLICY_RELEASES.md +4 -0
- package/docs/security/README.md +4 -0
- package/docs/security/SCORECARD.md +140 -0
- package/docs/security/SECRETS.md +12 -0
- package/docs/security/SECURITY.md +4 -0
- package/docs/security/SECURITY_CHECKLIST.md +11 -0
- package/docs/security/SHELL_EXEMPTIONS.md +145 -0
- package/docs/security/SOUP_REGISTER.md +4 -0
- package/docs/security/THREAT_MODEL.md +10 -0
- package/docs/security/VERIFICATION_VALIDATION.md +5 -1
- package/docs/security/security-pubkey.asc +15 -0
- package/docs/themes/README.md +4 -0
- package/docs/themes/VISUAL_INTEGRITY_REPORT.md +4 -0
- package/dot_config/ai/identity.md +3 -0
- package/dot_config/ai/patterns/architect.md +2 -0
- package/dot_config/ai/patterns/hardener.md +2 -0
- package/dot_config/ai/patterns/refactor.md +2 -0
- package/dot_config/alacritty/alacritty.toml.tmpl +3 -3
- package/dot_config/atuin/config.toml.tmpl +47 -0
- package/dot_config/dotfiles/agent-card.json +1 -1
- package/dot_config/dotfiles/boot/README.md +2 -0
- package/dot_config/dotfiles/grub/README.md +2 -0
- package/dot_config/dotfiles/lock/README.md +2 -0
- package/dot_config/fish/conf.d/direnv.fish +4 -0
- package/dot_config/fish/conf.d/init.fish.tmpl +21 -0
- package/dot_config/fish/conf.d/mise-activate.fish +5 -0
- package/dot_config/fish/functions/_cached_eval.fish +84 -11
- package/dot_config/fish/functions/_cached_eval_clear.fish +17 -0
- package/dot_config/foot/foot.ini.tmpl +3 -3
- package/dot_config/fuzzel/fuzzel.ini.tmpl +2 -2
- package/dot_config/ghostty/config.tmpl +3 -3
- package/dot_config/git/hooks/executable_commit-msg +146 -0
- package/dot_config/goose/config.yaml +2 -2
- package/dot_config/gtk-3.0/gtk.css.tmpl +2 -2
- package/dot_config/gtk-3.0/settings.ini.tmpl +2 -2
- package/dot_config/gtk-4.0/gtk.css.tmpl +2 -2
- package/dot_config/gtk-4.0/settings.ini.tmpl +2 -2
- package/dot_config/kitty/kitty.conf.tmpl +3 -3
- package/dot_config/mise/config.toml +1 -1
- package/dot_config/niri/config.kdl.tmpl +2 -2
- package/dot_config/nushell/cached_eval.nu +80 -0
- package/dot_config/nushell/env.nu.tmpl +21 -13
- package/dot_config/shell/00-core-paths.sh.tmpl +9 -1
- package/dot_config/shell/05-core-safety.sh +1 -0
- package/dot_config/shell/10-secrets.sh +1 -0
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +1 -0
- package/dot_config/shell/40-ls-colors.sh +1 -0
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +1 -0
- package/dot_config/shell/50-logic-functions.sh.tmpl +1 -0
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +1 -0
- package/dot_config/shell/90-ux-aliases.sh.tmpl +1 -0
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +1 -0
- package/dot_config/shell/README.md +25 -8
- package/dot_config/starship.toml.tmpl +2 -2
- package/dot_config/tmux/tmux.conf.tmpl +3 -3
- package/dot_config/user-dirs.dirs +1 -0
- package/dot_config/vscode/settings.json.tmpl +2 -2
- package/dot_config/waybar/config.jsonc.tmpl +2 -2
- package/dot_config/waybar/style.css.tmpl +2 -2
- package/dot_config/wezterm/wezterm.lua.tmpl +3 -3
- package/dot_config/zsh/dot_zshrc.tmpl +207 -17
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +28 -6
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +27 -7
- package/dot_local/bin/executable_bm +2 -0
- package/dot_local/bin/executable_dot +56 -9
- package/dot_local/bin/executable_dot-bootstrap +0 -1
- package/dot_local/bin/executable_dot-load-benchmark +1 -1
- package/dot_local/bin/executable_dot-theme-sync +8 -8
- package/dot_local/bin/executable_notify +2 -0
- package/dot_local/bin/executable_open +2 -0
- package/dot_local/bin/executable_tour +4 -2
- package/dot_local/bin/executable_up +3 -1
- package/dot_local/share/man/man1/dot.1 +1 -1
- package/dot_local/share/zsh/completions/_dot +4 -0
- package/install.sh +53 -38
- package/package.json +1 -1
- package/scripts/ci/check-dangerous-chmod.sh +19 -0
- package/scripts/ci/check-deps-dev.sh +236 -0
- package/scripts/ci/check-insecure-tls.sh +61 -0
- package/scripts/ci/check-regression-traceability.sh +67 -0
- package/scripts/ci/check-shell-preamble.sh +106 -0
- package/scripts/ci/dot-cli-startup-bench.sh +126 -0
- package/scripts/ci/install-chezmoi-verified.sh +4 -1
- package/scripts/ci/lint-reusable-pins.sh +78 -0
- package/scripts/ci/run-coverage.sh +451 -0
- package/scripts/ci/validate-chezmoidata.sh +25 -0
- package/scripts/ci/windows-smoke-test.ps1 +136 -0
- package/scripts/diagnostics/doctor.sh +203 -5
- package/scripts/diagnostics/drift-dashboard.sh +177 -13
- package/scripts/diagnostics/health.sh +21 -4
- package/scripts/diagnostics/perf.sh +304 -77
- package/scripts/diagnostics/workstation-attestation.sh +6 -1
- package/scripts/dot/commands/agent.sh +33 -27
- package/scripts/dot/commands/agents.sh +325 -0
- package/scripts/dot/commands/ai.sh +75 -10
- package/scripts/dot/commands/aliases.sh +10 -8
- package/scripts/dot/commands/core.sh +10 -4
- package/scripts/dot/commands/fleet.sh +278 -3
- package/scripts/dot/commands/init.sh +184 -0
- package/scripts/dot/commands/meta.sh +7 -4
- package/scripts/dot/commands/registry.sh +263 -0
- package/scripts/dot/commands/tools.sh +49 -1
- package/scripts/dot/lib/bento.sh +2 -1
- package/scripts/dot/lib/log.sh +6 -0
- package/scripts/dot/lib/platform.sh +22 -8
- package/scripts/dot/lib/ui.sh +145 -2
- package/scripts/dot/lib/utils.sh +6 -1
- package/scripts/git-hooks/pre-commit-audit.sh +1 -1
- package/scripts/git-hooks/pre-push +66 -3
- package/scripts/lib/secrets_provider.sh +32 -6
- package/scripts/ops/heal-chezmoi.sh +41 -6
- package/scripts/ops/rollback.sh +14 -0
- package/scripts/qa/powershell-contract.ps1 +95 -0
- package/scripts/security/check-disclosure-key-expiry.sh +110 -0
- package/scripts/security/lock-configs.sh +11 -2
- package/scripts/theme/merge-wallpaper.sh +4 -0
- package/scripts/theme/switch.sh +20 -10
- package/scripts/version-sync.sh +3 -0
- package/dot_config/atuin/config.toml +0 -40
- 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.
|
|
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.
|
|
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.
|
|
@@ -147,19 +151,6 @@ dot attest [--output|-o <file>] [--sign|-s]
|
|
|
147
151
|
|
|
148
152
|
Default output: `~/.local/state/dotfiles/attestation/YYYY-MM-DD-HHMMSS.json`. With `--sign`, the JSON is signed with the user's SSH ED25519 key.
|
|
149
153
|
|
|
150
|
-
### `dot verify`
|
|
151
|
-
|
|
152
|
-
Verify integrity of the installation.
|
|
153
|
-
|
|
154
|
-
```
|
|
155
|
-
dot verify [--security|-s] [--attestation <path>]
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
| Flag | Effect |
|
|
159
|
-
|:---|:---|
|
|
160
|
-
| `--security`, `-s` | Run gitleaks + signature checks + policy hash |
|
|
161
|
-
| `--attestation <path>` | Verify an external attestation file |
|
|
162
|
-
|
|
163
154
|
### `dot lint`
|
|
164
155
|
|
|
165
156
|
Lint shell scripts (shellcheck, shfmt).
|
|
@@ -170,24 +161,6 @@ dot lint [--path <glob>] [--strict]
|
|
|
170
161
|
|
|
171
162
|
## Performance
|
|
172
163
|
|
|
173
|
-
### `dot benchmark`
|
|
174
|
-
|
|
175
|
-
Measure shell startup time.
|
|
176
|
-
|
|
177
|
-
```
|
|
178
|
-
dot benchmark [--detailed|-d] [--profile|-p] [--compare|-c] [--waterfall|-w] [--runs|-r <n>]
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
| Flag | Effect |
|
|
182
|
-
|:---|:---|
|
|
183
|
-
| `--detailed`, `-d` | Per-module timing breakdown |
|
|
184
|
-
| `--profile`, `-p` | Profile with `$SHELL -ixc ""` |
|
|
185
|
-
| `--compare`, `-c` | Compare against baseline |
|
|
186
|
-
| `--waterfall`, `-w` | Waterfall visualization |
|
|
187
|
-
| `--runs`, `-r <n>` | Number of hyperfine runs (default 10) |
|
|
188
|
-
|
|
189
|
-
Exit codes: 0 (<500ms target), 1 (regression).
|
|
190
|
-
|
|
191
164
|
### `dot perf`
|
|
192
165
|
|
|
193
166
|
Quick performance snapshot.
|
|
@@ -196,17 +169,9 @@ Quick performance snapshot.
|
|
|
196
169
|
dot perf [--json|-j] [--profile|-p] [--runs|-r <n>] [--target|-t <ms>]
|
|
197
170
|
```
|
|
198
171
|
|
|
199
|
-
### `dot prewarm`
|
|
200
|
-
|
|
201
|
-
Regenerate shell init caches for fast startup.
|
|
202
|
-
|
|
203
172
|
### `dot cache-refresh`
|
|
204
173
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
### `dot clean-cache`
|
|
208
|
-
|
|
209
|
-
Clear generated shell initialization caches. Next shell startup will be slow; use `dot prewarm` afterward.
|
|
174
|
+
Regenerate shell caches for ultra-fast startup.
|
|
210
175
|
|
|
211
176
|
### `dot score`
|
|
212
177
|
|
|
@@ -318,11 +283,72 @@ Multi-node status, drift, and namespace.
|
|
|
318
283
|
dot fleet # show all known hosts
|
|
319
284
|
dot fleet attest # collect signed attestations
|
|
320
285
|
dot fleet diff # compare rendered config across hosts
|
|
321
|
-
dot fleet sync # run `dot
|
|
286
|
+
dot fleet sync # run `dot upgrade` on every host
|
|
287
|
+
dot fleet apply # SSH out to every host in fleet.toml and run 'dot sync'
|
|
322
288
|
```
|
|
323
289
|
|
|
324
290
|
Fleet hosts are configured in `~/.config/dotfiles/fleet.toml`.
|
|
325
291
|
|
|
292
|
+
### `dot fleet apply`
|
|
293
|
+
|
|
294
|
+
Push dotfiles state to every host registered in `~/.config/dotfiles/fleet.toml`.
|
|
295
|
+
|
|
296
|
+
```
|
|
297
|
+
dot fleet apply [--host <name>] [--cmd <shell>] [--dry-run] [--jobs <n>]
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
| Flag | Effect |
|
|
301
|
+
|:---|:---|
|
|
302
|
+
| `--host <name>` | Apply to a single host only (matches the `[hosts.<name>]` stanza key). |
|
|
303
|
+
| `--cmd <shell>` | Run a custom command on every host instead of the default `dot sync && dot doctor --quiet`. **Warning:** this is arbitrary shell on remote hosts; the value is your trust boundary. |
|
|
304
|
+
| `--dry-run`, `-n` | Print the resolved hosts + planned command without opening SSH. |
|
|
305
|
+
| `--jobs <n>` | Parallelism (default 4). |
|
|
306
|
+
|
|
307
|
+
Hostnames in `fleet.toml` are validated against `[A-Za-z0-9._@:+/-]+` before fan-out; entries containing other characters abort the apply. First-time SSH connections use `StrictHostKeyChecking=accept-new` (TOFU); pre-populate `~/.ssh/known_hosts` if your threat model requires no TOFU window.
|
|
308
|
+
|
|
309
|
+
Example `fleet.toml`:
|
|
310
|
+
|
|
311
|
+
```toml
|
|
312
|
+
[hosts.laptop]
|
|
313
|
+
ssh = "user@laptop.local"
|
|
314
|
+
profile = "workstation"
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Agents
|
|
318
|
+
|
|
319
|
+
### `dot agents`
|
|
320
|
+
|
|
321
|
+
Multi-harness AI agent configuration manager. `CLAUDE.md` is canonical; `dot agents render` keeps `AGENTS.md` (the cross-harness standard read by Codex / Copilot / Cursor / Windsurf / Amp / Devin) plus `.cursor/rules/dotfiles.mdc` and `.codex/config.toml` in sync.
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
dot agents list # show which harnesses are recognised + their target paths
|
|
325
|
+
dot agents check # exit 0 if AGENTS.md tracks CLAUDE.md; 1 if drifted
|
|
326
|
+
dot agents render # regenerate AGENTS.md + 10 harness-specific files
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Harnesses covered: `AGENTS.md` (canonical cross-harness), Cursor (`.cursor/rules/dotfiles.mdc`), Codex (`.codex/config.toml`), Windsurf (`.windsurf/rules.md`), Zed (`.zed/agent-config.toml`), Roo (`.roo/rules.md`), Cline (`.clinerules`), Aider (`.aider.conf.yml`), Continue (`.continuerc.json`), Jules (`.jules/system.md`), Gemini (`.gemini/GEMINI.md`).
|
|
330
|
+
|
|
331
|
+
Edit `CLAUDE.md` first, then run `dot agents render`; do not hand-edit `AGENTS.md` or any of the per-harness files. The check subcommand is suitable for pre-commit hooks.
|
|
332
|
+
|
|
333
|
+
## Registry
|
|
334
|
+
|
|
335
|
+
### `dot registry`
|
|
336
|
+
|
|
337
|
+
JSON-indexed module registry. Discover and install reusable dotfile modules from a registry hosted via GitHub Pages (or any HTTPS URL via `set-url`).
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
dot registry list # list modules in the configured registry
|
|
341
|
+
dot registry search <query> # filter modules by keyword
|
|
342
|
+
dot registry info <name> # full metadata for one module
|
|
343
|
+
dot registry install <name> # apply a module (scaffold today)
|
|
344
|
+
dot registry url # show the active registry URL
|
|
345
|
+
dot registry set-url <url> # override the registry URL (HTTPS-only)
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
Default registry: `https://sebastienrousseau.github.io/dotfiles/registry.json`. Cache lives at `${XDG_CACHE_HOME:-~/.cache}/dotfiles/registry/index.json` with a 6h TTL. One-off override: `DOTFILES_REGISTRY_URL=<url> dot registry list`.
|
|
349
|
+
|
|
350
|
+
The JSON contract + module-contribution flow live in [`docs/operations/REGISTRY.md`](../../operations/REGISTRY.md).
|
|
351
|
+
|
|
326
352
|
## Reference
|
|
327
353
|
|
|
328
354
|
### `dot version`
|
|
@@ -357,10 +383,6 @@ dot add --encrypt ~/.somefile # encrypted with Age
|
|
|
357
383
|
dot add --template ~/.somefile # templatize
|
|
358
384
|
```
|
|
359
385
|
|
|
360
|
-
### `dot remove <path>`
|
|
361
|
-
|
|
362
|
-
Safely remove a managed file (removes from source and unmanages).
|
|
363
|
-
|
|
364
386
|
### `dot cd`
|
|
365
387
|
|
|
366
388
|
Print the source directory path. Useful for `cd $(dot cd)`.
|
|
@@ -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.
|
|
36
|
+
dotfiles_version = "0.2.502"
|
|
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.
|
|
222
|
+
"version": "0.2.502",
|
|
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,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.
|
|
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`.
|
|
@@ -6,10 +11,19 @@ Feature flags toggle optional subsystems. Set in `.chezmoidata.toml`, override p
|
|
|
6
11
|
|
|
7
12
|
```toml
|
|
8
13
|
[features]
|
|
9
|
-
|
|
14
|
+
alias_wrapper = false # Wrap selected aliases with safer defaults
|
|
15
|
+
dms = true # Dank Material Shell (Niri desktop)
|
|
16
|
+
zellij = false # Zellij terminal multiplexer config
|
|
10
17
|
linux_desktop = false # Linux-specific desktop configs
|
|
11
|
-
niri
|
|
12
|
-
waybar
|
|
18
|
+
niri = false # Niri window manager
|
|
19
|
+
waybar = false # Waybar status bar
|
|
20
|
+
fuzzel = false # Fuzzel application launcher (Wayland)
|
|
21
|
+
mako = false # Mako notification daemon (Wayland)
|
|
22
|
+
foot = false # Foot terminal emulator (Wayland)
|
|
23
|
+
kanshi = false # Kanshi monitor profile manager (Wayland)
|
|
24
|
+
touch = false # Touchscreen-friendly tweaks (Surface, etc.)
|
|
25
|
+
t2 = false # Apple T2 hardware-specific tweaks
|
|
26
|
+
surface = false # Microsoft Surface hardware-specific tweaks
|
|
13
27
|
```
|
|
14
28
|
|
|
15
29
|
## Per-Preset Overrides (`.chezmoidata/hardware.toml`)
|
|
@@ -28,6 +42,7 @@ The effective value is `mergeOverwrite` of global + preset features.
|
|
|
28
42
|
### `dms` — Dank Material Shell
|
|
29
43
|
|
|
30
44
|
When `true`:
|
|
45
|
+
|
|
31
46
|
- Configures DMS IPC for theme sync
|
|
32
47
|
- Enables Quickshell templates
|
|
33
48
|
- Sets up per-monitor wallpaper via `dms ipc wallpaper`
|
|
@@ -37,6 +52,7 @@ Requires: Niri + Quickshell + DMS installed.
|
|
|
37
52
|
### `linux_desktop` — Linux Desktop Configs
|
|
38
53
|
|
|
39
54
|
When `true`:
|
|
55
|
+
|
|
40
56
|
- Enables GTK 3/4 theme generation from `themes.toml`
|
|
41
57
|
- Configures `gsettings color-scheme` behaviour
|
|
42
58
|
- Generates desktop file entries for installed tools
|
|
@@ -46,6 +62,7 @@ No effect on macOS.
|
|
|
46
62
|
### `niri` — Niri Window Manager
|
|
47
63
|
|
|
48
64
|
When `true`:
|
|
65
|
+
|
|
49
66
|
- Generates `~/.config/niri/config.kdl`
|
|
50
67
|
- Enables Niri keybindings from `keybinds.toml`
|
|
51
68
|
- Configures workspace rules per preset
|
|
@@ -55,11 +72,62 @@ Requires: Niri installed.
|
|
|
55
72
|
### `waybar` — Waybar Status Bar
|
|
56
73
|
|
|
57
74
|
When `true`:
|
|
75
|
+
|
|
58
76
|
- Generates `~/.config/waybar/config.jsonc` + `style.css`
|
|
59
77
|
- Hooks into theme switching via `dot-theme-sync`
|
|
60
78
|
|
|
61
79
|
Requires: Waybar installed.
|
|
62
80
|
|
|
81
|
+
### `alias_wrapper` — Safer Alias Defaults
|
|
82
|
+
|
|
83
|
+
When `true`, opt-in wrappers replace selected aliases with confirmation-prompt
|
|
84
|
+
variants (e.g., `rm -i`, `mv -i`). Default `false` for power-user ergonomics.
|
|
85
|
+
|
|
86
|
+
### `zellij` — Zellij Terminal Multiplexer
|
|
87
|
+
|
|
88
|
+
When `true`:
|
|
89
|
+
|
|
90
|
+
- Generates `~/.config/zellij/config.kdl` from the active theme
|
|
91
|
+
- Wires the `dot mux` alias to launch a profile-aware session
|
|
92
|
+
|
|
93
|
+
Requires: Zellij installed.
|
|
94
|
+
|
|
95
|
+
### `fuzzel` — Fuzzel Application Launcher (Wayland)
|
|
96
|
+
|
|
97
|
+
When `true`, generates `~/.config/fuzzel/fuzzel.ini` using the active theme.
|
|
98
|
+
Requires: Fuzzel installed (Wayland-only). No effect on macOS.
|
|
99
|
+
|
|
100
|
+
### `mako` — Mako Notification Daemon (Wayland)
|
|
101
|
+
|
|
102
|
+
When `true`, generates `~/.config/mako/config` with theme-derived colors.
|
|
103
|
+
Requires: Mako installed (Wayland-only). No effect on macOS.
|
|
104
|
+
|
|
105
|
+
### `foot` — Foot Terminal Emulator (Wayland)
|
|
106
|
+
|
|
107
|
+
When `true`, generates `~/.config/foot/foot.ini` from `themes.toml`.
|
|
108
|
+
Requires: Foot installed (Wayland-only). No effect on macOS.
|
|
109
|
+
|
|
110
|
+
### `kanshi` — Kanshi Monitor Profile Manager (Wayland)
|
|
111
|
+
|
|
112
|
+
When `true`, generates `~/.config/kanshi/config` with per-host monitor layouts.
|
|
113
|
+
Requires: Kanshi installed (Wayland-only). No effect on macOS.
|
|
114
|
+
|
|
115
|
+
### `touch` — Touchscreen-Friendly Tweaks
|
|
116
|
+
|
|
117
|
+
When `true`, enables larger UI scaling and touch-friendly input mappings.
|
|
118
|
+
Typically combined with `surface` for Microsoft Surface devices.
|
|
119
|
+
|
|
120
|
+
### `t2` — Apple T2 Hardware Tweaks
|
|
121
|
+
|
|
122
|
+
When `true`, enables `t2linux` kernel-module hints, audio routing fixes, and
|
|
123
|
+
Touch-Bar utilities for Intel Macs with the T2 chip on Linux. Set by the
|
|
124
|
+
`macbook-t2` hardware preset in `.chezmoidata/hardware.toml`.
|
|
125
|
+
|
|
126
|
+
### `surface` — Microsoft Surface Hardware Tweaks
|
|
127
|
+
|
|
128
|
+
When `true`, enables `linux-surface` kernel parameters, touchpad gestures, and
|
|
129
|
+
pen-input mappings. Set by the `surface-pro` hardware preset.
|
|
130
|
+
|
|
63
131
|
## Using a Flag in a Template
|
|
64
132
|
|
|
65
133
|
```go
|
|
@@ -116,3 +184,4 @@ Flags can be deprecated without breaking existing hosts. The deprecation process
|
|
|
116
184
|
|
|
117
185
|
- [Configuration Files](02-config-files.md)
|
|
118
186
|
- [Create a Profile](../02-tutorials/03-create-profile.md)
|
|
187
|
+
{% endraw %}
|
|
@@ -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 %}
|