@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,124 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Reference: Environment Variables
|
|
6
|
-
|
|
7
|
-
All environment variables that affect `.dotfiles` behaviour.
|
|
8
|
-
|
|
9
|
-
## User-Settable
|
|
10
|
-
|
|
11
|
-
Variables you can set in your shell to change behaviour.
|
|
12
|
-
|
|
13
|
-
| Variable | Default | Effect |
|
|
14
|
-
|:---|:---|:---|
|
|
15
|
-
| `DOTFILES_VERBOSE` | unset | Verbose output from `dot` commands |
|
|
16
|
-
| `DOTFILES_NONINTERACTIVE` | unset | Skip interactive prompts (for CI) |
|
|
17
|
-
| `DOTFILES_SILENT` | unset | Suppress non-error output |
|
|
18
|
-
| `DOTFILES_DEBUG` | unset | Print shell-init timing to stderr |
|
|
19
|
-
| `DOTFILES_SOURCE_DIR` | `~/.dotfiles` | Override the source directory |
|
|
20
|
-
| `DOTFILES_WALLPAPER_DIR` | `~/Pictures/Wallpapers` | Custom wallpaper directory |
|
|
21
|
-
| `DOTFILES_CACHE_DIR` | `~/.cache/dotfiles` | Override cache location |
|
|
22
|
-
| `DOTFILES_STATE_DIR` | `~/.local/state/dotfiles` | Override state directory |
|
|
23
|
-
| `DOTFILES_TUNING` | `0` | Enable OS tuning (`dot tune`) |
|
|
24
|
-
| `EDITOR` | `nvim` | Editor used by `dot edit` and `sops` |
|
|
25
|
-
| `PAGER` | `less` | Pager used by `dot manual text` |
|
|
26
|
-
|
|
27
|
-
## Auto-Populated
|
|
28
|
-
|
|
29
|
-
Variables the dotfiles set in your shell for tool consumption.
|
|
30
|
-
|
|
31
|
-
| Variable | Value | Source |
|
|
32
|
-
|:---|:---|:---|
|
|
33
|
-
| `XDG_CONFIG_HOME` | `~/.config` | `dot_zshenv` / `dot_config/fish/conf.d/env.fish.tmpl` |
|
|
34
|
-
| `XDG_CACHE_HOME` | `~/.cache` | ditto |
|
|
35
|
-
| `XDG_DATA_HOME` | `~/.local/share` | ditto |
|
|
36
|
-
| `XDG_STATE_HOME` | `~/.local/state` | ditto |
|
|
37
|
-
| `PATH` | managed order | `dot_config/shell/00-core-paths.sh.tmpl` |
|
|
38
|
-
| `BUN_INSTALL` | `~/.bun` | `env.fish.tmpl` |
|
|
39
|
-
| `PIPX_HOME` | `~/.local/share/pipx` | ditto |
|
|
40
|
-
| `PIPX_BIN_DIR` | `~/.local/bin` | ditto |
|
|
41
|
-
| `BUILDS_TMPDIR` | `/tmp/builds` | `dot_zshenv` (created on shell init) |
|
|
42
|
-
| `CARGO_TARGET_DIR` | (from `~/.cargo/config.toml`) | `target-dir = "/tmp/builds/cargo"` |
|
|
43
|
-
| `GOCACHE` | `/tmp/builds/go-cache` | `mise [env]` |
|
|
44
|
-
| `GOTMPDIR` | `/tmp/builds/go-tmp` | `mise [env]` |
|
|
45
|
-
| `PIP_CACHE_DIR` | `/tmp/builds/pip-cache` | `mise [env]` |
|
|
46
|
-
| `UV_CACHE_DIR` | `/tmp/builds/uv-cache` | `mise [env]` |
|
|
47
|
-
| `ZIG_LOCAL_CACHE_DIR` | `/tmp/builds/zig-cache` | `mise [env]` |
|
|
48
|
-
| `ZIG_GLOBAL_CACHE_DIR` | `/tmp/builds/zig-global-cache` | `mise [env]` |
|
|
49
|
-
| `HOMEBREW_PREFIX` | `/opt/homebrew` or `/usr/local` | `dot_zshenv` (macOS) |
|
|
50
|
-
| `MANPATH` | homebrew-adjusted | ditto |
|
|
51
|
-
| `MISE_EXPERIMENTAL` | `1` | `~/.config/mise/config.toml` |
|
|
52
|
-
| `GITHUB_TOKEN` | from `gh auth token` | `~/.config/mise/config.toml` |
|
|
53
|
-
|
|
54
|
-
## Read by Tools
|
|
55
|
-
|
|
56
|
-
Variables set by upstream tools and respected by `.dotfiles`.
|
|
57
|
-
|
|
58
|
-
| Variable | Used for |
|
|
59
|
-
|:---|:---|
|
|
60
|
-
| `SHELL` | Detect default shell |
|
|
61
|
-
| `TERM` | Terminal capabilities (e.g. `xterm-256color`) |
|
|
62
|
-
| `COLORTERM` | True-color detection (`truecolor`) |
|
|
63
|
-
| `LANG` / `LC_ALL` | Locale (must be UTF-8) |
|
|
64
|
-
| `HOME` | User home directory |
|
|
65
|
-
| `USER` | Username |
|
|
66
|
-
| `SSH_AUTH_SOCK` | ssh-agent socket |
|
|
67
|
-
| `GPG_TTY` | GPG pinentry TTY |
|
|
68
|
-
|
|
69
|
-
## CI-Specific
|
|
70
|
-
|
|
71
|
-
Variables relevant in GitHub Actions.
|
|
72
|
-
|
|
73
|
-
| Variable | Purpose |
|
|
74
|
-
|:---|:---|
|
|
75
|
-
| `CI` | Set to `true` in CI; disables prompts |
|
|
76
|
-
| `GITHUB_ACTIONS` | GHA-specific; enables step summary output |
|
|
77
|
-
| `CHEZMOI_VERSION` | Pinned chezmoi version for CI |
|
|
78
|
-
| `COVERAGE_THRESHOLD` | Executable module-mapping threshold (100 in enforced CI; not line coverage) |
|
|
79
|
-
| `DOTFILES_TEST_MODE` | Skip network-dependent tests |
|
|
80
|
-
|
|
81
|
-
## Secret-Related
|
|
82
|
-
|
|
83
|
-
| Variable | Purpose |
|
|
84
|
-
|:---|:---|
|
|
85
|
-
| `SOPS_AGE_KEY_FILE` | Override `~/.config/age/keys.txt` path |
|
|
86
|
-
| `SOPS_AGE_RECIPIENTS` | Override recipients for new encryption |
|
|
87
|
-
| `CHEZMOI_AGE_IDENTITY` | Override age identity for chezmoi decrypt |
|
|
88
|
-
|
|
89
|
-
> Warning: never set these to values stored in plaintext config. Use a password manager or ephemeral injection.
|
|
90
|
-
|
|
91
|
-
## Startup Order
|
|
92
|
-
|
|
93
|
-
Shell-loaded variables follow this precedence (later wins):
|
|
94
|
-
|
|
95
|
-
1. System defaults (`/etc/environment`, `/etc/profile`)
|
|
96
|
-
2. Homebrew shellenv (macOS)
|
|
97
|
-
3. `~/.zshenv` (earliest user-level file; sets XDG + PATH bootstrap)
|
|
98
|
-
4. `~/.zprofile` or `~/.config/fish/conf.d/*.fish`
|
|
99
|
-
5. `~/.zshrc` or `~/.config/fish/config.fish`
|
|
100
|
-
6. `mise activate` — injects tool-specific env
|
|
101
|
-
7. Per-project `.envrc` via direnv (opt-in)
|
|
102
|
-
|
|
103
|
-
To debug: `DOTFILES_DEBUG=1 zsh -i -c exit` prints timing for each stage.
|
|
104
|
-
|
|
105
|
-
## Unsetting
|
|
106
|
-
|
|
107
|
-
To clean up environment pollution:
|
|
108
|
-
|
|
109
|
-
```sh
|
|
110
|
-
# Show current dotfiles-set vars
|
|
111
|
-
env | grep -E '^(DOTFILES_|XDG_|BUILDS_)'
|
|
112
|
-
|
|
113
|
-
# Unset one
|
|
114
|
-
unset DOTFILES_DEBUG
|
|
115
|
-
|
|
116
|
-
# Reset to defaults (restart shell)
|
|
117
|
-
exec $SHELL -l
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
## See Also
|
|
121
|
-
|
|
122
|
-
- [Configuration Files](02-config-files.md)
|
|
123
|
-
- [Feature Flags](05-feature-flags.md)
|
|
124
|
-
- [First Install](../02-tutorials/01-first-install.md)
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
{% raw %}
|
|
5
|
-
|
|
6
|
-
# Reference: Template Variables
|
|
7
|
-
|
|
8
|
-
Every variable available to chezmoi templates (`.tmpl` files).
|
|
9
|
-
|
|
10
|
-
## From `.chezmoidata.toml`
|
|
11
|
-
|
|
12
|
-
Flat top-level keys:
|
|
13
|
-
|
|
14
|
-
| Variable | Type | Example |
|
|
15
|
-
|:---|:---|:---|
|
|
16
|
-
| `.dotfiles_version` | string | `"0.2.501"` |
|
|
17
|
-
| `.theme` | string | `"tahoe-dark"` |
|
|
18
|
-
| `.machine` | string | `"macbook-t2"` |
|
|
19
|
-
| `.profile` | string | `"laptop"` |
|
|
20
|
-
| `.default_shell` | string | `"fish"` |
|
|
21
|
-
| `.terminal_font_family` | string | `"JetBrainsMono Nerd Font"` |
|
|
22
|
-
| `.terminal_font_size` | int | `12` |
|
|
23
|
-
| `.name` | string | `"Your Name"` |
|
|
24
|
-
| `.email` | string | `"you@example.com"` |
|
|
25
|
-
|
|
26
|
-
## From `.chezmoidata/themes.toml`
|
|
27
|
-
|
|
28
|
-
```go
|
|
29
|
-
{{- $t := index .themes .theme }}
|
|
30
|
-
{{ $t.mode }} // "dark" or "light"
|
|
31
|
-
{{ $t.family }} // "tahoe"
|
|
32
|
-
{{ $t.macos_accent }} // 4 (integer)
|
|
33
|
-
{{ $t.term.bg }} // "#121430"
|
|
34
|
-
{{ $t.term.fg }} // "#d4d8ec"
|
|
35
|
-
{{ $t.term.c0 }} .. {{ $t.term.c15 }} // ANSI 0-15
|
|
36
|
-
{{ $t.ui.accent }} // "#3951b1"
|
|
37
|
-
{{ $t.ui.accent_text }} // "#ffffff"
|
|
38
|
-
{{ $t.ui.panel }}
|
|
39
|
-
{{ $t.ui.border }}
|
|
40
|
-
{{ $t.app.nvim }} // "catppuccin"
|
|
41
|
-
{{ $t.app.starship_palette }}
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## From `.chezmoidata/hardware.toml`
|
|
45
|
-
|
|
46
|
-
```go
|
|
47
|
-
{{- $hw := index .hardware .machine }}
|
|
48
|
-
{{ $hw.display_scale }} // 2.0
|
|
49
|
-
{{ $hw.kbd_layout }} // "qwerty"
|
|
50
|
-
{{ $hw.modifier_mode }} // "left-cmd-control"
|
|
51
|
-
{{ $hw.perf_profile }} // "laptop"
|
|
52
|
-
{{ $hw.wm }} // "aerospace"
|
|
53
|
-
{{ $hw.features.touchid }} // bool
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## From Feature Flags
|
|
57
|
-
|
|
58
|
-
```go
|
|
59
|
-
{{- $f := mergeOverwrite .features $hw.features }}
|
|
60
|
-
{{ if $f.dms }}
|
|
61
|
-
# Dank Material Shell-specific config
|
|
62
|
-
{{ end }}
|
|
63
|
-
|
|
64
|
-
{{ if $f.niri }}
|
|
65
|
-
# Niri WM config
|
|
66
|
-
{{ end }}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## Built-in Chezmoi Variables
|
|
70
|
-
|
|
71
|
-
```go
|
|
72
|
-
{{ .chezmoi.os }} // "darwin" | "linux" | "windows"
|
|
73
|
-
{{ .chezmoi.arch }} // "amd64" | "arm64"
|
|
74
|
-
{{ .chezmoi.kernel }} // "Darwin" | "Linux"
|
|
75
|
-
{{ .chezmoi.kernel.ostype }} // "darwin24" etc
|
|
76
|
-
{{ .chezmoi.hostname }} // host machine hostname
|
|
77
|
-
{{ .chezmoi.username }} // current user
|
|
78
|
-
{{ .chezmoi.homeDir }} // $HOME
|
|
79
|
-
{{ .chezmoi.sourceDir }} // ~/.dotfiles
|
|
80
|
-
{{ .chezmoi.workingTree }} // git working tree root
|
|
81
|
-
{{ .chezmoi.executable }} // chezmoi binary path
|
|
82
|
-
{{ .chezmoi.osRelease }} // Linux /etc/os-release data
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Built-in Chezmoi Functions
|
|
86
|
-
|
|
87
|
-
```go
|
|
88
|
-
{{ exec "command" | trim }}
|
|
89
|
-
{{ output "hostname" }}
|
|
90
|
-
{{ include "path/to/file" }}
|
|
91
|
-
{{ decrypt "path/to/file.age" }}
|
|
92
|
-
{{ sopsDecrypt "path/to/file.sops.yaml" | fromYaml }}
|
|
93
|
-
{{ joinPath "a" "b" }}
|
|
94
|
-
{{ stat "/path" }}
|
|
95
|
-
{{ ioreg ".." ".." }} // macOS only
|
|
96
|
-
{{ lookPath "command" }} // returns path or empty
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Helper Templates (in `.chezmoitemplates/`)
|
|
100
|
-
|
|
101
|
-
Reusable partials included via:
|
|
102
|
-
|
|
103
|
-
```go
|
|
104
|
-
{{ template "paths/00-default.paths.sh" . }}
|
|
105
|
-
{{ template "aliases/cd.aliases.sh" . }}
|
|
106
|
-
{{ template "functions/cdls.sh" . }}
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
Available partials:
|
|
110
|
-
|
|
111
|
-
- `paths/00-default.paths.sh` — canonical PATH construction
|
|
112
|
-
- `paths/05-pipx.paths.sh` — pipx + ~/.local/bin
|
|
113
|
-
- `paths/99-custom.paths.sh` — user-appended paths
|
|
114
|
-
- `aliases/*.aliases.sh` — per-domain alias sets
|
|
115
|
-
- `functions/*.sh` — reusable shell functions
|
|
116
|
-
|
|
117
|
-
## Example: Using Theme in Ghostty Config
|
|
118
|
-
|
|
119
|
-
```go
|
|
120
|
-
{{- /* dot_config/ghostty/config.tmpl */ -}}
|
|
121
|
-
{{- $t := index .themes .theme -}}
|
|
122
|
-
|
|
123
|
-
font-family = "{{ .terminal_font_family }}"
|
|
124
|
-
font-size = {{ .terminal_font_size }}
|
|
125
|
-
|
|
126
|
-
background = {{ $t.term.bg }}
|
|
127
|
-
foreground = {{ $t.term.fg }}
|
|
128
|
-
cursor-color = {{ $t.term.cursor }}
|
|
129
|
-
|
|
130
|
-
palette = 0={{ $t.term.c0 }}
|
|
131
|
-
palette = 1={{ $t.term.c1 }}
|
|
132
|
-
palette = 2={{ $t.term.c2 }}
|
|
133
|
-
# ... through 15
|
|
134
|
-
|
|
135
|
-
{{- if eq .chezmoi.os "darwin" }}
|
|
136
|
-
macos-titlebar-style = transparent
|
|
137
|
-
{{- end }}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
## Example: Platform × Preset
|
|
141
|
-
|
|
142
|
-
```go
|
|
143
|
-
{{- $hw := index .hardware .machine -}}
|
|
144
|
-
|
|
145
|
-
{{- if and (eq .chezmoi.os "darwin") (eq $hw.wm "aerospace") }}
|
|
146
|
-
# macOS AeroSpace config
|
|
147
|
-
include = ["aerospace-macos.toml"]
|
|
148
|
-
{{- else if and (eq .chezmoi.os "linux") (eq $hw.wm "niri") }}
|
|
149
|
-
# Linux Niri config
|
|
150
|
-
include = ["niri.kdl"]
|
|
151
|
-
{{- end }}
|
|
152
|
-
|
|
153
|
-
# DPI-aware sizing
|
|
154
|
-
font-size = {{ mul 8 $hw.display_scale | int }}
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## Template Testing
|
|
158
|
-
|
|
159
|
-
Render a template without applying:
|
|
160
|
-
|
|
161
|
-
```sh
|
|
162
|
-
chezmoi execute-template < dot_config/ghostty/config.tmpl
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
Or test an expression:
|
|
166
|
-
|
|
167
|
-
```sh
|
|
168
|
-
chezmoi execute-template '{{ .chezmoi.os }}'
|
|
169
|
-
# darwin
|
|
170
|
-
|
|
171
|
-
chezmoi execute-template '{{- $t := index .themes .theme -}}{{ $t.term.bg }}'
|
|
172
|
-
# #121430
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
## Validation in CI
|
|
176
|
-
|
|
177
|
-
Every push to main runs:
|
|
178
|
-
|
|
179
|
-
```sh
|
|
180
|
-
chezmoi apply --dry-run
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
If any template fails to render, the build breaks before merge.
|
|
184
|
-
|
|
185
|
-
## See Also
|
|
186
|
-
|
|
187
|
-
- [Chezmoi template reference](https://www.chezmoi.io/reference/templates/)
|
|
188
|
-
- [Configuration Files](02-config-files.md)
|
|
189
|
-
- [Create a Profile tutorial](../02-tutorials/03-create-profile.md)
|
|
190
|
-
{% endraw %}
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
{% raw %}
|
|
5
|
-
|
|
6
|
-
# Reference: Feature Flags
|
|
7
|
-
|
|
8
|
-
Feature flags toggle optional subsystems. Set in `.chezmoidata.toml`, override per-preset in `.chezmoidata/hardware.toml`.
|
|
9
|
-
|
|
10
|
-
## Global Flags (`.chezmoidata.toml`)
|
|
11
|
-
|
|
12
|
-
```toml
|
|
13
|
-
[features]
|
|
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
|
|
17
|
-
linux_desktop = false # Linux-specific desktop configs
|
|
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
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Per-Preset Overrides (`.chezmoidata/hardware.toml`)
|
|
30
|
-
|
|
31
|
-
```toml
|
|
32
|
-
[hardware.surface-pro.features]
|
|
33
|
-
niri = true
|
|
34
|
-
waybar = true
|
|
35
|
-
dms = true # overrides .chezmoidata.toml default
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
The effective value is `mergeOverwrite` of global + preset features.
|
|
39
|
-
|
|
40
|
-
## Flag Catalogue
|
|
41
|
-
|
|
42
|
-
### `dms` — Dank Material Shell
|
|
43
|
-
|
|
44
|
-
When `true`:
|
|
45
|
-
|
|
46
|
-
- Configures DMS IPC for theme sync
|
|
47
|
-
- Enables Quickshell templates
|
|
48
|
-
- Sets up per-monitor wallpaper via `dms ipc wallpaper`
|
|
49
|
-
|
|
50
|
-
Requires: Niri + Quickshell + DMS installed.
|
|
51
|
-
|
|
52
|
-
### `linux_desktop` — Linux Desktop Configs
|
|
53
|
-
|
|
54
|
-
When `true`:
|
|
55
|
-
|
|
56
|
-
- Enables GTK 3/4 theme generation from `themes.toml`
|
|
57
|
-
- Configures `gsettings color-scheme` behaviour
|
|
58
|
-
- Generates desktop file entries for installed tools
|
|
59
|
-
|
|
60
|
-
No effect on macOS.
|
|
61
|
-
|
|
62
|
-
### `niri` — Niri Window Manager
|
|
63
|
-
|
|
64
|
-
When `true`:
|
|
65
|
-
|
|
66
|
-
- Generates `~/.config/niri/config.kdl`
|
|
67
|
-
- Enables Niri keybindings from `keybinds.toml`
|
|
68
|
-
- Configures workspace rules per preset
|
|
69
|
-
|
|
70
|
-
Requires: Niri installed.
|
|
71
|
-
|
|
72
|
-
### `waybar` — Waybar Status Bar
|
|
73
|
-
|
|
74
|
-
When `true`:
|
|
75
|
-
|
|
76
|
-
- Generates `~/.config/waybar/config.jsonc` + `style.css`
|
|
77
|
-
- Hooks into theme switching via `dot-theme-sync`
|
|
78
|
-
|
|
79
|
-
Requires: Waybar installed.
|
|
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
|
-
|
|
131
|
-
## Using a Flag in a Template
|
|
132
|
-
|
|
133
|
-
```go
|
|
134
|
-
{{- $hw := index .hardware .machine }}
|
|
135
|
-
{{- $f := mergeOverwrite .features $hw.features }}
|
|
136
|
-
|
|
137
|
-
{{ if $f.niri }}
|
|
138
|
-
# Niri-specific config
|
|
139
|
-
{{ end }}
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Checking Active Flags
|
|
143
|
-
|
|
144
|
-
```sh
|
|
145
|
-
chezmoi execute-template '{{- $hw := index .hardware .machine -}}{{- $f := mergeOverwrite .features $hw.features -}}{{ $f | toToml }}'
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
## Adding a New Flag
|
|
149
|
-
|
|
150
|
-
1. Add to `.chezmoidata.toml`:
|
|
151
|
-
|
|
152
|
-
```toml
|
|
153
|
-
[features]
|
|
154
|
-
my_new_flag = false
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
2. (Optional) Set per preset:
|
|
158
|
-
|
|
159
|
-
```toml
|
|
160
|
-
[hardware.macbook-t2.features]
|
|
161
|
-
my_new_flag = true
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
3. Use in templates:
|
|
165
|
-
|
|
166
|
-
```go
|
|
167
|
-
{{ if $f.my_new_flag }}
|
|
168
|
-
# conditional config
|
|
169
|
-
{{ end }}
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
4. Document here with the flag's purpose and requirements
|
|
173
|
-
|
|
174
|
-
## Flag Deprecation
|
|
175
|
-
|
|
176
|
-
Flags can be deprecated without breaking existing hosts. The deprecation process:
|
|
177
|
-
|
|
178
|
-
1. Mark the flag as deprecated in this document
|
|
179
|
-
2. Leave the flag evaluation in place for one release
|
|
180
|
-
3. In the subsequent release, remove the template branches and the flag definition
|
|
181
|
-
4. Users who had the flag set will see it ignored — no errors
|
|
182
|
-
|
|
183
|
-
## See Also
|
|
184
|
-
|
|
185
|
-
- [Configuration Files](02-config-files.md)
|
|
186
|
-
- [Create a Profile](../02-tutorials/03-create-profile.md)
|
|
187
|
-
{% endraw %}
|