@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.
- package/CHANGELOG.md +77 -0
- package/README.md +82 -44
- 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 +4 -0
- 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 +10 -0
- 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 +4 -0
- package/docs/manual/concept-index.md +4 -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 +148 -0
- package/docs/operations/DRIFT.md +107 -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/RELIABILITY.md +6 -0
- package/docs/operations/ROADMAP.md +36 -18
- package/docs/operations/TESTING.md +4 -0
- package/docs/operations/TRACEABILITY.md +4 -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/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/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/COMPLIANCE.md +5 -0
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +86 -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 +4 -0
- 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 +80 -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/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/init.fish.tmpl +21 -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 +1 -0
- 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 +154 -17
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +28 -6
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +26 -6
- package/dot_local/bin/executable_bm +2 -0
- package/dot_local/bin/executable_dot +9 -2
- package/dot_local/bin/executable_dot-load-benchmark +1 -1
- 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/install.sh +12 -4
- 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/run-coverage.sh +362 -0
- package/scripts/ci/validate-chezmoidata.sh +25 -0
- package/scripts/diagnostics/doctor.sh +173 -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 +14 -5
- package/scripts/dot/commands/ai.sh +75 -10
- package/scripts/dot/lib/bento.sh +2 -1
- package/scripts/dot/lib/log.sh +6 -0
- package/scripts/dot/lib/platform.sh +1 -0
- package/scripts/dot/lib/ui.sh +11 -0
- package/scripts/dot/lib/utils.sh +5 -0
- package/scripts/git-hooks/pre-commit-audit.sh +1 -1
- package/scripts/git-hooks/pre-push +66 -3
- package/scripts/ops/heal-chezmoi.sh +41 -6
- package/scripts/qa/powershell-contract.ps1 +95 -0
- package/scripts/theme/merge-wallpaper.sh +4 -0
- package/scripts/theme/switch.sh +20 -10
- 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,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.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.
|
|
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,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`.
|
|
@@ -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,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 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 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.
|
|
58
|
+
- **Rousseau, S.** *Dotfiles v0.2.501.* <https://github.com/sebastienrousseau/dotfiles>
|
package/docs/manual/_toc.yml
CHANGED