@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
package/docs/reference/FONTS.md
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Font configuration
|
|
6
|
-
|
|
7
|
-
How fonts are set up, rendered, and installed in these dotfiles.
|
|
8
|
-
|
|
9
|
-
## Recommended fonts
|
|
10
|
-
|
|
11
|
-
### Primary: JetBrains Mono Nerd Font
|
|
12
|
-
|
|
13
|
-
The default font is JetBrains Mono with Nerd Font patches. It's designed for code readability, supports ligatures, includes Powerline/Nerd Font glyphs, and clearly distinguishes similar characters (`0`/`O`, `1`/`l`/`I`).
|
|
14
|
-
|
|
15
|
-
### Alternatives
|
|
16
|
-
|
|
17
|
-
| Font | Style | Best for |
|
|
18
|
-
|------|-------|----------|
|
|
19
|
-
| Fira Code | Modern | Ligature fans |
|
|
20
|
-
| Cascadia Code | Microsoft | VS Code users |
|
|
21
|
-
| Hack | Classic | Traditional monospace look |
|
|
22
|
-
| Source Code Pro | Adobe | Clean aesthetic |
|
|
23
|
-
| Iosevka | Narrow | Small screens |
|
|
24
|
-
|
|
25
|
-
## Installation
|
|
26
|
-
|
|
27
|
-
### macOS (Homebrew)
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
brew tap homebrew/cask-fonts
|
|
31
|
-
brew install --cask font-jetbrains-mono-nerd-font
|
|
32
|
-
|
|
33
|
-
# Or use the dot CLI
|
|
34
|
-
dot fonts install
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Linux (manual)
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/JetBrainsMono.zip
|
|
41
|
-
unzip JetBrainsMono.zip -d ~/.local/share/fonts/
|
|
42
|
-
fc-cache -fv
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### Patching your own fonts
|
|
46
|
-
|
|
47
|
-
To patch a custom font with Nerd Font glyphs:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
~/.dotfiles/scripts/fonts/patch-fonts.sh /path/to/font.ttf
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## Terminal configuration
|
|
54
|
-
|
|
55
|
-
### Ghostty
|
|
56
|
-
|
|
57
|
-
```text
|
|
58
|
-
font-family = JetBrains Mono Nerd Font
|
|
59
|
-
font-size = 14
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### WezTerm
|
|
63
|
-
|
|
64
|
-
```lua
|
|
65
|
-
config.font = wezterm.font("JetBrains Mono Nerd Font")
|
|
66
|
-
config.font_size = 14.0
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Alacritty
|
|
70
|
-
|
|
71
|
-
```yaml
|
|
72
|
-
font:
|
|
73
|
-
normal:
|
|
74
|
-
family: JetBrains Mono Nerd Font
|
|
75
|
-
size: 14.0
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Kitty
|
|
79
|
-
|
|
80
|
-
```text
|
|
81
|
-
font_family JetBrains Mono Nerd Font
|
|
82
|
-
font_size 14.0
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Font size recommendations
|
|
86
|
-
|
|
87
|
-
| Display | Size |
|
|
88
|
-
|---------|------|
|
|
89
|
-
| 13" laptop | 12-13pt |
|
|
90
|
-
| 15" laptop | 13-14pt |
|
|
91
|
-
| 24" monitor | 14-15pt |
|
|
92
|
-
| 27" 4K monitor | 15-16pt |
|
|
93
|
-
|
|
94
|
-
## Troubleshooting
|
|
95
|
-
|
|
96
|
-
### Fonts not displaying correctly
|
|
97
|
-
|
|
98
|
-
1. Verify the font is installed: `fc-list | grep JetBrains`
|
|
99
|
-
2. Restart your terminal
|
|
100
|
-
3. Double-check the terminal's font settings
|
|
101
|
-
|
|
102
|
-
### Nerd Font icons missing
|
|
103
|
-
|
|
104
|
-
1. Make sure you're using a Nerd Font variant (not the plain version)
|
|
105
|
-
2. Confirm the terminal supports the required Unicode range
|
|
106
|
-
3. Try a different Nerd Font if the issue persists
|
|
107
|
-
|
|
108
|
-
### Ligatures not working
|
|
109
|
-
|
|
110
|
-
1. Enable ligatures in your terminal's settings
|
|
111
|
-
2. Some terminals don't support ligatures (e.g., `Terminal.app`)
|
|
112
|
-
3. Ghostty, WezTerm, and Kitty all handle ligatures well
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
title: "PowerShell parity matrix"
|
|
4
|
-
description: "What works on Windows-native PowerShell 7.4 LTS / 7.5+ vs the bash surface."
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# PowerShell parity matrix
|
|
8
|
-
|
|
9
|
-
This document tracks what is supported on Windows-native PowerShell 7.4 LTS / 7.5+ compared to the bash/zsh surface that ships on macOS and Linux. The repo's positioning has shifted (per [ROADMAP_2026 §6.9](../operations/ROADMAP_2026.md)) to call PowerShell a first-class target rather than "best effort." This page is the contract.
|
|
10
|
-
|
|
11
|
-
## Support tiers
|
|
12
|
-
|
|
13
|
-
| Tier | Meaning | Examples |
|
|
14
|
-
|---|---|---|
|
|
15
|
-
| **Full** | Native PowerShell path; tested in CI on `windows-latest`. | `dot version`, `dot help`, `dot agents check`. |
|
|
16
|
-
| **WSL-bridged** | Runs under WSL2 bash with the same UX as Linux. | All `dot` subcommands, the test suite, the cold-start bench. |
|
|
17
|
-
| **Bash-bridged** | The PowerShell dispatcher delegates to Git Bash or WSL bash and fails clearly when bash is unavailable. | `dot registry`, `dot fleet apply`, Unix-specific diagnostics. |
|
|
18
|
-
| **N/A** | The command targets a Unix-only surface and is not exposed on PowerShell. | Wallpaper-driven theming via macOS `defaults`; Linux-only `lock-configs.sh`. |
|
|
19
|
-
|
|
20
|
-
## Command-by-command matrix
|
|
21
|
-
|
|
22
|
-
| Command | Windows-native | WSL2 | macOS | Linux |
|
|
23
|
-
|---|---|---|---|---|
|
|
24
|
-
| `dot version` | **Full (native)** — `Get-DotVersion` cmdlet in `scripts/dot/powershell/Dot.psm1`; reads `.chezmoidata.toml` directly, no bash | Full | Full | Full |
|
|
25
|
-
| `dot help` | **Full (native)** — `Invoke-DotHelp`; detailed Unix command help remains bash-bridged | Full | Full | Full |
|
|
26
|
-
| `dot status` | **Full (native)** — structured clean/drifted result from chezmoi | Full | Full | Full |
|
|
27
|
-
| `dot diff` / `apply` / `sync` / `update` | **Full (native)** — direct, exit-code-checked chezmoi operations | Full | Full | Full |
|
|
28
|
-
| `dot add` / `remove` / `init` / `cd` | **Full (native)** — direct chezmoi operations and source-path lookup | Full | Full | Full |
|
|
29
|
-
| `dot doctor` | **Full (native baseline)** — PowerShell, chezmoi, git, repo data, and module checks; Unix-only diagnostics are bash-bridged | Full | Full | Full |
|
|
30
|
-
| `dot agents check` | **Full (native)** — `Test-DotAgentsSync` cmdlet; CI smoke test runs the cmdlet directly | Full | Full | Full |
|
|
31
|
-
| `dot agents list` | **Full (native)** — structured harness/path/rendered records | Full | Full | Full |
|
|
32
|
-
| `dot agents render` | Bash-bridged | Full | Full | Full |
|
|
33
|
-
| `dot env list` | **Full (native)** — mise text or JSON inventory | Full | Full | Full |
|
|
34
|
-
| `dot env emit` | Bash-bridged | Full | Full | Full |
|
|
35
|
-
| `dot fleet status` | **Full (native)** — node, version, OS, architecture, and drift | Full | Full | Full |
|
|
36
|
-
| `dot fleet drift` / `events` / `apply` / `namespace` | Bash-bridged | Full | Full | Full |
|
|
37
|
-
| `dot registry list` / `search` / `info` / `install` | Bash-bridged; Unix path is verified, checksum-pinned, and preview-first | Full | Full | Full |
|
|
38
|
-
| `dot agent` / `mode` / AI commands | Bash-bridged | Full | Full | Full |
|
|
39
|
-
| `dot lint` | WSL-bridged (shellcheck/shfmt are Unix-native) | Full | Full | Full |
|
|
40
|
-
| `dot perf` / `health` / `tools` | Bash-bridged | Full | Full | Full |
|
|
41
|
-
| `dot theme` / `wallpaper` | N/A on native Windows | Limited | Full | Full (desktop-dependent) |
|
|
42
|
-
| `dot security firewall` | Bash-bridged; no native Defender mutation | N/A | Full (pf) | Full (ufw/firewalld) |
|
|
43
|
-
| `dot security lock-configs` | N/A (Windows ACL model differs; tracked) | N/A | Full (`chflags uchg`) | Full (`chattr +i`) |
|
|
44
|
-
| Shell startup integration | Full (`Microsoft.PowerShell_profile.ps1` ships) | Full (zsh, bash, fish) | Full (zsh, bash, fish, nu) | Full (zsh, bash, fish, nu) |
|
|
45
|
-
|
|
46
|
-
## What CI verifies
|
|
47
|
-
|
|
48
|
-
| Check | Platforms |
|
|
49
|
-
|---|---|
|
|
50
|
-
| `dot version` exits 0 | windows-latest, ubuntu-latest, macos-latest, macos-14 |
|
|
51
|
-
| `dot help` exits 0 | windows-latest, ubuntu-latest, macos-latest, macos-14 |
|
|
52
|
-
| `dot agents check` exits 0 | windows-latest (native), ubuntu-latest, macos-latest, macos-14 |
|
|
53
|
-
| Native module import, agent-body sync, harness inventory, doctor baseline, and chezmoi diff | windows-latest |
|
|
54
|
-
| Native dispatcher version, help, and agents check | windows-latest |
|
|
55
|
-
| PowerShell ≥ 7.4 | windows-latest (smoke test at `tools/ci/windows-smoke-test.ps1`) |
|
|
56
|
-
| PSScriptAnalyzer Error-level findings | windows-latest |
|
|
57
|
-
| `chezmoi --version` exits 0 | windows-latest (via scoop), all Unix matrices |
|
|
58
|
-
| `bash tools/ci/dot-cli-startup-bench.sh` median < 200ms | macos-latest |
|
|
59
|
-
| `bash tools/ci/dot-cli-startup-bench.sh` median < 150ms | ubuntu-latest |
|
|
60
|
-
|
|
61
|
-
## Known parity gaps
|
|
62
|
-
|
|
63
|
-
These are scoped in [`ROADMAP_2026 §C5`](../operations/ROADMAP_2026.md) but not in this PR's scope:
|
|
64
|
-
|
|
65
|
-
1. **Registry and fleet mutation.** Verified registry installation and multi-node fleet application still use the explicit bash bridge.
|
|
66
|
-
2. **Wallpaper-driven theming.** Native Windows wallpaper extraction and application are not implemented.
|
|
67
|
-
3. **Windows config locking.** There is no ACL/EFS equivalent of the Unix immutable-file operation.
|
|
68
|
-
4. **Authenticode signing.** Release provenance covers the archive, but `install.ps1` and `dot.ps1` are not Authenticode-signed for enterprise execution policies.
|
|
69
|
-
|
|
70
|
-
## Source-of-truth files
|
|
71
|
-
|
|
72
|
-
- `.github/workflows/ci.yml` — `test-windows` job (pwsh + scoop + chezmoi + smoke)
|
|
73
|
-
- `tools/ci/windows-smoke-test.ps1` — the actual gate
|
|
74
|
-
- `bin/dot.ps1` and `scripts/dot/powershell/Dot.psm1` — native dispatcher and cmdlets
|
|
75
|
-
- `defaults/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl` — deployed profile
|
|
76
|
-
- `scripts/dot/lib/platform.sh` — the dot_path_to_unix/native bridge (H9 audit fix)
|
|
77
|
-
|
|
78
|
-
## Why this matters
|
|
79
|
-
|
|
80
|
-
The 2026 trend brief flagged Windows-as-first-class as the highest-leverage move post-Codex-Windows-GA (launched 2026-03-04 with 500k waitlist → 2M WAU in 4 weeks). PowerShell 7.4 LTS retires 2026-11-10, so the gate sits at "7.4+" today and will tighten to "7.5+" in November. Documented here so the gate change is not a surprise.
|
|
81
|
-
|
|
82
|
-
Generated 2026-05-16 alongside the round-2 hard audit. Maintained: when adding a `dot` subcommand, update this matrix in the same PR.
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Profiles and Machine Setup
|
|
6
|
-
|
|
7
|
-
## Profile System
|
|
8
|
-
|
|
9
|
-
You can set up each machine differently using profiles and hardware presets.
|
|
10
|
-
|
|
11
|
-
### Setting Your Profile
|
|
12
|
-
|
|
13
|
-
Edit `~/.config/chezmoi/chezmoi.toml`:
|
|
14
|
-
|
|
15
|
-
```toml
|
|
16
|
-
[data]
|
|
17
|
-
profile = "laptop" # laptop | minimal | server
|
|
18
|
-
machine = "macbook-m3" # optional: machine identifier
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
### Available Profiles
|
|
22
|
-
|
|
23
|
-
| Profile | Description | What's Included |
|
|
24
|
-
|---------|-------------|-----------------|
|
|
25
|
-
| `laptop` | Full desktop setup (default) | All tools, AI CLIs, themes, completions |
|
|
26
|
-
| `minimal` | Fast, lightweight | Core shell, git, basic aliases only |
|
|
27
|
-
| `server` | Headless server | Shell, git, monitoring tools, no desktop |
|
|
28
|
-
|
|
29
|
-
### Per-Machine Overrides
|
|
30
|
-
|
|
31
|
-
Create a `~/.config/chezmoi/chezmoi.toml` file on each machine to override defaults:
|
|
32
|
-
|
|
33
|
-
```toml
|
|
34
|
-
[data]
|
|
35
|
-
profile = "laptop"
|
|
36
|
-
machine = "work-macbook"
|
|
37
|
-
default_shell = "zsh"
|
|
38
|
-
|
|
39
|
-
[data.features]
|
|
40
|
-
linux_desktop = false
|
|
41
|
-
zellij = true
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Hardware Presets
|
|
45
|
-
|
|
46
|
-
The `templates/chezmoi-data/` folder has ready-made configs for common hardware:
|
|
47
|
-
|
|
48
|
-
- `mac-m1.toml.example` — Apple Silicon MacBook
|
|
49
|
-
- `geekom-a9.toml.example` — AMD mini PC (Linux)
|
|
50
|
-
- `surface-pro-7p.toml.example` — Microsoft Surface (Linux)
|
|
51
|
-
- `mac-t2-linux.toml.example` — Intel Mac running Linux
|
|
52
|
-
|
|
53
|
-
Copy the one that matches your hardware:
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
cp templates/chezmoi-data/mac-m1.toml.example ~/.config/chezmoi/chezmoi.toml
|
|
57
|
-
chezmoi apply
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Environment Variables
|
|
61
|
-
|
|
62
|
-
You can change behavior for a single session without editing any files:
|
|
63
|
-
|
|
64
|
-
| Variable | Default | Effect |
|
|
65
|
-
|----------|---------|--------|
|
|
66
|
-
| `DOTFILES_FAST=1` | 0 | Skip heavy layers (zinit, completions) |
|
|
67
|
-
| `DOTFILES_ULTRA_FAST=1` | 0 | Bare minimum shell (aliases + prompt) |
|
|
68
|
-
| `DOTFILES_AI=1` | 0 | Enable AI helper scripts |
|
|
69
|
-
| `DOTFILES_PROFILE=custom` | laptop | Override profile for session |
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Screenshots Gallery
|
|
6
|
-
|
|
7
|
-
Here's how the dotfiles look across different themes and configurations.
|
|
8
|
-
|
|
9
|
-
## Theme Gallery
|
|
10
|
-
|
|
11
|
-
### Catppuccin Mocha (default)
|
|
12
|
-
|
|
13
|
-
The default theme. Catppuccin Mocha gives you a dark palette with warm, muted colors.
|
|
14
|
-
|
|
15
|
-
```text
|
|
16
|
-
Terminal: Ghostty / WezTerm / Alacritty
|
|
17
|
-
Font: JetBrains Mono Nerd Font
|
|
18
|
-
Theme: Catppuccin Mocha
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Key colors:
|
|
22
|
-
|
|
23
|
-
- Background: `#1e1e2e`
|
|
24
|
-
- Foreground: `#cdd6f4`
|
|
25
|
-
- Accent Blue: `#89b4fa`
|
|
26
|
-
- Accent Red: `#f38ba8`
|
|
27
|
-
|
|
28
|
-
### Catppuccin Latte (light)
|
|
29
|
-
|
|
30
|
-
A light theme option for daytime use.
|
|
31
|
-
|
|
32
|
-
```text
|
|
33
|
-
Terminal: Ghostty / WezTerm / Alacritty
|
|
34
|
-
Font: JetBrains Mono Nerd Font
|
|
35
|
-
Theme: Catppuccin Latte
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Key colors:
|
|
39
|
-
|
|
40
|
-
- Background: `#eff1f5`
|
|
41
|
-
- Foreground: `#4c4f69`
|
|
42
|
-
- Accent Blue: `#1e66f5`
|
|
43
|
-
- Accent Red: `#d20f39`
|
|
44
|
-
|
|
45
|
-
## Terminal Configurations
|
|
46
|
-
|
|
47
|
-
### Ghostty
|
|
48
|
-
|
|
49
|
-
Modern, native terminal with GPU acceleration.
|
|
50
|
-
|
|
51
|
-
- Native macOS integration
|
|
52
|
-
- Fast rendering
|
|
53
|
-
- Ligature support
|
|
54
|
-
- Custom key bindings
|
|
55
|
-
|
|
56
|
-
### WezTerm
|
|
57
|
-
|
|
58
|
-
Cross-platform terminal with Lua configuration.
|
|
59
|
-
|
|
60
|
-
- GPU acceleration
|
|
61
|
-
- Multiple windows/tabs
|
|
62
|
-
- Hyperlinks
|
|
63
|
-
- Image protocol support
|
|
64
|
-
|
|
65
|
-
### Alacritty
|
|
66
|
-
|
|
67
|
-
Minimal, fast terminal.
|
|
68
|
-
|
|
69
|
-
- Fast rendering
|
|
70
|
-
- Simple YAML config
|
|
71
|
-
- Vi mode
|
|
72
|
-
- Cross-platform
|
|
73
|
-
|
|
74
|
-
### Kitty
|
|
75
|
-
|
|
76
|
-
Feature-rich terminal.
|
|
77
|
-
|
|
78
|
-
- GPU rendering
|
|
79
|
-
- Ligatures
|
|
80
|
-
- Image support
|
|
81
|
-
- Keyboard protocol
|
|
82
|
-
|
|
83
|
-
## Prompt (Starship)
|
|
84
|
-
|
|
85
|
-
The Starship prompt displays:
|
|
86
|
-
|
|
87
|
-
- Current directory
|
|
88
|
-
- Git branch and status
|
|
89
|
-
- Language versions (when relevant)
|
|
90
|
-
- Command duration
|
|
91
|
-
- Exit status
|
|
92
|
-
|
|
93
|
-
## Neovim
|
|
94
|
-
|
|
95
|
-
The Neovim configuration includes:
|
|
96
|
-
|
|
97
|
-
- Catppuccin theme
|
|
98
|
-
- Treesitter syntax highlighting
|
|
99
|
-
- LSP integration
|
|
100
|
-
- Telescope fuzzy finder
|
|
101
|
-
- File tree (`nvim-tree`)
|
|
102
|
-
|
|
103
|
-
## tmux
|
|
104
|
-
|
|
105
|
-
The tmux status bar displays:
|
|
106
|
-
|
|
107
|
-
- Session name
|
|
108
|
-
- Current window
|
|
109
|
-
- Host name
|
|
110
|
-
- Date and time
|
|
111
|
-
|
|
112
|
-
## Adding Screenshots
|
|
113
|
-
|
|
114
|
-
To contribute screenshots:
|
|
115
|
-
|
|
116
|
-
1. Take a screenshot of your terminal.
|
|
117
|
-
2. Save it as a PNG in `docs/themes/`.
|
|
118
|
-
3. Add a reference in this file.
|
|
119
|
-
4. Submit a PR.
|
|
120
|
-
|
|
121
|
-
Recommended screenshot size: 1920x1080 or 2560x1440.
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Script Catalog
|
|
6
|
-
|
|
7
|
-
Exhaustive catalog of user-facing executables installed from `dot_local/bin/`.
|
|
8
|
-
|
|
9
|
-
## Core and dotfiles workflows
|
|
10
|
-
|
|
11
|
-
| Command | Description |
|
|
12
|
-
|---------|-------------|
|
|
13
|
-
| `dot` | Primary dotfiles command-line interface |
|
|
14
|
-
| `dot-ai` | Legacy AI query wrapper for local dotfiles context |
|
|
15
|
-
| `dot-bootstrap` | Deterministic bootstrap entrypoint for fresh machines |
|
|
16
|
-
| `dot-launch-or-focus` | Launch or focus desktop applications and sessions |
|
|
17
|
-
| `dot-load-benchmark` | Measure heavy shell layer readiness in a fresh shell |
|
|
18
|
-
| `dot-load-benchmark-pty` | PTY-based readiness benchmark for shell prewarm flows |
|
|
19
|
-
| `dot-theme-sync` | Synchronize managed theme state across tools |
|
|
20
|
-
| `update` | Update the managed dotfiles environment |
|
|
21
|
-
| `tour` | Interactive guided tour of the dotfiles environment |
|
|
22
|
-
|
|
23
|
-
## AI and git helpers
|
|
24
|
-
|
|
25
|
-
| Command | Description |
|
|
26
|
-
|---------|-------------|
|
|
27
|
-
| `ai-update` | Update AI-related CLIs, runtimes, and supporting tools |
|
|
28
|
-
| `ai_core` | Local AI runtime wrapper and provider fallback core |
|
|
29
|
-
| `git-ai-commit` | Generate commit messages from staged changes with AI |
|
|
30
|
-
| `git-ai-diff` | Review diffs and change sets with AI assistance |
|
|
31
|
-
| `antigravity` | Safe wrapper for Antigravity updater execution |
|
|
32
|
-
|
|
33
|
-
## Clipboard, encoding, and data inspection
|
|
34
|
-
|
|
35
|
-
| Command | Description |
|
|
36
|
-
|---------|-------------|
|
|
37
|
-
| `b64` | Base64 encode and decode utility |
|
|
38
|
-
| `bm` | Directory bookmark manager |
|
|
39
|
-
| `cb` | Cross-platform clipboard helper |
|
|
40
|
-
| `dtags` | Inspect Docker image tags |
|
|
41
|
-
| `epoch` | Convert between human time and Unix epoch values |
|
|
42
|
-
| `extract` | Archive extraction helper |
|
|
43
|
-
| `hash` | Compute hashes for strings or files |
|
|
44
|
-
| `hashsum` | Cross-platform cryptographic hash calculator |
|
|
45
|
-
| `hex` | Hex dump and transformation helper |
|
|
46
|
-
| `jsonv` | JSON validator and formatter |
|
|
47
|
-
| `jwt` | JWT decoder and payload inspector |
|
|
48
|
-
| `regex` | Regular expression testing helper |
|
|
49
|
-
| `uuid` | UUID generation utility |
|
|
50
|
-
| `yamlv` | YAML validator |
|
|
51
|
-
|
|
52
|
-
## System, network, and session tools
|
|
53
|
-
|
|
54
|
-
| Command | Description |
|
|
55
|
-
|---------|-------------|
|
|
56
|
-
| `gd` | Git diff workflow helper |
|
|
57
|
-
| `gbd` | Git branch deletion workflow helper |
|
|
58
|
-
| `gl` | Git log workflow helper |
|
|
59
|
-
| `kill-port` | Terminate processes bound to a TCP or UDP port |
|
|
60
|
-
| `lorem` | Lorem ipsum text generator |
|
|
61
|
-
| `monitor` | System monitor and environment inspection helper |
|
|
62
|
-
| `myip` | Show public and local IP addresses |
|
|
63
|
-
| `notify` | Cross-platform desktop notification helper |
|
|
64
|
-
| `open` | Cross-platform opener for files, URLs, and paths |
|
|
65
|
-
| `pw` | Password and secret helper utility |
|
|
66
|
-
| `rec-start` | Start shell session recording |
|
|
67
|
-
| `rec-stop` | Stop shell session recording |
|
|
68
|
-
| `start-niri` | Launch a Niri compositor session |
|
|
69
|
-
| `tmux-sessionizer` | Fuzzy tmux session and project switcher |
|
|
70
|
-
| `up` | Jump up directory levels quickly |
|
|
71
|
-
| `win` | WSL bridge for launching Windows programs |
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Support Matrix
|
|
6
|
-
|
|
7
|
-
Tested platform and tool combinations for the dotfiles distribution.
|
|
8
|
-
|
|
9
|
-
## Operating Systems
|
|
10
|
-
|
|
11
|
-
| OS | Version | Architecture | Status | Notes |
|
|
12
|
-
|----|---------|-------------|--------|-------|
|
|
13
|
-
| macOS | 14+ (Sonoma) | aarch64 (Apple Silicon) | Supported | Primary dev platform |
|
|
14
|
-
| macOS | 14+ (Sonoma) | x86_64 | Supported | CI tested |
|
|
15
|
-
| Ubuntu | 22.04+ | x86_64 | Supported | CI tested |
|
|
16
|
-
| Ubuntu | 22.04+ | aarch64 | Supported | Tested manually |
|
|
17
|
-
| Debian | 12+ | x86_64 | Supported | Compatible with Ubuntu |
|
|
18
|
-
| Fedora | 39+ | x86_64 | Community | Not CI tested |
|
|
19
|
-
| Arch Linux | Rolling | x86_64 | Community | Not CI tested |
|
|
20
|
-
| WSL2 | Ubuntu 22.04+ | x86_64 | Supported | Clipboard bridge included |
|
|
21
|
-
| NixOS | 23.11+ | x86_64/aarch64 | Supported | Via Nix Flake |
|
|
22
|
-
|
|
23
|
-
## Shells
|
|
24
|
-
|
|
25
|
-
| Shell | Min Version | Status | Parity Tier | Notes |
|
|
26
|
-
|-------|-------------|--------|-------------|-------|
|
|
27
|
-
| Zsh | 5.8+ | Supported | Tier 1 (Full) | Default shell, all features |
|
|
28
|
-
| Bash | 5.0+ | Supported | Tier 1 (Full) | Shared logic core |
|
|
29
|
-
| Fish | 4.0+ | Supported | Tier 1 (Core CLI) | Native `dot`, `dm`, `da`, `dmc`, `datt`, and cached alias bridge |
|
|
30
|
-
| Nushell | 0.98+ | Supported | Tier 1 (Core CLI) | Native `d`, `dm`, `da`, `dmc`, `datt` aliases for core workflows |
|
|
31
|
-
| PowerShell | 7.5+ | Supported | Tier 1 (Core CLI) | Managed profile, `dot` wrapper, modern listing helpers, and attestation aliases |
|
|
32
|
-
|
|
33
|
-
## Terminal Emulators
|
|
34
|
-
|
|
35
|
-
| Terminal | Status | Notes |
|
|
36
|
-
|----------|--------|-------|
|
|
37
|
-
| Ghostty | Supported | Primary, custom config in `dot_config/ghostty/` |
|
|
38
|
-
| iTerm2 | Supported | macOS only; auto-installed Dynamic Profile via `run_onchange_22-iterm2-profile.sh.tmpl` (pick "dotfiles" profile in iTerm2) |
|
|
39
|
-
| Alacritty | Supported | Theme-driven, config in `dot_config/alacritty/` |
|
|
40
|
-
| Kitty | Supported | Theme-driven, config in `dot_config/kitty/` |
|
|
41
|
-
| WezTerm | Supported | Theme-driven, config in `dot_config/wezterm/` |
|
|
42
|
-
| Foot | Supported | Linux/Wayland, gated by `features.foot`, config in `dot_config/foot/` |
|
|
43
|
-
| Warp | Supported | Theme-driven, deploys to `~/.warp/themes/dotfiles.yaml`; pick "dotfiles" in Warp Settings → Appearance → Themes |
|
|
44
|
-
| Windows Terminal | Supported | WSL2 profile |
|
|
45
|
-
| tmux | Supported | Config in `dot_config/tmux/` |
|
|
46
|
-
|
|
47
|
-
## Key Tools
|
|
48
|
-
|
|
49
|
-
| Tool | Min Version | Required | Notes |
|
|
50
|
-
|------|-------------|----------|-------|
|
|
51
|
-
| chezmoi | 2.40+ | Yes | Core dotfiles manager |
|
|
52
|
-
| git | 2.35+ | Yes | Version control |
|
|
53
|
-
| curl | 7.0+ | Yes | Bootstrap installer |
|
|
54
|
-
| Neovim | 0.11.2+ | No | IDE config, lazy.nvim plugins |
|
|
55
|
-
| Starship | 1.17+ | No | Cross-shell prompt |
|
|
56
|
-
| mise | 2024.1+ | No | Tool version manager |
|
|
57
|
-
| Nix | 2.18+ | No | Reproducible environments |
|
|
58
|
-
| fzf | 0.48+ | No | Fuzzy finder |
|
|
59
|
-
| zoxide | 0.9+ | No | Smart directory jumper |
|
|
60
|
-
| atuin | 18.0+ | No | Shell history sync |
|
|
61
|
-
| pueue | 3.0+ | No | Background task manager |
|
|
62
|
-
|
|
63
|
-
## CI Environments
|
|
64
|
-
|
|
65
|
-
| Environment | Workflow | Platform | Status |
|
|
66
|
-
|------------|----------|----------|--------|
|
|
67
|
-
| GitHub Actions (Linux) | `ci.yml` | ubuntu-latest | Tested on every PR |
|
|
68
|
-
| GitHub Actions (macOS) | `ci.yml` | macos-latest | Tested on every PR |
|
|
69
|
-
| GitHub Actions (Enforced) | `ci-enforced.yml` | ubuntu-latest | Stricter checks |
|
|
70
|
-
| Devcontainer | `devcontainer-prebuild.yml` | ubuntu-latest | Pre-built images |
|
|
71
|
-
|
|
72
|
-
## Known Limitations
|
|
73
|
-
|
|
74
|
-
| Platform | Limitation | Workaround |
|
|
75
|
-
|----------|-----------|------------|
|
|
76
|
-
| WSL2 | No native clipboard | `clip.exe`/`powershell.exe` bridge aliases |
|
|
77
|
-
| NixOS | System packages conflict | Use Nix Flake exclusively |
|
|
78
|
-
| Fish < 4.0 | No keyboard protocol | Upgrade to Fish 4.x |
|
|
79
|
-
| Nushell | Complex aliases skipped | Core `dot` workflow remains first-class |
|
|
80
|
-
| macOS Intel | Homebrew path differs | Template handles `/usr/local` vs `/opt/homebrew` |
|
package/docs/reference/THEMES.md
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Themes
|
|
6
|
-
|
|
7
|
-
Themes are auto-generated from wallpapers. K-Means clustering in CIELAB color space extracts dominant colors. Every theme is WCAG AAA compliant.
|
|
8
|
-
|
|
9
|
-
There is no fixed theme catalog. The available themes depend on which wallpapers are present on your system. Run `dot theme list` to see what's discovered.
|
|
10
|
-
|
|
11
|
-
## Source of truth
|
|
12
|
-
|
|
13
|
-
Wallpapers — not `themes.toml` — are the source of truth. The system discovers wallpapers from two locations:
|
|
14
|
-
|
|
15
|
-
1. **System wallpapers** — platform-native (macOS `/System/Library/Desktop Pictures/`, Linux `/usr/share/backgrounds/`)
|
|
16
|
-
2. **Custom wallpapers** — `~/Pictures/Wallpapers/` (custom overrides system on name collision)
|
|
17
|
-
|
|
18
|
-
`extract-theme.py` runs K-Means++ in CIELAB on each wallpaper, generates a 16-color terminal palette plus UI/app mappings, and enforces WCAG AAA contrast. `rebuild-themes.sh` orchestrates discovery → parallel extraction → assembly into `.chezmoidata/themes.toml` (cached in `~/.cache/dotfiles/themes/`, regenerated only when wallpapers change).
|
|
19
|
-
|
|
20
|
-
`.chezmoidata/themes.toml` is a **generated artifact**. Do not edit it directly.
|
|
21
|
-
|
|
22
|
-
## Quick Start
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
dot theme # Interactive picker (paired wallpaper themes only)
|
|
26
|
-
dot theme tahoe-dark # Switch directly
|
|
27
|
-
dot theme toggle # Swap dark↔light within current family
|
|
28
|
-
dot theme rebuild # Regenerate from current wallpapers
|
|
29
|
-
dot theme list # Show paired themes with System/Custom source
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Runtime Apply Behavior
|
|
33
|
-
|
|
34
|
-
`dot theme` writes the selected theme to `.chezmoidata.toml`, regenerates target configs through chezmoi, then attempts live reloads for running applications.
|
|
35
|
-
|
|
36
|
-
- **macOS**:
|
|
37
|
-
- Applies system Light/Dark appearance via `osascript` (`System Events`)
|
|
38
|
-
- Applies the wallpaper's derived accent color via `defaults write -g AppleAccentColor` and `AppleHighlightColor`
|
|
39
|
-
- Forces UI refresh via `killall cfprefsd SystemUIServer Dock "System Settings"`
|
|
40
|
-
- Sets desktop wallpaper across all displays via `osascript`
|
|
41
|
-
- **Linux**:
|
|
42
|
-
- Applies desktop color scheme through `gsettings`
|
|
43
|
-
- Sets `picture-uri` and `picture-uri-dark` separately
|
|
44
|
-
- Auto-converts HEIC → PNG via `magick`/`heif-convert`/`convert`
|
|
45
|
-
- DMS (Dank Material Shell) integration when present
|
|
46
|
-
|
|
47
|
-
## Theme Naming
|
|
48
|
-
|
|
49
|
-
Themes follow the pattern `<wallpaper-name>-<dark|light>`. The wallpaper filename (lowercased, hyphenated) becomes the theme family.
|
|
50
|
-
|
|
51
|
-
Examples (depend on what's present on your system):
|
|
52
|
-
|
|
53
|
-
| Wallpaper file | Generated themes |
|
|
54
|
-
|:---|:---|
|
|
55
|
-
| `~/Pictures/Wallpapers/tahoe.heic` (dynamic HEIC, 2 frames) | `tahoe-dark`, `tahoe-light` |
|
|
56
|
-
| `/System/Library/Desktop Pictures/Sonoma.heic` | `sonoma-dark`, `sonoma-light` |
|
|
57
|
-
| `/System/Library/Desktop Pictures/.thumbnails/Monterey Dark.heic` + `Monterey Light.heic` | `monterey-dark`, `monterey-light` |
|
|
58
|
-
|
|
59
|
-
Only paired themes (with both dark and light variants) appear in `dot theme` and `dot theme list`.
|
|
60
|
-
|
|
61
|
-
## Custom Wallpapers — Dynamic HEIC
|
|
62
|
-
|
|
63
|
-
Custom wallpapers in `~/Pictures/Wallpapers/` ship as Apple-compatible dynamic HEIC files: a single `.heic` containing both light and dark images, tagged with `apple_desktop:apr` XMP metadata. macOS auto-switches the displayed image based on appearance mode.
|
|
64
|
-
|
|
65
|
-
To merge separate dark + light pairs into a single dynamic HEIC:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
bash scripts/theme/merge-wallpaper.sh # merge all pairs in ~/Pictures/Wallpapers/
|
|
69
|
-
bash scripts/theme/merge-wallpaper.sh tahoe # merge a specific family
|
|
70
|
-
bash scripts/theme/merge-wallpaper.sh --dry-run # preview only
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Generated Theme Schema
|
|
74
|
-
|
|
75
|
-
Each theme block in the generated `themes.toml` follows this schema:
|
|
76
|
-
|
|
77
|
-
```toml
|
|
78
|
-
[themes.example-dark]
|
|
79
|
-
mode = "dark" # "dark" or "light"
|
|
80
|
-
family = "example" # groups dark/light variants
|
|
81
|
-
macos_accent = 4 # derived from accent hue (0-6, -1=Graphite)
|
|
82
|
-
wallpaper = "/path/to/wallpaper.heic"
|
|
83
|
-
source = "custom" # "custom" or "system"
|
|
84
|
-
|
|
85
|
-
[themes.example-dark.term]
|
|
86
|
-
bg, fg, cursor, cursor_text, sel_bg, sel_fg
|
|
87
|
-
c0 .. c15 # 16 ANSI colors
|
|
88
|
-
|
|
89
|
-
[themes.example-dark.ui]
|
|
90
|
-
accent, accent_text # white text always 7:1 against accent
|
|
91
|
-
error, warning, success, info
|
|
92
|
-
panel, border # contrast-bound (1.03-2.0 for panel, 1.08-3.5 for border)
|
|
93
|
-
|
|
94
|
-
[themes.example-dark.app]
|
|
95
|
-
nvim, nvim_style, lualine
|
|
96
|
-
gtk_theme, gtk_icon, gnome_shell, gnome_gtk
|
|
97
|
-
vscode, vscode_dark, vscode_light
|
|
98
|
-
cat_wallpaper
|
|
99
|
-
starship_palette
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Adding a Theme
|
|
103
|
-
|
|
104
|
-
To add a new theme, add a wallpaper — there are no manual TOML edits.
|
|
105
|
-
|
|
106
|
-
1. Drop a wallpaper into `~/Pictures/Wallpapers/`
|
|
107
|
-
2. (Optional) Use `merge-wallpaper.sh` to combine separate dark/light files into a single dynamic HEIC
|
|
108
|
-
3. Run `dot theme rebuild` to regenerate `themes.toml` (parallel K-Means extraction, ~1-4s per wallpaper)
|
|
109
|
-
4. Run `dot theme <name>` to test
|
|
110
|
-
5. Verify with `chezmoi diff` before applying
|
|
111
|
-
|
|
112
|
-
For best results, wallpapers should be 6016×6016 dynamic HEIC with ~1.6× brightness ratio between dark and light variants (golden ratio). Lower-resolution images are auto-resized; non-paired wallpapers are skipped from the picker.
|
|
113
|
-
|
|
114
|
-
## See Also
|
|
115
|
-
|
|
116
|
-
- [Theming Guide](../guides/THEMING.md) — full pipeline documentation
|
|
117
|
-
- [Utilities](UTILS.md) — `dot theme` command reference
|