@sebastienrousseau/dotfiles 0.2.519 → 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.
- package/CHANGELOG.md +200 -0
- package/LICENSE-APACHE +190 -0
- package/{LICENSE → LICENSE-MIT} +1 -1
- package/README.md +1172 -166
- package/install.sh +77 -11
- package/package.json +8 -8
- package/tools/README.md +49 -0
- package/tools/ci/install-chezmoi-verified.sh +68 -0
- package/docs/.vitepress/reports/localization-readability-audit.md +0 -73
- package/docs/AI.md +0 -179
- package/docs/CNAME +0 -1
- package/docs/CONFIG_STRATEGY.md +0 -124
- package/docs/COPYRIGHT +0 -7
- package/docs/GOVERNANCE.md +0 -98
- package/docs/MAINTAINERS.md +0 -41
- package/docs/NAMING_CONVENTIONS.md +0 -102
- package/docs/OPENCODE.md +0 -127
- package/docs/README.md +0 -84
- package/docs/STRUCTURE.md +0 -102
- package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -118
- package/docs/adr/ADR-002-shell-performance.md +0 -130
- package/docs/adr/ADR-003-security-first.md +0 -158
- package/docs/adr/ADR-004-cli-architecture.md +0 -171
- package/docs/adr/ADR-005-chezmoi-choice.md +0 -99
- package/docs/adr/ADR-006-shell-selection.md +0 -124
- package/docs/adr/ADR-007-multi-shell-parity.md +0 -62
- package/docs/adr/ADR-008-alias-system-architecture.md +0 -95
- package/docs/adr/ADR-009-wallpaper-driven-theming.md +0 -131
- package/docs/adr/ADR-010-starship-transient-prompt.md +0 -144
- package/docs/adr/ADR-011-nushell-tier3-keep.md +0 -144
- package/docs/adr/ADR-012-ai-fleet-local-proxy.md +0 -79
- package/docs/adr/README.md +0 -40
- package/docs/architecture/AI_COST_OPTIMIZATION.md +0 -144
- package/docs/architecture/ARCHITECTURE.md +0 -117
- package/docs/architecture/INTEROP.md +0 -44
- package/docs/architecture/REPO_LAYOUT.md +0 -241
- package/docs/architecture/WALKTHROUGH.md +0 -86
- package/docs/architecture/fleet-deployment.md +0 -77
- package/docs/archive/EUXIS_2026_REVIEW.md +0 -127
- package/docs/archive/LEGACY_ROADMAP.md +0 -6
- package/docs/archive/MILESTONE_v0.2.493.md +0 -47
- package/docs/archive/PLAN.md +0 -199
- package/docs/archive/REPO_AUDIT.md +0 -31
- package/docs/articles/.pages +0 -6
- package/docs/articles/2026-07-05-custom-mkdocs-material-dark-theme.md +0 -216
- package/docs/articles/2026-07-05-fish-startup-abbr.md +0 -153
- package/docs/articles/2026-07-05-master-to-main-rename-runbook.md +0 -128
- package/docs/articles/index.md +0 -36
- package/docs/guides/INSTALL.md +0 -144
- package/docs/guides/NEOVIM_IDE_GUIDE.md +0 -61
- package/docs/guides/THEMING.md +0 -230
- package/docs/guides/TROUBLESHOOTING.md +0 -176
- package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +0 -792
- package/docs/index.md +0 -132
- package/docs/interop/A2A.md +0 -39
- package/docs/interop/POWERSHELL.md +0 -102
- package/docs/manual/00-introduction.md +0 -89
- package/docs/manual/01-concepts/01-architecture.md +0 -138
- package/docs/manual/01-concepts/02-trust-model.md +0 -183
- package/docs/manual/01-concepts/03-theme-engine.md +0 -186
- package/docs/manual/01-concepts/04-fleet.md +0 -148
- package/docs/manual/01-concepts/05-self-healing.md +0 -204
- package/docs/manual/02-tutorials/01-first-install.md +0 -197
- package/docs/manual/02-tutorials/02-add-wallpaper.md +0 -216
- package/docs/manual/02-tutorials/03-create-profile.md +0 -244
- package/docs/manual/02-tutorials/04-encrypt-secret.md +0 -281
- package/docs/manual/02-tutorials/05-deploy-fleet.md +0 -283
- package/docs/manual/03-reference/01-dot-cli.md +0 -450
- package/docs/manual/03-reference/02-config-files.md +0 -265
- package/docs/manual/03-reference/03-environment.md +0 -124
- package/docs/manual/03-reference/04-templates.md +0 -190
- package/docs/manual/03-reference/05-feature-flags.md +0 -187
- package/docs/manual/04-cookbook/01-recipes.md +0 -285
- package/docs/manual/04-cookbook/02-troubleshooting.md +0 -351
- package/docs/manual/04-cookbook/03-faq.md +0 -175
- package/docs/manual/05-appendices/A-platform-matrix.md +0 -101
- package/docs/manual/05-appendices/B-security-checklist.md +0 -85
- package/docs/manual/05-appendices/C-glossary.md +0 -40
- package/docs/manual/05-appendices/D-bibliography.md +0 -58
- package/docs/manual/05-appendices/E-license.md +0 -38
- package/docs/manual/_toc.yml +0 -58
- package/docs/manual/command-index.md +0 -155
- package/docs/manual/concept-index.md +0 -168
- package/docs/manual/index.md +0 -66
- package/docs/operations/ARCHITECTURE_ROADMAP.md +0 -7
- package/docs/operations/ATTESTATION.md +0 -44
- package/docs/operations/CI_CADENCE.md +0 -107
- package/docs/operations/CI_COMPOSITES.md +0 -156
- package/docs/operations/COMPLETIONS.md +0 -123
- package/docs/operations/COVERAGE.md +0 -204
- package/docs/operations/DRIFT.md +0 -107
- package/docs/operations/HARD_AUDIT_2026.md +0 -631
- package/docs/operations/MAINTENANCE.md +0 -63
- package/docs/operations/MANIFEST.md +0 -127
- package/docs/operations/MIGRATION.md +0 -109
- package/docs/operations/OPERATIONS.md +0 -188
- package/docs/operations/PERFORMANCE.md +0 -133
- package/docs/operations/REGISTRY.md +0 -90
- package/docs/operations/RELEASE_PIPELINE.md +0 -128
- package/docs/operations/RELIABILITY.md +0 -122
- package/docs/operations/RFC_v0_2_503_reorganization.md +0 -280
- package/docs/operations/ROADMAP.md +0 -10
- package/docs/operations/ROADMAP_2026.md +0 -7
- package/docs/operations/ROADMAP_V0_2_503.md +0 -10
- package/docs/operations/TESTING.md +0 -216
- package/docs/operations/TRACEABILITY.md +0 -43
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +0 -65
- package/docs/operations/VERSION_SYNC.md +0 -393
- package/docs/reference/ALIASES.md +0 -131
- package/docs/reference/ALIASES_CHEATSHEET.md +0 -32
- package/docs/reference/ALIASES_DEPRECATIONS.md +0 -13
- package/docs/reference/FEATURES.md +0 -66
- package/docs/reference/FONTS.md +0 -112
- package/docs/reference/POWERSHELL_PARITY.md +0 -82
- package/docs/reference/PROFILES.md +0 -69
- package/docs/reference/SCREENSHOTS.md +0 -121
- package/docs/reference/SCRIPTS.md +0 -71
- package/docs/reference/SUPPORT_MATRIX.md +0 -80
- package/docs/reference/THEMES.md +0 -117
- package/docs/reference/TOOLS.md +0 -110
- package/docs/reference/UTILS.md +0 -242
- package/docs/registry.json +0 -6
- package/docs/schema/dot-env-v1.json +0 -110
- package/docs/schema/dot-registry-v1.json +0 -33
- package/docs/security/AI_ACT_COMPLIANCE.md +0 -94
- package/docs/security/AUDIT_BYPASS.md +0 -103
- package/docs/security/AUTOMATION_SECRETS.md +0 -26
- package/docs/security/CI_EGRESS_ALLOWLIST.md +0 -127
- package/docs/security/CI_PINNING.md +0 -129
- package/docs/security/COMMIT_SIGNING.md +0 -138
- package/docs/security/COMPLIANCE.md +0 -458
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +0 -86
- package/docs/security/DISCLOSURE.md +0 -130
- package/docs/security/ENCRYPTION.md +0 -57
- package/docs/security/FMEA.md +0 -159
- package/docs/security/FUZZING.md +0 -114
- package/docs/security/HISTORY_FILTERING.md +0 -132
- package/docs/security/INCIDENT_RESPONSE.md +0 -579
- package/docs/security/INSTALL_VERIFICATION.md +0 -122
- package/docs/security/KEYS.md +0 -49
- package/docs/security/KEY_ROTATION.md +0 -303
- package/docs/security/MCP_POLICY.md +0 -78
- package/docs/security/POLICY_RELEASES.md +0 -37
- package/docs/security/README.md +0 -28
- package/docs/security/SCORECARD.md +0 -195
- package/docs/security/SECRETS.md +0 -158
- package/docs/security/SECURITY.md +0 -45
- package/docs/security/SECURITY_CHECKLIST.md +0 -55
- package/docs/security/SHELL_EXEMPTIONS.md +0 -145
- package/docs/security/SOUP_REGISTER.md +0 -36
- package/docs/security/THREAT_MODEL.md +0 -130
- package/docs/security/VERIFICATION_VALIDATION.md +0 -228
- package/docs/security/VERIFY_RELEASE.md +0 -201
- package/docs/security/security-pubkey.asc +0 -15
- package/docs/stylesheets/extra.css +0 -444
- package/docs/themes/README.md +0 -10
- package/docs/themes/VISUAL_INTEGRITY_REPORT.md +0 -30
- package/docs/themes/hero-shot.svg +0 -78
- package/scripts/README.md +0 -123
- package/scripts/ci/check-copyright-headers.sh +0 -8
- package/scripts/ci/check-shell-preamble.sh +0 -8
- package/scripts/ci/guard-gitleaks-checkout.sh +0 -8
- package/scripts/demo/record.sh +0 -43
- package/scripts/diagnostics/a2a-conformance.sh +0 -163
- package/scripts/diagnostics/alias-governance.sh +0 -138
- package/scripts/diagnostics/aliases-cheatsheet.sh +0 -74
- package/scripts/diagnostics/aliases-manifest.sh +0 -77
- package/scripts/diagnostics/benchmark.sh +0 -408
- package/scripts/diagnostics/conflicts.sh +0 -73
- package/scripts/diagnostics/doctor-unified.sh +0 -39
- package/scripts/diagnostics/doctor.sh +0 -751
- package/scripts/diagnostics/drift-dashboard.sh +0 -202
- package/scripts/diagnostics/health.sh +0 -623
- package/scripts/diagnostics/history-analysis.sh +0 -86
- package/scripts/diagnostics/mcp-doctor.sh +0 -582
- package/scripts/diagnostics/perf.sh +0 -453
- package/scripts/diagnostics/scorecard.sh +0 -119
- package/scripts/diagnostics/secret-governance.sh +0 -65
- package/scripts/diagnostics/security-score.sh +0 -467
- package/scripts/diagnostics/smoke-test.sh +0 -88
- package/scripts/diagnostics/snapshot.sh +0 -90
- package/scripts/diagnostics/verify.sh +0 -108
- package/scripts/diagnostics/verify_state.sh +0 -73
- package/scripts/diagnostics/version-locks.sh +0 -94
- package/scripts/diagnostics/workstation-attestation.sh +0 -187
- package/scripts/dot/commands/agent.sh +0 -485
- package/scripts/dot/commands/agents.sh +0 -336
- package/scripts/dot/commands/ai.sh +0 -587
- package/scripts/dot/commands/aliases.sh +0 -277
- package/scripts/dot/commands/appearance.sh +0 -110
- package/scripts/dot/commands/completion.sh +0 -134
- package/scripts/dot/commands/core.sh +0 -217
- package/scripts/dot/commands/diagnostics.sh +0 -265
- package/scripts/dot/commands/env-emit.sh +0 -203
- package/scripts/dot/commands/fleet.sh +0 -688
- package/scripts/dot/commands/init.sh +0 -185
- package/scripts/dot/commands/lint.sh +0 -208
- package/scripts/dot/commands/manual.sh +0 -169
- package/scripts/dot/commands/meta.sh +0 -333
- package/scripts/dot/commands/patterns.sh +0 -55
- package/scripts/dot/commands/registry.sh +0 -419
- package/scripts/dot/commands/restore.sh +0 -232
- package/scripts/dot/commands/secrets.sh +0 -296
- package/scripts/dot/commands/security.sh +0 -102
- package/scripts/dot/commands/tools.sh +0 -556
- package/scripts/dot/data/alias-deprecations.tsv +0 -2
- package/scripts/dot/powershell/Dot.psm1 +0 -319
- package/scripts/fonts/install-nerd-fonts.sh +0 -75
- package/scripts/fonts/patch-fonts.sh +0 -36
- package/scripts/git-hooks/install.sh +0 -12
- package/scripts/git-hooks/pre-commit +0 -12
- package/scripts/git-hooks/pre-commit-audit.sh +0 -146
- package/scripts/git-hooks/pre-push +0 -105
- package/scripts/git-hooks/prepare-commit-msg +0 -29
- package/scripts/lib/secrets_provider.sh +0 -185
- package/scripts/ops/ai-setup.sh +0 -71
- package/scripts/ops/bundle.sh +0 -104
- package/scripts/ops/chaos.sh +0 -50
- package/scripts/ops/chezmoi-apply.sh +0 -333
- package/scripts/ops/chezmoi-diff.sh +0 -16
- package/scripts/ops/chezmoi-remove.sh +0 -46
- package/scripts/ops/chezmoi-update.sh +0 -63
- package/scripts/ops/heal-chezmoi.sh +0 -87
- package/scripts/ops/heal-system.sh +0 -129
- package/scripts/ops/heal-tools.sh +0 -297
- package/scripts/ops/heal.sh +0 -223
- package/scripts/ops/post-apply-repair.sh +0 -107
- package/scripts/ops/prewarm.sh +0 -128
- package/scripts/ops/release.sh +0 -262
- package/scripts/ops/rollback.sh +0 -604
- package/scripts/ops/setup.sh +0 -138
- package/scripts/ops/teleport.sh +0 -34
- package/scripts/qa/check-version-consistency.sh +0 -124
- package/scripts/qa/coverage-baseline.sh +0 -61
- package/scripts/qa/docs-coverage.sh +0 -112
- package/scripts/qa/examples-coverage.sh +0 -94
- package/scripts/qa/powershell-contract.ps1 +0 -95
- package/scripts/qa/reliability-audit.sh +0 -139
- package/scripts/qa/scorecard-snapshot.sh +0 -128
- package/scripts/qa/traceability-coverage.sh +0 -117
- package/scripts/qa/validate-examples.sh +0 -27
- package/scripts/qa/wsl-contract.sh +0 -12
- package/scripts/secrets/age-init.sh +0 -82
- package/scripts/secrets/create-secrets-file.sh +0 -46
- package/scripts/secrets/encrypt-ssh-key.sh +0 -44
- package/scripts/security/backup.sh +0 -58
- package/scripts/security/check-disclosure-key-expiry.sh +0 -111
- package/scripts/security/dns-doh.sh +0 -52
- package/scripts/security/encryption-check.sh +0 -55
- package/scripts/security/enforce-policies.sh +0 -335
- package/scripts/security/firewall.sh +0 -91
- package/scripts/security/lock-configs.sh +0 -67
- package/scripts/security/lock-screen.sh +0 -56
- package/scripts/security/manage-secrets.sh +0 -429
- package/scripts/security/ssh-cert.sh +0 -204
- package/scripts/security/telemetry-kill.sh +0 -51
- package/scripts/security/usb-safety.sh +0 -52
- package/scripts/theme/apply-gnome-theme.sh +0 -333
- package/scripts/theme/extract-heic-frames.sh +0 -115
- package/scripts/theme/extract-theme.py +0 -742
- package/scripts/theme/install-boot-logo.sh +0 -63
- package/scripts/theme/install-catppuccin-themes.sh +0 -371
- package/scripts/theme/install-cursors.sh +0 -26
- package/scripts/theme/install-file-icons.sh +0 -27
- package/scripts/theme/install-grub-theme.sh +0 -62
- package/scripts/theme/install-lock-icon.sh +0 -31
- package/scripts/theme/merge-wallpaper.sh +0 -146
- package/scripts/theme/rebuild-themes.sh +0 -544
- package/scripts/theme/switch.sh +0 -449
- package/scripts/theme/wallpaper-rotate.sh +0 -137
- package/scripts/theme/wallpaper-sync.sh +0 -690
- package/scripts/tools/cmatrix.sh +0 -22
- package/scripts/tools/detect-collisions.py +0 -103
- package/scripts/tools/emoji-picker.sh +0 -49
- package/scripts/tools/figlet-banner.sh +0 -19
- package/scripts/tools/log-rotate.sh +0 -31
- package/scripts/tools/lolcat-wrap.sh +0 -20
- package/scripts/tools/pipes.sh +0 -49
- package/scripts/tuning/linux.sh +0 -186
- package/scripts/tuning/macos.sh +0 -56
- package/scripts/uninstall.sh +0 -86
- package/scripts/version-sync.sh +0 -654
- package/templates/chezmoi-data/geekom-a9.toml.example +0 -21
- package/templates/chezmoi-data/mac-m1.toml.example +0 -16
- package/templates/chezmoi-data/mac-t2-linux.toml.example +0 -21
- package/templates/chezmoi-data/surface-pro-7p.toml.example +0 -21
- package/templates/projects/go/.github/workflows/ci.yml +0 -31
- package/templates/projects/go/README.md +0 -7
- package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +0 -8
- package/templates/projects/go/go.mod +0 -3
- package/templates/projects/go/go.sum +0 -0
- package/templates/projects/molecule/README.md +0 -7
- package/templates/projects/molecule/converge.yml +0 -7
- package/templates/projects/molecule/molecule.yml +0 -16
- package/templates/projects/node/.github/workflows/ci.yml +0 -30
- package/templates/projects/node/README.md +0 -7
- package/templates/projects/node/package-lock.json +0 -12
- package/templates/projects/node/package.json +0 -10
- package/templates/projects/node/src/index.js +0 -3
- package/templates/projects/packer/README.md +0 -15
- package/templates/projects/packer/main.pkr.hcl +0 -15
- package/templates/projects/python/.github/workflows/ci.yml +0 -34
- package/templates/projects/python/README.md +0 -7
- package/templates/projects/python/pyproject.toml +0 -25
- package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +0 -2
- package/templates/projects/python/tests/test_basic.py +0 -3
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Cookbook: Recipes
|
|
6
|
-
|
|
7
|
-
Thirty short recipes for common tasks.
|
|
8
|
-
|
|
9
|
-
## Installation & Update
|
|
10
|
-
|
|
11
|
-
### 1. Install on a fresh machine
|
|
12
|
-
|
|
13
|
-
```sh
|
|
14
|
-
bash -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/main/install.sh)"
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
### 2. Update everything
|
|
18
|
-
|
|
19
|
-
```sh
|
|
20
|
-
dot upgrade
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### 3. Update dotfiles only (no tools)
|
|
24
|
-
|
|
25
|
-
```sh
|
|
26
|
-
dot update
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### 4. Preview what would change
|
|
30
|
-
|
|
31
|
-
```sh
|
|
32
|
-
dot apply --dry-run
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Themes
|
|
36
|
-
|
|
37
|
-
### 5. Switch to a specific theme
|
|
38
|
-
|
|
39
|
-
```sh
|
|
40
|
-
dot theme tahoe-dark
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### 6. Toggle between dark and light
|
|
44
|
-
|
|
45
|
-
```sh
|
|
46
|
-
dot theme toggle
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### 7. Open the interactive theme picker
|
|
50
|
-
|
|
51
|
-
```sh
|
|
52
|
-
dot theme
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### 8. List paired wallpaper themes
|
|
56
|
-
|
|
57
|
-
```sh
|
|
58
|
-
dot theme list
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### 9. Add a new wallpaper-driven theme
|
|
62
|
-
|
|
63
|
-
```sh
|
|
64
|
-
cp my-wallpaper.jpg ~/Pictures/Wallpapers/myname-dark.jpg
|
|
65
|
-
cp my-wallpaper-light.jpg ~/Pictures/Wallpapers/myname-light.jpg
|
|
66
|
-
bash scripts/theme/merge-wallpaper.sh myname
|
|
67
|
-
dot theme rebuild
|
|
68
|
-
dot theme myname-dark
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### 10. Regenerate all themes from scratch
|
|
72
|
-
|
|
73
|
-
```sh
|
|
74
|
-
dot theme rebuild --force
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Configuration
|
|
78
|
-
|
|
79
|
-
### 11. Edit the source directory
|
|
80
|
-
|
|
81
|
-
```sh
|
|
82
|
-
dot edit
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### 12. Add a new config file to chezmoi
|
|
86
|
-
|
|
87
|
-
```sh
|
|
88
|
-
dot add ~/.some-config-file
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### 13. Remove a managed file
|
|
92
|
-
|
|
93
|
-
```sh
|
|
94
|
-
dot remove ~/.some-config-file
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### 14. Show configuration drift
|
|
98
|
-
|
|
99
|
-
```sh
|
|
100
|
-
dot status
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### 15. Show diff against source
|
|
104
|
-
|
|
105
|
-
```sh
|
|
106
|
-
dot diff
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## Secrets
|
|
110
|
-
|
|
111
|
-
### 16. Encrypt a new secret file
|
|
112
|
-
|
|
113
|
-
```sh
|
|
114
|
-
chezmoi add --encrypt ~/some-secret.txt
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### 17. Edit an encrypted file
|
|
118
|
-
|
|
119
|
-
```sh
|
|
120
|
-
sops dot_config/credentials.sops.yaml
|
|
121
|
-
# or
|
|
122
|
-
chezmoi edit ~/some-secret.txt.age
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### 18. Rotate your Age key
|
|
126
|
-
|
|
127
|
-
```sh
|
|
128
|
-
age-keygen -o ~/.config/age/keys.txt.new
|
|
129
|
-
# Update .sops.yaml with new public key
|
|
130
|
-
# Then:
|
|
131
|
-
find . -name '*.sops.yaml' -exec sops updatekeys {} \;
|
|
132
|
-
git commit -sS -am "chore(secrets): rotate age key"
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### 19. Check for accidental secret leaks
|
|
136
|
-
|
|
137
|
-
```sh
|
|
138
|
-
dot verify --security
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Diagnostics
|
|
142
|
-
|
|
143
|
-
### 20. Quick health check
|
|
144
|
-
|
|
145
|
-
```sh
|
|
146
|
-
dot doctor
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
### 21. Auto-fix common issues
|
|
150
|
-
|
|
151
|
-
```sh
|
|
152
|
-
dot heal
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### 22. Check startup performance
|
|
156
|
-
|
|
157
|
-
```sh
|
|
158
|
-
dot benchmark
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### 23. See the health score
|
|
162
|
-
|
|
163
|
-
```sh
|
|
164
|
-
dot score
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### 24. Recent metrics
|
|
168
|
-
|
|
169
|
-
```sh
|
|
170
|
-
dot metrics
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
## Fleet
|
|
174
|
-
|
|
175
|
-
### 25. Attest across all fleet hosts
|
|
176
|
-
|
|
177
|
-
```sh
|
|
178
|
-
dot fleet attest
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### 26. Sync dotfiles to every fleet host
|
|
182
|
-
|
|
183
|
-
```sh
|
|
184
|
-
dot fleet sync
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### 27. Diff config across hosts
|
|
188
|
-
|
|
189
|
-
```sh
|
|
190
|
-
dot fleet diff
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
## AI & Agents
|
|
194
|
-
|
|
195
|
-
### 28. Show installed AI tools
|
|
196
|
-
|
|
197
|
-
```sh
|
|
198
|
-
dot ai
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### 29. Switch agent profile
|
|
202
|
-
|
|
203
|
-
```sh
|
|
204
|
-
dot mode architect # or hardener, refactor
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
### 30. Verify MCP policy
|
|
208
|
-
|
|
209
|
-
```sh
|
|
210
|
-
dot mcp --strict
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
## Recovery
|
|
214
|
-
|
|
215
|
-
### 31. Rollback the last apply
|
|
216
|
-
|
|
217
|
-
```sh
|
|
218
|
-
dot rollback
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### 32. Create an offline bundle
|
|
222
|
-
|
|
223
|
-
```sh
|
|
224
|
-
dot bundle
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
### 33. Restore from a bundle
|
|
228
|
-
|
|
229
|
-
```sh
|
|
230
|
-
dot bundle restore ~/Downloads/dotfiles-bundle-*.tar.zst
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
## Development
|
|
234
|
-
|
|
235
|
-
### 34. Run a test locally
|
|
236
|
-
|
|
237
|
-
```sh
|
|
238
|
-
bash tests/unit/theme/test_themes_toml.sh
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
### 35. Run all tests
|
|
242
|
-
|
|
243
|
-
```sh
|
|
244
|
-
./tests/framework/test_runner.sh
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
### 36. Lint shell scripts
|
|
248
|
-
|
|
249
|
-
```sh
|
|
250
|
-
dot lint
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
### 37. Simulate chaos to test self-healing
|
|
254
|
-
|
|
255
|
-
```sh
|
|
256
|
-
dot chaos symlink # in an ephemeral container only
|
|
257
|
-
dot heal
|
|
258
|
-
dot doctor
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
## Manual
|
|
262
|
-
|
|
263
|
-
### 38. Open the manual in a browser
|
|
264
|
-
|
|
265
|
-
```sh
|
|
266
|
-
dot manual
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
### 39. Download the PDF
|
|
270
|
-
|
|
271
|
-
```sh
|
|
272
|
-
dot manual pdf
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
### 40. Read the manual in a terminal
|
|
276
|
-
|
|
277
|
-
```sh
|
|
278
|
-
dot manual text | less
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
## See Also
|
|
282
|
-
|
|
283
|
-
- [Troubleshooting](02-troubleshooting.md)
|
|
284
|
-
- [FAQ](03-faq.md)
|
|
285
|
-
- [CLI Reference](../03-reference/01-dot-cli.md)
|
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
{% raw %}
|
|
5
|
-
|
|
6
|
-
# Cookbook: Troubleshooting
|
|
7
|
-
|
|
8
|
-
Symptom → cause → fix.
|
|
9
|
-
|
|
10
|
-
## Installation
|
|
11
|
-
|
|
12
|
-
### Symptom: `install.sh` fails with "chezmoi not found"
|
|
13
|
-
|
|
14
|
-
**Cause**: `/usr/local/bin` or `~/.local/bin` not in PATH at install time.
|
|
15
|
-
|
|
16
|
-
**Fix**:
|
|
17
|
-
|
|
18
|
-
```sh
|
|
19
|
-
export PATH="$HOME/.local/bin:$PATH"
|
|
20
|
-
bash -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/main/install.sh)"
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### Symptom: "could not create directory ~/.local/share/chezmoi"
|
|
24
|
-
|
|
25
|
-
**Cause**: Permission issue on `~/.local`.
|
|
26
|
-
|
|
27
|
-
**Fix**:
|
|
28
|
-
|
|
29
|
-
```sh
|
|
30
|
-
mkdir -p ~/.local/share ~/.local/state ~/.local/bin
|
|
31
|
-
chmod 755 ~/.local ~/.local/share
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Symptom: Install hangs at "Downloading chezmoi"
|
|
35
|
-
|
|
36
|
-
**Cause**: Slow network or corporate proxy.
|
|
37
|
-
|
|
38
|
-
**Fix**:
|
|
39
|
-
|
|
40
|
-
```sh
|
|
41
|
-
export https_proxy=$HTTP_PROXY # if applicable
|
|
42
|
-
# Or pre-download chezmoi manually
|
|
43
|
-
brew install chezmoi # macOS
|
|
44
|
-
apt install chezmoi # Debian 13+
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Apply / Sync
|
|
48
|
-
|
|
49
|
-
### Symptom: `dot apply` reports "file modified, skipping"
|
|
50
|
-
|
|
51
|
-
**Cause**: Chezmoi detected local drift on a managed file.
|
|
52
|
-
|
|
53
|
-
**Fix**:
|
|
54
|
-
|
|
55
|
-
```sh
|
|
56
|
-
dot diff # see what differs
|
|
57
|
-
dot apply --force # overwrite local
|
|
58
|
-
# OR
|
|
59
|
-
dot add <path> # import local change to source
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Symptom: "template: error calling index"
|
|
63
|
-
|
|
64
|
-
**Cause**: A template references a missing data field.
|
|
65
|
-
|
|
66
|
-
**Fix**: Check that your `.chezmoidata.toml` has the required field. For example:
|
|
67
|
-
|
|
68
|
-
```sh
|
|
69
|
-
chezmoi execute-template '{{- $hw := index .hardware .machine -}}{{ $hw.wm }}'
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
If `machine` is not set in your `~/.config/chezmoi/chezmoi.toml`, `index` returns nil. Set:
|
|
73
|
-
|
|
74
|
-
```toml
|
|
75
|
-
[data]
|
|
76
|
-
machine = "macbook-t2"
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Symptom: Apply succeeds but shell doesn't reflect changes
|
|
80
|
-
|
|
81
|
-
**Cause**: Cached init scripts are stale.
|
|
82
|
-
|
|
83
|
-
**Fix**:
|
|
84
|
-
|
|
85
|
-
```sh
|
|
86
|
-
dot clean-cache
|
|
87
|
-
dot prewarm
|
|
88
|
-
exec $SHELL -l
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Theme
|
|
92
|
-
|
|
93
|
-
### Symptom: `dot theme` shows no themes
|
|
94
|
-
|
|
95
|
-
**Cause**: No wallpapers discovered, themes.toml not generated.
|
|
96
|
-
|
|
97
|
-
**Fix**:
|
|
98
|
-
|
|
99
|
-
```sh
|
|
100
|
-
dot theme rebuild --force
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### Symptom: `dot theme <name>` errors "unknown theme"
|
|
104
|
-
|
|
105
|
-
**Cause**: Theme name doesn't exist in `themes.toml`.
|
|
106
|
-
|
|
107
|
-
**Fix**:
|
|
108
|
-
|
|
109
|
-
```sh
|
|
110
|
-
dot theme list # see valid names
|
|
111
|
-
dot theme rebuild --force # regenerate if expected but missing
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### Symptom: macOS accent color doesn't update
|
|
115
|
-
|
|
116
|
-
**Cause**: System Settings UI cached the old value.
|
|
117
|
-
|
|
118
|
-
**Fix**: `dot-theme-sync` now calls `killall cfprefsd SystemUIServer Dock "System Settings"`. If it still doesn't refresh:
|
|
119
|
-
|
|
120
|
-
```sh
|
|
121
|
-
killall -KILL Dock SystemUIServer
|
|
122
|
-
sudo killall -KILL cfprefsd
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
Or log out and back in.
|
|
126
|
-
|
|
127
|
-
### Symptom: Wallpaper not applying
|
|
128
|
-
|
|
129
|
-
**Cause**: Wrong format or missing DE support on Linux.
|
|
130
|
-
|
|
131
|
-
**Fix**:
|
|
132
|
-
|
|
133
|
-
```sh
|
|
134
|
-
# Check the wallpaper file exists
|
|
135
|
-
ls -la ~/Pictures/Wallpapers/
|
|
136
|
-
|
|
137
|
-
# On Linux, verify HEIC → PNG conversion tool
|
|
138
|
-
command -v magick || command -v heif-convert || command -v convert
|
|
139
|
-
# Install if needed:
|
|
140
|
-
sudo apt install imagemagick-7
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### Symptom: Theme applies but Ghostty doesn't reload
|
|
144
|
-
|
|
145
|
-
**Cause**: Ghostty DBus or SIGUSR2 signaling failed.
|
|
146
|
-
|
|
147
|
-
**Fix**:
|
|
148
|
-
|
|
149
|
-
```sh
|
|
150
|
-
# Restart Ghostty manually, or:
|
|
151
|
-
pkill -USR2 ghostty 2>/dev/null
|
|
152
|
-
# Or quit+relaunch the app
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
## Secrets
|
|
156
|
-
|
|
157
|
-
### Symptom: "could not decrypt: no age key"
|
|
158
|
-
|
|
159
|
-
**Cause**: `~/.config/age/keys.txt` missing or unreadable.
|
|
160
|
-
|
|
161
|
-
**Fix**:
|
|
162
|
-
|
|
163
|
-
```sh
|
|
164
|
-
ls -la ~/.config/age/keys.txt
|
|
165
|
-
# Should be: -rw------- 1 user user
|
|
166
|
-
chmod 600 ~/.config/age/keys.txt
|
|
167
|
-
|
|
168
|
-
# If missing, restore from password manager or regenerate (requires re-encrypting all secrets)
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Symptom: SOPS says "wrong recipient"
|
|
172
|
-
|
|
173
|
-
**Cause**: Your Age public key isn't listed in the file's recipients.
|
|
174
|
-
|
|
175
|
-
**Fix**:
|
|
176
|
-
|
|
177
|
-
```sh
|
|
178
|
-
# Add your public key to .sops.yaml
|
|
179
|
-
sops updatekeys path/to/file.sops.yaml
|
|
180
|
-
|
|
181
|
-
# Or, ask a recipient to re-encrypt for you
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### Symptom: Plaintext leak detected by gitleaks
|
|
185
|
-
|
|
186
|
-
**Cause**: A secret was committed to Git history.
|
|
187
|
-
|
|
188
|
-
**Fix**:
|
|
189
|
-
|
|
190
|
-
```sh
|
|
191
|
-
# Immediate mitigation
|
|
192
|
-
dot verify --security # confirm which file
|
|
193
|
-
git rm --cached <file>
|
|
194
|
-
echo "<file>" >> .gitignore
|
|
195
|
-
git commit -sS -m "fix(security): remove leaked file"
|
|
196
|
-
|
|
197
|
-
# Rotate the leaked secret upstream (it's now public)
|
|
198
|
-
# Rewrite Git history if needed (requires force-push):
|
|
199
|
-
git filter-repo --path <file> --invert-paths
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
## Performance
|
|
203
|
-
|
|
204
|
-
### Symptom: Shell startup >500ms
|
|
205
|
-
|
|
206
|
-
**Cause**: Heavy modules loaded synchronously.
|
|
207
|
-
|
|
208
|
-
**Fix**:
|
|
209
|
-
|
|
210
|
-
```sh
|
|
211
|
-
dot benchmark --detailed
|
|
212
|
-
# Identify which module is slow
|
|
213
|
-
|
|
214
|
-
# Rebuild caches
|
|
215
|
-
dot prewarm
|
|
216
|
-
|
|
217
|
-
# Disable heavy modules temporarily
|
|
218
|
-
# Edit ~/.config/zsh/.zshrc.local (or equivalent) to skip them
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### Symptom: `dot doctor` score <70
|
|
222
|
-
|
|
223
|
-
**Cause**: Multiple health issues.
|
|
224
|
-
|
|
225
|
-
**Fix**:
|
|
226
|
-
|
|
227
|
-
```sh
|
|
228
|
-
dot doctor --verbose # see every failure
|
|
229
|
-
dot heal # auto-fix what's possible
|
|
230
|
-
dot doctor # recheck
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### Symptom: Mise tools not found
|
|
234
|
-
|
|
235
|
-
**Cause**: Mise shim not activated.
|
|
236
|
-
|
|
237
|
-
**Fix**:
|
|
238
|
-
|
|
239
|
-
```sh
|
|
240
|
-
eval "$(mise activate zsh)" # or fish, bash
|
|
241
|
-
dot doctor # confirm
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
## Build Artifacts
|
|
245
|
-
|
|
246
|
-
### Symptom: Cargo builds to `target/` instead of `/tmp/builds/cargo`
|
|
247
|
-
|
|
248
|
-
**Cause**: `~/.cargo/config.toml` not managed or was overridden.
|
|
249
|
-
|
|
250
|
-
**Fix**:
|
|
251
|
-
|
|
252
|
-
```sh
|
|
253
|
-
chezmoi apply ~/.cargo/config.toml
|
|
254
|
-
cat ~/.cargo/config.toml | grep target-dir
|
|
255
|
-
# Should be: target-dir = "/tmp/builds/cargo"
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
### Symptom: `/tmp/builds/` doesn't exist
|
|
259
|
-
|
|
260
|
-
**Cause**: Created by shell init, but shell wasn't restarted.
|
|
261
|
-
|
|
262
|
-
**Fix**:
|
|
263
|
-
|
|
264
|
-
```sh
|
|
265
|
-
mkdir -p /tmp/builds
|
|
266
|
-
# Or restart shell
|
|
267
|
-
exec $SHELL -l
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
## Fleet
|
|
271
|
-
|
|
272
|
-
### Symptom: `dot fleet attest` hangs
|
|
273
|
-
|
|
274
|
-
**Cause**: A fleet host is unreachable.
|
|
275
|
-
|
|
276
|
-
**Fix**:
|
|
277
|
-
|
|
278
|
-
```sh
|
|
279
|
-
# Check connectivity to each host
|
|
280
|
-
for host in macbook-t2 surface-pro geekom-a9; do
|
|
281
|
-
ssh -o ConnectTimeout=5 $host 'echo OK' || echo "FAIL: $host"
|
|
282
|
-
done
|
|
283
|
-
|
|
284
|
-
# Remove unreachable hosts from ~/.config/dotfiles/fleet.toml temporarily
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
### Symptom: Attestation signature fails
|
|
288
|
-
|
|
289
|
-
**Cause**: Remote host's SSH public key not in local `~/.ssh/allowed_signers`.
|
|
290
|
-
|
|
291
|
-
**Fix**:
|
|
292
|
-
|
|
293
|
-
```sh
|
|
294
|
-
# On the remote host:
|
|
295
|
-
ssh remote-host 'cat ~/.ssh/id_ed25519.pub'
|
|
296
|
-
# Copy the output and append to your ~/.ssh/allowed_signers
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
## CI
|
|
300
|
-
|
|
301
|
-
### Symptom: PR fails on "Shell Lint (Zero Warnings)"
|
|
302
|
-
|
|
303
|
-
**Cause**: `shfmt` formatting differs from canonical.
|
|
304
|
-
|
|
305
|
-
**Fix**:
|
|
306
|
-
|
|
307
|
-
```sh
|
|
308
|
-
shfmt -w -i 2 -ci scripts/**/*.sh install.sh .chezmoitemplates/**/*.sh
|
|
309
|
-
# Commit the changes
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
### Symptom: PR fails on "100% Coverage"
|
|
313
|
-
|
|
314
|
-
**Cause**: New code added without tests.
|
|
315
|
-
|
|
316
|
-
**Fix**:
|
|
317
|
-
|
|
318
|
-
```sh
|
|
319
|
-
bash examples/example-coverage-gate.sh
|
|
320
|
-
# Identifies uncovered modules
|
|
321
|
-
|
|
322
|
-
# Add a test in tests/unit/<domain>/test_<module>.sh
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
### Symptom: Checkov SARIF upload times out
|
|
326
|
-
|
|
327
|
-
**Cause**: Known infrastructure flake (Azure runner slow apt mirrors).
|
|
328
|
-
|
|
329
|
-
**Fix**: The workflow already guards this with `hashFiles('reports/checkov.sarif')`. If you see this after the guard was added, check the Checkov step output for errors.
|
|
330
|
-
|
|
331
|
-
## Getting More Help
|
|
332
|
-
|
|
333
|
-
1. Check [FAQ](03-faq.md)
|
|
334
|
-
2. Read the relevant [concept chapter](../01-concepts/)
|
|
335
|
-
3. Open an issue: <https://github.com/sebastienrousseau/dotfiles/issues>
|
|
336
|
-
|
|
337
|
-
When filing an issue, include:
|
|
338
|
-
|
|
339
|
-
```sh
|
|
340
|
-
dot doctor --json
|
|
341
|
-
dot version
|
|
342
|
-
uname -a
|
|
343
|
-
chezmoi --version
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
## See Also
|
|
347
|
-
|
|
348
|
-
- [Self-Healing concept](../01-concepts/05-self-healing.md)
|
|
349
|
-
- [FAQ](03-faq.md)
|
|
350
|
-
- [Security: Incident Response](../../security/INCIDENT_RESPONSE.md)
|
|
351
|
-
{% endraw %}
|