@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,444 +0,0 @@
|
|
|
1
|
-
/* ──────────────────────────────────────────────────────────────────────────
|
|
2
|
-
* doc.dotfiles.io — custom theme
|
|
3
|
-
* Dark + terminal-green palette on MkDocs Material.
|
|
4
|
-
* Inspired by the polish of docs.n8n.io / GitHub docs dark, adapted to
|
|
5
|
-
* Material's structure.
|
|
6
|
-
* ────────────────────────────────────────────────────────────────────── */
|
|
7
|
-
|
|
8
|
-
/* -- font stack ------------------------------------------------------------ */
|
|
9
|
-
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap");
|
|
10
|
-
|
|
11
|
-
:root {
|
|
12
|
-
--dot-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
13
|
-
"Helvetica Neue", Arial, sans-serif;
|
|
14
|
-
--dot-font-code: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono",
|
|
15
|
-
Menlo, Consolas, monospace;
|
|
16
|
-
|
|
17
|
-
--dot-green: #7ee787; /* terminal green */
|
|
18
|
-
--dot-green-bright: #b0f5b7; /* hover / focused */
|
|
19
|
-
--dot-green-dim: #4a9153; /* muted / secondary */
|
|
20
|
-
--dot-green-rgb: 126, 231, 135;
|
|
21
|
-
|
|
22
|
-
--dot-bg: #0b0e14; /* base */
|
|
23
|
-
--dot-bg-elev: #111621; /* elevated card */
|
|
24
|
-
--dot-bg-elev-2: #161b26; /* higher elevation */
|
|
25
|
-
--dot-border: #1f2937;
|
|
26
|
-
--dot-border-strong: #2b3646;
|
|
27
|
-
|
|
28
|
-
--dot-fg: #e4e7ec;
|
|
29
|
-
--dot-fg-muted: #94a3b8;
|
|
30
|
-
--dot-fg-subtle: #64748b;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/* -- global typography ----------------------------------------------------- */
|
|
34
|
-
body,
|
|
35
|
-
.md-typeset {
|
|
36
|
-
font-family: var(--dot-font-body);
|
|
37
|
-
font-feature-settings: "ss01", "cv11";
|
|
38
|
-
-webkit-font-smoothing: antialiased;
|
|
39
|
-
-moz-osx-font-smoothing: grayscale;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.md-typeset code,
|
|
43
|
-
.md-typeset kbd,
|
|
44
|
-
.md-typeset pre,
|
|
45
|
-
code {
|
|
46
|
-
font-family: var(--dot-font-code);
|
|
47
|
-
font-feature-settings: "calt", "ss20";
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/* -- dark palette override (slate) ---------------------------------------- */
|
|
51
|
-
[data-md-color-scheme="slate"] {
|
|
52
|
-
--md-hue: 210;
|
|
53
|
-
--md-default-bg-color: var(--dot-bg);
|
|
54
|
-
--md-default-fg-color: var(--dot-fg);
|
|
55
|
-
--md-default-fg-color--light: var(--dot-fg-muted);
|
|
56
|
-
--md-default-fg-color--lighter: var(--dot-fg-subtle);
|
|
57
|
-
--md-default-fg-color--lightest: hsla(210, 20%, 40%, 0.3);
|
|
58
|
-
|
|
59
|
-
--md-primary-fg-color: var(--dot-green);
|
|
60
|
-
--md-primary-fg-color--light: var(--dot-green-bright);
|
|
61
|
-
--md-primary-fg-color--dark: var(--dot-green-dim);
|
|
62
|
-
--md-primary-bg-color: var(--dot-bg);
|
|
63
|
-
--md-primary-bg-color--light: var(--dot-bg-elev);
|
|
64
|
-
|
|
65
|
-
--md-accent-fg-color: var(--dot-green-bright);
|
|
66
|
-
--md-accent-fg-color--transparent: rgba(126, 231, 135, 0.1);
|
|
67
|
-
--md-accent-bg-color: var(--dot-bg);
|
|
68
|
-
--md-accent-bg-color--light: var(--dot-bg-elev);
|
|
69
|
-
|
|
70
|
-
--md-typeset-a-color: var(--dot-green);
|
|
71
|
-
|
|
72
|
-
--md-code-bg-color: var(--dot-bg-elev-2);
|
|
73
|
-
--md-code-fg-color: var(--dot-fg);
|
|
74
|
-
--md-code-hl-color: rgba(126, 231, 135, 0.12);
|
|
75
|
-
--md-code-hl-color--light: rgba(126, 231, 135, 0.08);
|
|
76
|
-
|
|
77
|
-
/* Admonitions */
|
|
78
|
-
--md-admonition-bg-color: var(--dot-bg-elev);
|
|
79
|
-
--md-admonition-fg-color: var(--dot-fg);
|
|
80
|
-
|
|
81
|
-
/* Footer */
|
|
82
|
-
--md-footer-bg-color: #050710;
|
|
83
|
-
--md-footer-bg-color--dark: #030509;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/* -- header --------------------------------------------------------------- */
|
|
87
|
-
.md-header {
|
|
88
|
-
background-color: rgba(11, 14, 20, 0.92);
|
|
89
|
-
backdrop-filter: saturate(180%) blur(12px);
|
|
90
|
-
-webkit-backdrop-filter: saturate(180%) blur(12px);
|
|
91
|
-
border-bottom: 1px solid var(--dot-border);
|
|
92
|
-
box-shadow: none;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.md-header[data-md-state="shadow"] {
|
|
96
|
-
box-shadow: 0 1px 0 var(--dot-border);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.md-header__title {
|
|
100
|
-
font-weight: 600;
|
|
101
|
-
letter-spacing: -0.01em;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.md-header__button.md-logo :is(img, svg) {
|
|
105
|
-
color: var(--dot-green);
|
|
106
|
-
fill: var(--dot-green);
|
|
107
|
-
height: 1.6rem;
|
|
108
|
-
width: 1.6rem;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/* -- tabs --------------------------------------------------------------- */
|
|
112
|
-
.md-tabs {
|
|
113
|
-
background-color: rgba(11, 14, 20, 0.85);
|
|
114
|
-
border-bottom: 1px solid var(--dot-border);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
.md-tabs__link {
|
|
118
|
-
color: var(--dot-fg-muted);
|
|
119
|
-
opacity: 1;
|
|
120
|
-
font-size: 0.75rem;
|
|
121
|
-
font-weight: 500;
|
|
122
|
-
transition: color 120ms ease;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.md-tabs__link:hover,
|
|
126
|
-
.md-tabs__link--active {
|
|
127
|
-
color: var(--dot-green-bright);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
.md-tabs__link--active {
|
|
131
|
-
position: relative;
|
|
132
|
-
}
|
|
133
|
-
.md-tabs__link--active::after {
|
|
134
|
-
content: "";
|
|
135
|
-
position: absolute;
|
|
136
|
-
left: 0;
|
|
137
|
-
right: 0;
|
|
138
|
-
bottom: -2px;
|
|
139
|
-
height: 2px;
|
|
140
|
-
background: linear-gradient(90deg, transparent, var(--dot-green), transparent);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/* -- sidebar (left nav) --------------------------------------------------- */
|
|
144
|
-
.md-nav__title {
|
|
145
|
-
font-size: 0.68rem;
|
|
146
|
-
font-weight: 700;
|
|
147
|
-
text-transform: uppercase;
|
|
148
|
-
letter-spacing: 0.05em;
|
|
149
|
-
color: var(--dot-fg-subtle);
|
|
150
|
-
padding-top: 1.2rem;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
.md-nav__link {
|
|
154
|
-
color: var(--dot-fg-muted);
|
|
155
|
-
transition: color 120ms ease, background-color 120ms ease;
|
|
156
|
-
border-radius: 6px;
|
|
157
|
-
padding: 4px 8px;
|
|
158
|
-
margin: 1px 0;
|
|
159
|
-
}
|
|
160
|
-
.md-nav__link:hover {
|
|
161
|
-
color: var(--dot-fg);
|
|
162
|
-
background: rgba(126, 231, 135, 0.06);
|
|
163
|
-
}
|
|
164
|
-
.md-nav__link--active,
|
|
165
|
-
.md-nav__link.md-nav__link--active {
|
|
166
|
-
color: var(--dot-green-bright);
|
|
167
|
-
background: rgba(126, 231, 135, 0.1);
|
|
168
|
-
font-weight: 500;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/* -- right TOC ------------------------------------------------------------ */
|
|
172
|
-
.md-nav--secondary .md-nav__title {
|
|
173
|
-
border-left: 2px solid var(--dot-border);
|
|
174
|
-
background: transparent;
|
|
175
|
-
}
|
|
176
|
-
.md-nav--secondary .md-nav__link--active {
|
|
177
|
-
border-left: 2px solid var(--dot-green);
|
|
178
|
-
color: var(--dot-green-bright);
|
|
179
|
-
background: transparent;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/* -- content -------------------------------------------------------------- */
|
|
183
|
-
.md-typeset h1,
|
|
184
|
-
.md-typeset h2,
|
|
185
|
-
.md-typeset h3,
|
|
186
|
-
.md-typeset h4 {
|
|
187
|
-
font-family: var(--dot-font-body);
|
|
188
|
-
letter-spacing: -0.02em;
|
|
189
|
-
color: var(--dot-fg);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
.md-typeset h1 {
|
|
193
|
-
font-weight: 700;
|
|
194
|
-
font-size: 2.2rem;
|
|
195
|
-
line-height: 1.15;
|
|
196
|
-
margin-bottom: 0.6em;
|
|
197
|
-
background: linear-gradient(180deg, #ffffff 0%, #cbd5e1 100%);
|
|
198
|
-
-webkit-background-clip: text;
|
|
199
|
-
background-clip: text;
|
|
200
|
-
color: transparent;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
.md-typeset h2 {
|
|
204
|
-
font-weight: 600;
|
|
205
|
-
font-size: 1.6rem;
|
|
206
|
-
margin-top: 2.4em;
|
|
207
|
-
padding-top: 0.4em;
|
|
208
|
-
border-top: 1px solid var(--dot-border);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
.md-typeset h3 {
|
|
212
|
-
font-weight: 600;
|
|
213
|
-
font-size: 1.2rem;
|
|
214
|
-
color: var(--dot-green-bright);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
.md-typeset a {
|
|
218
|
-
text-decoration: none;
|
|
219
|
-
border-bottom: 1px solid transparent;
|
|
220
|
-
transition: border-color 120ms ease, color 120ms ease;
|
|
221
|
-
}
|
|
222
|
-
.md-typeset a:hover {
|
|
223
|
-
border-bottom-color: var(--dot-green-bright);
|
|
224
|
-
color: var(--dot-green-bright);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/* -- code blocks ---------------------------------------------------------- */
|
|
228
|
-
.md-typeset pre > code,
|
|
229
|
-
.md-typeset .highlight pre {
|
|
230
|
-
background-color: var(--dot-bg-elev-2);
|
|
231
|
-
border: 1px solid var(--dot-border);
|
|
232
|
-
border-radius: 8px;
|
|
233
|
-
}
|
|
234
|
-
.md-typeset code {
|
|
235
|
-
background-color: rgba(126, 231, 135, 0.08);
|
|
236
|
-
border: 1px solid rgba(126, 231, 135, 0.15);
|
|
237
|
-
color: var(--dot-green-bright);
|
|
238
|
-
border-radius: 4px;
|
|
239
|
-
padding: 0.1em 0.35em;
|
|
240
|
-
font-size: 0.88em;
|
|
241
|
-
}
|
|
242
|
-
.md-typeset pre > code {
|
|
243
|
-
background: transparent;
|
|
244
|
-
border: none;
|
|
245
|
-
color: var(--dot-fg);
|
|
246
|
-
padding: 0;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/* -- tables --------------------------------------------------------------- */
|
|
250
|
-
.md-typeset table:not([class]) {
|
|
251
|
-
border: 1px solid var(--dot-border);
|
|
252
|
-
border-radius: 8px;
|
|
253
|
-
overflow: hidden;
|
|
254
|
-
font-size: 0.8rem;
|
|
255
|
-
}
|
|
256
|
-
.md-typeset table:not([class]) th {
|
|
257
|
-
background: var(--dot-bg-elev);
|
|
258
|
-
color: var(--dot-fg);
|
|
259
|
-
font-weight: 600;
|
|
260
|
-
border-bottom: 1px solid var(--dot-border-strong);
|
|
261
|
-
}
|
|
262
|
-
.md-typeset table:not([class]) tr:hover {
|
|
263
|
-
background: rgba(126, 231, 135, 0.03);
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/* -- admonitions ---------------------------------------------------------- */
|
|
267
|
-
.md-typeset .admonition,
|
|
268
|
-
.md-typeset details {
|
|
269
|
-
background: var(--dot-bg-elev);
|
|
270
|
-
border: 1px solid var(--dot-border);
|
|
271
|
-
border-left: 3px solid var(--dot-green);
|
|
272
|
-
border-radius: 8px;
|
|
273
|
-
box-shadow: none;
|
|
274
|
-
}
|
|
275
|
-
.md-typeset .admonition-title,
|
|
276
|
-
.md-typeset summary {
|
|
277
|
-
background: transparent;
|
|
278
|
-
border-bottom: 1px solid var(--dot-border);
|
|
279
|
-
font-weight: 600;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/* -- grid cards ----------------------------------------------------------- */
|
|
283
|
-
.md-typeset .grid.cards > :is(ul, ol) > li,
|
|
284
|
-
.md-typeset .grid.cards > .card {
|
|
285
|
-
background: var(--dot-bg-elev);
|
|
286
|
-
border: 1px solid var(--dot-border);
|
|
287
|
-
border-radius: 12px;
|
|
288
|
-
padding: 1.2rem;
|
|
289
|
-
transition: transform 180ms ease, border-color 180ms ease,
|
|
290
|
-
box-shadow 180ms ease, background 180ms ease;
|
|
291
|
-
position: relative;
|
|
292
|
-
overflow: hidden;
|
|
293
|
-
}
|
|
294
|
-
.md-typeset .grid.cards > :is(ul, ol) > li::before {
|
|
295
|
-
content: "";
|
|
296
|
-
position: absolute;
|
|
297
|
-
inset: 0;
|
|
298
|
-
background: radial-gradient(
|
|
299
|
-
circle at top left,
|
|
300
|
-
rgba(126, 231, 135, 0.06),
|
|
301
|
-
transparent 60%
|
|
302
|
-
);
|
|
303
|
-
opacity: 0;
|
|
304
|
-
transition: opacity 220ms ease;
|
|
305
|
-
pointer-events: none;
|
|
306
|
-
}
|
|
307
|
-
.md-typeset .grid.cards > :is(ul, ol) > li:hover {
|
|
308
|
-
transform: translateY(-2px);
|
|
309
|
-
border-color: rgba(126, 231, 135, 0.35);
|
|
310
|
-
background: var(--dot-bg-elev-2);
|
|
311
|
-
box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.5),
|
|
312
|
-
0 0 0 1px rgba(126, 231, 135, 0.08) inset;
|
|
313
|
-
}
|
|
314
|
-
.md-typeset .grid.cards > :is(ul, ol) > li:hover::before {
|
|
315
|
-
opacity: 1;
|
|
316
|
-
}
|
|
317
|
-
.md-typeset .grid.cards > :is(ul, ol) > li > :first-child {
|
|
318
|
-
margin-top: 0;
|
|
319
|
-
}
|
|
320
|
-
.md-typeset .grid.cards > :is(ul, ol) > li strong {
|
|
321
|
-
color: var(--dot-green-bright);
|
|
322
|
-
font-weight: 600;
|
|
323
|
-
font-size: 1rem;
|
|
324
|
-
display: block;
|
|
325
|
-
margin-bottom: 0.4rem;
|
|
326
|
-
}
|
|
327
|
-
.md-typeset .grid.cards > :is(ul, ol) > li .twemoji,
|
|
328
|
-
.md-typeset .grid.cards > :is(ul, ol) > li svg {
|
|
329
|
-
color: var(--dot-green);
|
|
330
|
-
fill: var(--dot-green);
|
|
331
|
-
height: 1.4rem;
|
|
332
|
-
width: 1.4rem;
|
|
333
|
-
margin-bottom: 0.6rem;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
/* -- hero banner (used by landing page) ----------------------------------- */
|
|
337
|
-
.dot-hero {
|
|
338
|
-
padding: 3rem 0 2.4rem;
|
|
339
|
-
margin: -1.6rem -0.8rem 2.4rem;
|
|
340
|
-
text-align: center;
|
|
341
|
-
border-bottom: 1px solid var(--dot-border);
|
|
342
|
-
position: relative;
|
|
343
|
-
background: radial-gradient(
|
|
344
|
-
ellipse 60% 100% at 50% 0%,
|
|
345
|
-
rgba(126, 231, 135, 0.08),
|
|
346
|
-
transparent 70%
|
|
347
|
-
);
|
|
348
|
-
}
|
|
349
|
-
.dot-hero h1 {
|
|
350
|
-
font-size: 3rem;
|
|
351
|
-
line-height: 1.05;
|
|
352
|
-
margin-bottom: 0.4em;
|
|
353
|
-
padding: 0;
|
|
354
|
-
border: none;
|
|
355
|
-
}
|
|
356
|
-
.dot-hero .tagline {
|
|
357
|
-
font-size: 1.1rem;
|
|
358
|
-
color: var(--dot-fg-muted);
|
|
359
|
-
max-width: 40rem;
|
|
360
|
-
margin: 0 auto 1.4rem;
|
|
361
|
-
}
|
|
362
|
-
.dot-hero .buttons {
|
|
363
|
-
display: flex;
|
|
364
|
-
gap: 0.6rem;
|
|
365
|
-
justify-content: center;
|
|
366
|
-
flex-wrap: wrap;
|
|
367
|
-
}
|
|
368
|
-
.dot-hero .buttons a {
|
|
369
|
-
display: inline-flex;
|
|
370
|
-
align-items: center;
|
|
371
|
-
gap: 0.4rem;
|
|
372
|
-
padding: 0.6rem 1.1rem;
|
|
373
|
-
border-radius: 8px;
|
|
374
|
-
font-weight: 500;
|
|
375
|
-
font-size: 0.9rem;
|
|
376
|
-
text-decoration: none;
|
|
377
|
-
border: 1px solid var(--dot-border-strong);
|
|
378
|
-
color: var(--dot-fg);
|
|
379
|
-
transition: all 160ms ease;
|
|
380
|
-
}
|
|
381
|
-
.dot-hero .buttons a.primary {
|
|
382
|
-
background: var(--dot-green);
|
|
383
|
-
color: var(--dot-bg);
|
|
384
|
-
border-color: var(--dot-green);
|
|
385
|
-
font-weight: 600;
|
|
386
|
-
}
|
|
387
|
-
.dot-hero .buttons a.primary:hover {
|
|
388
|
-
background: var(--dot-green-bright);
|
|
389
|
-
border-color: var(--dot-green-bright);
|
|
390
|
-
transform: translateY(-1px);
|
|
391
|
-
}
|
|
392
|
-
.dot-hero .buttons a:not(.primary):hover {
|
|
393
|
-
border-color: var(--dot-green);
|
|
394
|
-
color: var(--dot-green-bright);
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
/* -- search --------------------------------------------------------------- */
|
|
398
|
-
.md-search__form {
|
|
399
|
-
background: var(--dot-bg-elev);
|
|
400
|
-
border: 1px solid var(--dot-border);
|
|
401
|
-
border-radius: 8px;
|
|
402
|
-
}
|
|
403
|
-
.md-search__form:hover,
|
|
404
|
-
.md-search__input:focus + .md-search__icon,
|
|
405
|
-
.md-search__form:focus-within {
|
|
406
|
-
border-color: var(--dot-green);
|
|
407
|
-
background: var(--dot-bg-elev-2);
|
|
408
|
-
}
|
|
409
|
-
.md-search__input {
|
|
410
|
-
color: var(--dot-fg);
|
|
411
|
-
}
|
|
412
|
-
.md-search__input::placeholder {
|
|
413
|
-
color: var(--dot-fg-subtle);
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
/* -- footer --------------------------------------------------------------- */
|
|
417
|
-
.md-footer {
|
|
418
|
-
border-top: 1px solid var(--dot-border);
|
|
419
|
-
}
|
|
420
|
-
.md-footer-meta {
|
|
421
|
-
background: var(--dot-bg);
|
|
422
|
-
border-top: 1px solid var(--dot-border);
|
|
423
|
-
}
|
|
424
|
-
.md-copyright {
|
|
425
|
-
color: var(--dot-fg-subtle);
|
|
426
|
-
font-size: 0.72rem;
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
/* -- scrollbar (webkit) --------------------------------------------------- */
|
|
430
|
-
::-webkit-scrollbar {
|
|
431
|
-
width: 10px;
|
|
432
|
-
height: 10px;
|
|
433
|
-
}
|
|
434
|
-
::-webkit-scrollbar-track {
|
|
435
|
-
background: transparent;
|
|
436
|
-
}
|
|
437
|
-
::-webkit-scrollbar-thumb {
|
|
438
|
-
background: var(--dot-border-strong);
|
|
439
|
-
border-radius: 8px;
|
|
440
|
-
border: 2px solid var(--dot-bg);
|
|
441
|
-
}
|
|
442
|
-
::-webkit-scrollbar-thumb:hover {
|
|
443
|
-
background: var(--dot-green-dim);
|
|
444
|
-
}
|
package/docs/themes/README.md
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Theme Gallery
|
|
6
|
-
|
|
7
|
-
Themes are auto-generated from your wallpapers — the available set depends on what's present on your system. Run `dot theme list` to see what's discovered.
|
|
8
|
-
|
|
9
|
-
See [Theme Reference](../reference/THEMES.md) for the wallpaper-driven engine.
|
|
10
|
-
See [Theming Guide](../guides/THEMING.md) for setup, switching, and the K-Means CIELAB pipeline.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Visual Integrity Report
|
|
6
|
-
|
|
7
|
-
Generated: 2026-04-08
|
|
8
|
-
Scope: terminal theme SSOT, shell first-paint path, font rendering, and cross-platform template intent.
|
|
9
|
-
|
|
10
|
-
| Metric | Current | Target | Status |
|
|
11
|
-
| :--- | :--- | :--- | :--- |
|
|
12
|
-
| Contrast (APCA) | `macos-monterey-dark` body text `Lc 90+`, critical UI `Lc 95+` | `Lc 75+` body, `Lc 90+` critical | Pass |
|
|
13
|
-
| Startup Time | `bash 25ms`, `zsh 35ms`, `fish 25ms` | `< 100ms` | Pass |
|
|
14
|
-
| Color DeltaE | SSOT palette unified across Ghostty/Kitty/Alacritty/WezTerm; no runtime probe yet | `< 2.0` | Needs instrumentation |
|
|
15
|
-
|
|
16
|
-
## Findings
|
|
17
|
-
|
|
18
|
-
- Theme colors are already centralized in `.chezmoidata/themes.toml`, but accessibility intent was implicit. The active theme now carries explicit OKLCH/APCA metadata.
|
|
19
|
-
- First-prompt Fish initialization still performed live CLI work when cache artifacts were present. The prompt path now sources prewarmed cache files first and only regenerates on cache miss.
|
|
20
|
-
- Terminal templates were palette-consistent, but rendering policy was inconsistent. macOS now prefers Display P3 and CoreText-friendly metrics; Linux/Wayland templates prefer more conservative opacity and FreeType-safe fallbacks.
|
|
21
|
-
|
|
22
|
-
## Edge Cases
|
|
23
|
-
|
|
24
|
-
- Wayland fontconfig now sets `rgba` declaratively from feature flags to avoid color fringing on mixed-density Linux panels.
|
|
25
|
-
- Ghostty, Kitty, Alacritty, and WezTerm now share the same terminal ramp while allowing platform-specific font fallback and window-compositor behavior.
|
|
26
|
-
- WSL parity is still template-capable, but DeltaE validation is not yet automated against Windows Terminal serialization.
|
|
27
|
-
|
|
28
|
-
## Next Step
|
|
29
|
-
|
|
30
|
-
Implement a small palette audit utility that computes APCA and DeltaE from `.chezmoidata/themes.toml` so the report can become test-backed rather than declarative.
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
<svg width="800" height="450" viewBox="0 0 800 450" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<!-- Background Shadow -->
|
|
3
|
-
<rect x="10" y="10" width="780" height="430" rx="12" fill="rgba(0,0,0,0.3)" filter="blur(10px)" />
|
|
4
|
-
|
|
5
|
-
<!-- Terminal Window -->
|
|
6
|
-
<rect x="20" y="20" width="760" height="410" rx="10" fill="#1e1e2e" stroke="#313244" stroke-width="1" />
|
|
7
|
-
|
|
8
|
-
<!-- Window Title Bar -->
|
|
9
|
-
<path d="M20 30 a10 10 0 0 1 10 -10 h740 a10 10 0 0 1 10 10 v20 h-760 z" fill="#181825" />
|
|
10
|
-
|
|
11
|
-
<!-- macOS Buttons -->
|
|
12
|
-
<circle cx="40" cy="35" r="6" fill="#f38ba8" />
|
|
13
|
-
<circle cx="60" cy="35" r="6" fill="#fab387" />
|
|
14
|
-
<circle cx="80" cy="35" r="6" fill="#a6e3a1" />
|
|
15
|
-
|
|
16
|
-
<!-- Title -->
|
|
17
|
-
<text x="400" y="38" font-family="JetBrains Mono, monospace" font-size="12" fill="#bac2de" text-anchor="middle">~/.dotfiles — zsh</text>
|
|
18
|
-
|
|
19
|
-
<!-- Mock Terminal Content -->
|
|
20
|
-
<g font-family="JetBrains Mono, monospace" font-size="13">
|
|
21
|
-
<!-- Prompt + command -->
|
|
22
|
-
<text x="40" y="75" fill="#a6e3a1">➤</text>
|
|
23
|
-
<text x="60" y="75" fill="#cdd6f4">dot doctor</text>
|
|
24
|
-
|
|
25
|
-
<!-- Section: Dotfiles Core -->
|
|
26
|
-
<text x="40" y="105" fill="#89b4fa" font-weight="bold">Dotfiles Core</text>
|
|
27
|
-
<text x="40" y="125" fill="#a6e3a1"> ✓ chezmoi</text>
|
|
28
|
-
<text x="220" y="125" fill="#585b70">2.47.1 (mise)</text>
|
|
29
|
-
<text x="40" y="145" fill="#a6e3a1"> ✓ git</text>
|
|
30
|
-
<text x="220" y="145" fill="#585b70">2.49.0 (system)</text>
|
|
31
|
-
<text x="40" y="165" fill="#a6e3a1"> ✓ age encryption</text>
|
|
32
|
-
<text x="220" y="165" fill="#585b70">key present</text>
|
|
33
|
-
|
|
34
|
-
<!-- Section: Shell Environment -->
|
|
35
|
-
<text x="40" y="195" fill="#89b4fa" font-weight="bold">Shell Environment</text>
|
|
36
|
-
<text x="40" y="215" fill="#a6e3a1"> ✓ zsh</text>
|
|
37
|
-
<text x="220" y="215" fill="#585b70">5.9.0 (system)</text>
|
|
38
|
-
<text x="40" y="235" fill="#a6e3a1"> ✓ starship</text>
|
|
39
|
-
<text x="220" y="235" fill="#585b70">1.22.1 (mise)</text>
|
|
40
|
-
<text x="40" y="255" fill="#a6e3a1"> ✓ zoxide</text>
|
|
41
|
-
<text x="220" y="255" fill="#585b70">0.9.7 (mise)</text>
|
|
42
|
-
|
|
43
|
-
<!-- Section: CLI Tools -->
|
|
44
|
-
<text x="420" y="105" fill="#89b4fa" font-weight="bold">CLI Tools</text>
|
|
45
|
-
<text x="420" y="125" fill="#a6e3a1"> ✓ rg (ripgrep)</text>
|
|
46
|
-
<text x="600" y="125" fill="#585b70">14.1.1</text>
|
|
47
|
-
<text x="420" y="145" fill="#a6e3a1"> ✓ bat</text>
|
|
48
|
-
<text x="600" y="145" fill="#585b70">0.25.0</text>
|
|
49
|
-
<text x="420" y="165" fill="#a6e3a1"> ✓ fzf</text>
|
|
50
|
-
<text x="600" y="165" fill="#585b70">0.60.3</text>
|
|
51
|
-
|
|
52
|
-
<!-- Section: Security -->
|
|
53
|
-
<text x="420" y="195" fill="#89b4fa" font-weight="bold">Security</text>
|
|
54
|
-
<text x="420" y="215" fill="#a6e3a1"> ✓ SSH keys</text>
|
|
55
|
-
<text x="600" y="215" fill="#585b70">ed25519</text>
|
|
56
|
-
<text x="420" y="235" fill="#a6e3a1"> ✓ GPG signing</text>
|
|
57
|
-
<text x="600" y="235" fill="#585b70">configured</text>
|
|
58
|
-
<text x="420" y="255" fill="#a6e3a1"> ✓ secrets (age)</text>
|
|
59
|
-
<text x="600" y="255" fill="#585b70">encrypted</text>
|
|
60
|
-
|
|
61
|
-
<!-- Performance line -->
|
|
62
|
-
<text x="40" y="290" fill="#89b4fa" font-weight="bold">Performance</text>
|
|
63
|
-
<text x="40" y="310" fill="#a6e3a1"> ✓ zsh startup</text>
|
|
64
|
-
<text x="220" y="310" fill="#585b70">12ms</text>
|
|
65
|
-
|
|
66
|
-
<!-- Score -->
|
|
67
|
-
<text x="40" y="350" fill="#a6e3a1" font-weight="bold">Score: 95/100 — Excellent</text>
|
|
68
|
-
<text x="40" y="370" fill="#585b70">18 passed, 0 errors, 1 warning</text>
|
|
69
|
-
|
|
70
|
-
<!-- New prompt -->
|
|
71
|
-
<text x="40" y="405" fill="#a6e3a1">➤</text>
|
|
72
|
-
<text x="60" y="405" fill="#cdd6f4">~/.dotfiles</text>
|
|
73
|
-
<text x="170" y="405" fill="#f5c2e7">on main</text>
|
|
74
|
-
<rect x="275" y="393" width="8" height="16" fill="#cdd6f4">
|
|
75
|
-
<animate attributeName="opacity" values="1;0;1" dur="1s" repeatCount="indefinite" />
|
|
76
|
-
</rect>
|
|
77
|
-
</g>
|
|
78
|
-
</svg>
|
package/scripts/README.md
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
# `scripts/` — Framework Code
|
|
2
|
-
|
|
3
|
-
Everything in this directory is **framework code**. Nothing here
|
|
4
|
-
deploys to `~/`; chezmoi ignores the whole tree (see
|
|
5
|
-
`.chezmoiignore`). Scripts are invoked by the `dot` CLI, by CI
|
|
6
|
-
workflows, by `chezmoi apply` hooks, or by hand.
|
|
7
|
-
|
|
8
|
-
## Subtree map
|
|
9
|
-
|
|
10
|
-
Per the repository reorg (RFC `docs/operations/RFC_v0_2_503_reorganization.md`),
|
|
11
|
-
**repo-only ops** (CI, release, maintenance, docs-generation) have
|
|
12
|
-
moved to the top-level `tools/` tree. `scripts/` retains the
|
|
13
|
-
**runtime-invoked** scripts that the `dot` CLI dispatches to plus a
|
|
14
|
-
few specialised subtrees.
|
|
15
|
-
|
|
16
|
-
### `scripts/` (CLI dispatch + specialised subtrees)
|
|
17
|
-
|
|
18
|
-
| Path | Purpose | Touched by |
|
|
19
|
-
|---|---|---|
|
|
20
|
-
| `scripts/dot/commands/` | Per-subcommand handlers for the `dot` CLI. Sources `lib/dot/*.sh` (moved out of this tree in the Phase 1 reorg). | Dispatched by `bin/dot` |
|
|
21
|
-
| `scripts/dot/powershell/` | Native PowerShell module (`Dot.psm1`) exporting `Get-DotVersion` / `Invoke-DotHelp` / `Test-DotAgentsSync`. | `bin/dot.ps1` |
|
|
22
|
-
| `scripts/dot/data/` | Per-command static data (registry seeds, palette tables). | `scripts/dot/commands/*` |
|
|
23
|
-
| `scripts/lib/` | Cross-cutting library helpers reused across multiple scripts. Example: `secrets_provider.sh` (keychain / pass / age dispatch). | `scripts/dot/commands/*`, ops scripts |
|
|
24
|
-
| `scripts/diagnostics/` | `doctor.sh` and its helpers — long-form environment health check. | `dot doctor` |
|
|
25
|
-
| `scripts/security/` | Security-domain ops: `check-disclosure-key-expiry.sh`, `lock-configs.sh`, etc. | `dot security`, CI |
|
|
26
|
-
| `scripts/secrets/` | Secret-bucket utilities (rotation, audit). | `dot secrets` subcommands |
|
|
27
|
-
| `scripts/theme/` | Wallpaper-to-palette extraction logic. | `dot theme rebuild` |
|
|
28
|
-
| `scripts/tools/` | Tool-helpers shipped via `dot tools` (e.g. `cmatrix.sh`, `emoji-picker.sh`, `figlet-banner.sh`, `log-rotate.sh`). Runtime-invoked. | `dot tools`, `dot env` |
|
|
29
|
-
| `scripts/tuning/` | Opt-in OS tuning scripts (`macos.sh`, `linux.sh`). | `dot tune`, manual invocation |
|
|
30
|
-
| `scripts/ops/` | Repo-wide ops: `rollback.sh`, etc. | `dot rollback`, maintenance |
|
|
31
|
-
| `scripts/fonts/` | Nerd Font install helpers. | `dot fonts` |
|
|
32
|
-
| `scripts/git-hooks/` | Git hooks not managed by chezmoi (kept here for portable install). | `install/provision/*` |
|
|
33
|
-
| `scripts/qa/` | Quality-assurance helpers (PowerShell contract tests, version-consistency checks, scorecard snapshot, etc). | `.github/workflows/pr-signature.yml`, `powershell-contract.yml`, doc-drift |
|
|
34
|
-
| `scripts/demo/` | Demonstration helpers (recordings, screenshots). | Manual |
|
|
35
|
-
| `scripts/version-sync.sh` | Bulk version-string propagator (`scripts/qa/check-version-consistency.sh` is the verifier). | Release flow |
|
|
36
|
-
| `scripts/uninstall.sh` | Reverse-of-`install.sh` — user-invoked. | Manual |
|
|
37
|
-
|
|
38
|
-
### `tools/` (repo-only ops, not distributable)
|
|
39
|
-
|
|
40
|
-
| Path | Purpose | Touched by |
|
|
41
|
-
|---|---|---|
|
|
42
|
-
| `tools/ci/` | CI-only helpers: `dot-cli-startup-bench.sh`, `install-chezmoi-verified.sh`, `windows-smoke-test.ps1`, `run-coverage.sh`, etc. | `.github/workflows/*` |
|
|
43
|
-
| `tools/release/` | Release-time tasks. | Release workflow |
|
|
44
|
-
| `tools/maintenance/` | Recurring upkeep: `check-updates.sh`, etc. | Cron, manual |
|
|
45
|
-
| `tools/docs/` | Documentation-generation helpers (manual builds, screenshot CI, `generate-command-index.sh`). | `manual-publish.yml`, `dot manual`, doc-drift |
|
|
46
|
-
|
|
47
|
-
## `scripts/dot/` breakdown
|
|
48
|
-
|
|
49
|
-
The `dot` CLI is implemented as `bin/dot`
|
|
50
|
-
(dispatcher) + `scripts/dot/commands/<cmd>.sh` (per-command
|
|
51
|
-
handlers) + `lib/dot/*.sh` (shared helpers — moved out of
|
|
52
|
-
`scripts/dot/lib/` in the Phase 1 reorg per the
|
|
53
|
-
[reorganisation RFC](../docs/operations/RFC_v0_2_503_reorganization.md)).
|
|
54
|
-
|
|
55
|
-
| Path | Purpose |
|
|
56
|
-
|---|---|
|
|
57
|
-
| `scripts/dot/commands/` | One file per `dot <cmd>` subcommand. Each defines a `cmd_<name>()` function the dispatcher calls. Sources the library via `$SCRIPT_DIR/../../../lib/dot/<X>.sh`. |
|
|
58
|
-
| `scripts/dot/powershell/` | Native PowerShell module — see top-level table. |
|
|
59
|
-
| **`lib/dot/utils.sh`** | Common helpers (resolve_source_dir, validate_name, die, run_script, etc.). |
|
|
60
|
-
| **`lib/dot/ui.sh`** | Single source of truth for CLI output (ui_ok/warn/err/info, ui_header, ui_table_*, ui_spinner_*, ui_confirm, ...). |
|
|
61
|
-
| **`lib/dot/platform.sh`** | OS / shell / WSL detection, path translation. |
|
|
62
|
-
| **`lib/dot/log.sh`** | Structured logging (JSONL audit log when `DOTFILES_AUDIT_LOG=1`). |
|
|
63
|
-
| **`lib/dot/bento.sh`** | The "bento box" layout primitive used by `dot health` and friends. |
|
|
64
|
-
|
|
65
|
-
## Adding a new subcommand
|
|
66
|
-
|
|
67
|
-
1. Create `scripts/dot/commands/<name>.sh`:
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
#!/usr/bin/env bash
|
|
71
|
-
# Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
72
|
-
set -euo pipefail
|
|
73
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
74
|
-
# shellcheck source=../lib/utils.sh
|
|
75
|
-
source "$SCRIPT_DIR/../lib/utils.sh"
|
|
76
|
-
|
|
77
|
-
dot_ui_command_banner "<Title>" "${1:-}"
|
|
78
|
-
|
|
79
|
-
cmd_<name>() {
|
|
80
|
-
# ...
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
cmd_<name>_help() {
|
|
84
|
-
cat <<-EOF
|
|
85
|
-
Usage: dot <name> [args]
|
|
86
|
-
# ...
|
|
87
|
-
EOF
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
2. Add a dispatch arm in `bin/dot`:
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
<name>) load_commands "<name>"; cmd_<name> "$@" ;;
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
3. Document it in `docs/manual/03-reference/01-dot-cli.md` and add
|
|
98
|
-
to `docs/manual/command-index.md`.
|
|
99
|
-
|
|
100
|
-
4. Add a help-table entry in `bin/dot`'s
|
|
101
|
-
help renderer.
|
|
102
|
-
|
|
103
|
-
5. Add a unit test under `tests/unit/<domain>/test_<name>.sh`
|
|
104
|
-
(run with `./tests/framework/test_runner.sh`).
|
|
105
|
-
|
|
106
|
-
## Conventions
|
|
107
|
-
|
|
108
|
-
- **Shell style**: 2-space indent, `set -euo pipefail`, shellcheck-clean
|
|
109
|
-
with the project's flags (`--severity=error -e SC1091 -e SC2030 -e SC2031`).
|
|
110
|
-
- **Formatting**: `shfmt -i 2 -ci`.
|
|
111
|
-
- **Output**: NEVER `printf` raw ANSI. Source `scripts/dot/lib/ui.sh`
|
|
112
|
-
and use `ui_ok`, `ui_table_*`, etc.
|
|
113
|
-
- **Exit codes**: 1 = bad usage, 2 = no provider / dependency missing,
|
|
114
|
-
3 = empty result / not found, ≥4 = provider-specific. Document
|
|
115
|
-
per-command in the help text.
|
|
116
|
-
- **Validation**: Always `validate_name "$arg" "tool name"` before
|
|
117
|
-
passing user input to `mise`, `gh`, `ssh`, etc.
|
|
118
|
-
|
|
119
|
-
## See also
|
|
120
|
-
|
|
121
|
-
- `../docs/STRUCTURE.md` — full repository map.
|
|
122
|
-
- `docs/manual/03-reference/01-dot-cli.md` — every `dot <cmd>` documented.
|
|
123
|
-
- `scripts/dot/lib/ui.sh` — the UI primitive library (always source this for output).
|