@sebastienrousseau/dotfiles 0.2.481 → 0.2.500
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 +122 -32
- package/LICENSE +1 -1
- package/README.md +211 -242
- package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
- package/docs/AI.md +102 -0
- package/docs/COPYRIGHT +2 -2
- package/docs/NAMING_CONVENTIONS.md +95 -0
- package/docs/README.md +58 -249
- package/docs/adr/ADR-004-cli-architecture.md +2 -2
- package/docs/adr/ADR-006-shell-selection.md +2 -2
- package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
- package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
- package/docs/adr/README.md +2 -3
- package/docs/architecture/ARCHITECTURE.md +113 -0
- package/docs/architecture/INTEROP.md +36 -0
- package/docs/architecture/REPO_LAYOUT.md +237 -0
- package/docs/architecture/WALKTHROUGH.md +82 -0
- package/docs/architecture/fleet-deployment.md +73 -0
- package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
- package/docs/archive/MILESTONE_v0.2.493.md +43 -0
- package/docs/{PLAN.md → archive/PLAN.md} +1 -1
- package/docs/guides/INSTALL.md +140 -0
- package/docs/{NEOVIM_IDE_GUIDE.md → guides/NEOVIM_IDE_GUIDE.md} +12 -12
- package/docs/guides/THEMING.md +222 -0
- package/docs/{TROUBLESHOOTING.md → guides/TROUBLESHOOTING.md} +36 -0
- package/docs/{WSL2_NIX_TROUBLESHOOTING.md → guides/WSL2_NIX_TROUBLESHOOTING.md} +8 -8
- package/docs/index.md +39 -0
- package/docs/interop/A2A.md +32 -0
- package/docs/manual/00-introduction.md +85 -0
- package/docs/manual/01-concepts/01-architecture.md +134 -0
- package/docs/manual/01-concepts/02-trust-model.md +178 -0
- package/docs/manual/01-concepts/03-theme-engine.md +182 -0
- package/docs/manual/01-concepts/04-fleet.md +142 -0
- package/docs/manual/01-concepts/05-self-healing.md +197 -0
- package/docs/manual/02-tutorials/01-first-install.md +192 -0
- package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
- package/docs/manual/02-tutorials/03-create-profile.md +238 -0
- package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
- package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
- package/docs/manual/03-reference/01-dot-cli.md +413 -0
- package/docs/manual/03-reference/02-config-files.md +259 -0
- package/docs/manual/03-reference/03-environment.md +120 -0
- package/docs/manual/03-reference/04-templates.md +184 -0
- package/docs/manual/03-reference/05-feature-flags.md +118 -0
- package/docs/manual/04-cookbook/01-recipes.md +281 -0
- package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
- package/docs/manual/04-cookbook/03-faq.md +167 -0
- package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
- package/docs/manual/05-appendices/B-security-checklist.md +78 -0
- package/docs/manual/05-appendices/C-glossary.md +36 -0
- package/docs/manual/05-appendices/D-bibliography.md +54 -0
- package/docs/manual/05-appendices/E-license.md +34 -0
- package/docs/manual/_toc.yml +58 -0
- package/docs/manual/command-index.md +58 -0
- package/docs/manual/concept-index.md +164 -0
- package/docs/operations/ATTESTATION.md +39 -0
- package/docs/operations/MAINTENANCE.md +59 -0
- package/docs/operations/MIGRATION.md +101 -0
- package/docs/operations/OPERATIONS.md +164 -0
- package/docs/operations/RELIABILITY.md +116 -0
- package/docs/{ROADMAP.md → operations/ROADMAP.md} +11 -11
- package/docs/operations/TESTING.md +195 -0
- package/docs/operations/TRACEABILITY.md +31 -0
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
- package/docs/operations/VERSION_SYNC.md +344 -0
- package/docs/{ALIASES.md → reference/ALIASES.md} +2 -6
- package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
- package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
- package/docs/reference/FEATURES.md +62 -0
- package/docs/reference/FONTS.md +108 -0
- package/docs/reference/PROFILES.md +65 -0
- package/docs/{SCREENSHOTS.md → reference/SCREENSHOTS.md} +26 -25
- package/docs/reference/SCRIPTS.md +67 -0
- package/docs/reference/SUPPORT_MATRIX.md +74 -0
- package/docs/reference/THEMES.md +113 -0
- package/docs/reference/TOOLS.md +105 -0
- package/docs/reference/UTILS.md +151 -0
- package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
- package/docs/security/AUTOMATION_SECRETS.md +22 -0
- package/docs/security/COMPLIANCE.md +453 -0
- package/docs/security/ENCRYPTION.md +52 -0
- package/docs/security/FMEA.md +155 -0
- package/docs/security/INCIDENT_RESPONSE.md +575 -0
- package/docs/security/KEYS.md +45 -0
- package/docs/security/MCP_POLICY.md +69 -0
- package/docs/security/POLICY_RELEASES.md +33 -0
- package/docs/security/README.md +24 -0
- package/docs/security/SECRETS.md +146 -0
- package/docs/security/SECURITY.md +41 -0
- package/docs/security/SECURITY_CHECKLIST.md +44 -0
- package/docs/security/SOUP_REGISTER.md +32 -0
- package/docs/security/THREAT_MODEL.md +120 -0
- package/docs/security/VERIFICATION_VALIDATION.md +224 -0
- package/docs/themes/README.md +3 -17
- package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
- package/docs/themes/hero-shot.svg +78 -0
- package/dot_config/.module-manifest.json +69 -0
- package/dot_config/ai/identity.md +20 -0
- package/dot_config/ai/patterns/architect.md +14 -0
- package/dot_config/ai/patterns/hardener.md +13 -0
- package/dot_config/ai/patterns/refactor.md +13 -0
- package/dot_config/aider/aider.conf.yml +1 -1
- package/dot_config/alacritty/alacritty.toml.tmpl +41 -469
- package/dot_config/atuin/config.toml +18 -1
- package/dot_config/bat/config +16 -1
- package/dot_config/claude/mcp_servers.json +3 -32
- package/dot_config/dotfiles/agent-card.json +29 -0
- package/dot_config/dotfiles/agent-profiles.json +92 -0
- package/dot_config/dotfiles/boot/README.md +1 -1
- package/dot_config/dotfiles/grub/README.md +1 -1
- package/dot_config/dotfiles/lock/README.md +1 -1
- package/dot_config/dotfiles/mcp-lock.json +33 -0
- package/dot_config/dotfiles/mcp-policy.json +52 -0
- package/dot_config/dotfiles/mcp-registry.json +47 -0
- package/dot_config/dotfiles/model-registry.json +20 -0
- package/dot_config/dotfiles/policy-bundles.json +38 -0
- package/dot_config/dotfiles/prompt-registry.json +16 -0
- package/dot_config/dotfiles/versions.env +18 -0
- package/dot_config/environment.d/50-ssh-agent.conf +2 -0
- package/dot_config/environment.d/90-wayland.conf +19 -0
- package/dot_config/firefox/user.js.tmpl +58 -0
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
- package/dot_config/fish/completions/dot.fish.tmpl +115 -0
- package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
- package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
- package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
- package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
- package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
- package/dot_config/fish/config.fish.tmpl +44 -0
- package/dot_config/fish/fish_plugins +1 -0
- package/dot_config/fish/functions/_.fish +3 -0
- package/dot_config/fish/functions/_cached_eval.fish +58 -0
- package/dot_config/fish/functions/als.fish +46 -0
- package/dot_config/fish/functions/bg-upgrade.fish +7 -0
- package/dot_config/fish/functions/c.fish +3 -0
- package/dot_config/fish/functions/cat.fish +9 -0
- package/dot_config/fish/functions/d.fish +7 -0
- package/dot_config/fish/functions/dot.fish +34 -0
- package/dot_config/fish/functions/h.fish +3 -0
- package/dot_config/fish/functions/l.fish +7 -0
- package/dot_config/fish/functions/la.fish +7 -0
- package/dot_config/fish/functions/ll.fish +7 -0
- package/dot_config/fish/functions/log_error.fish +13 -0
- package/dot_config/fish/functions/log_info.fish +13 -0
- package/dot_config/fish/functions/lr.fish +7 -0
- package/dot_config/fish/functions/lra.fish +7 -0
- package/dot_config/fish/functions/ls.fish +7 -0
- package/dot_config/fish/functions/lt.fish +7 -0
- package/dot_config/fish/functions/lta.fish +7 -0
- package/dot_config/fish/functions/notify-run.fish +11 -0
- package/dot_config/fish/functions/q.fish +3 -0
- package/dot_config/fish/functions/silent-run.fish +7 -0
- package/dot_config/fish/functions/yy.fish +8 -0
- package/dot_config/fontconfig/fonts.conf.tmpl +13 -0
- package/dot_config/foot/foot.ini.tmpl +33 -0
- package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
- package/dot_config/fzf/fzf.zsh +48 -0
- package/dot_config/ghostty/config.tmpl +69 -565
- package/dot_config/git/allowed_signers.tmpl +18 -0
- package/dot_config/git/commit-template +10 -0
- package/dot_config/gnupg/{gpg-agent.conf.tmpl → gpg-agent.conf} +3 -3
- package/dot_config/goose/config.yaml +2 -2
- package/dot_config/gtk-3.0/gtk.css.tmpl +59 -180
- package/dot_config/gtk-3.0/settings.ini.tmpl +5 -44
- package/dot_config/gtk-4.0/gtk.css.tmpl +79 -136
- package/dot_config/gtk-4.0/settings.ini.tmpl +5 -8
- package/dot_config/ipython/profile_default/ipython_config.py +19 -0
- package/dot_config/just/justfile +18 -0
- package/dot_config/kanshi/config.tmpl +22 -0
- package/dot_config/kitty/kitty.conf.tmpl +44 -508
- package/dot_config/lazygit/config.yml +18 -6
- package/dot_config/mako/config +47 -0
- package/dot_config/micro/settings.json +3 -0
- package/dot_config/mimeapps.list +77 -0
- package/dot_config/mise/config.toml +63 -5
- package/dot_config/mongosh/mongoshrc.js +1 -0
- package/dot_config/mpv/input.conf +47 -0
- package/dot_config/mpv/mpv.conf +47 -0
- package/dot_config/niri/config.kdl.tmpl +327 -0
- package/dot_config/nushell/aliases.nu +18 -0
- package/dot_config/nushell/completions.nu.tmpl +52 -0
- package/dot_config/nushell/config.nu.tmpl +86 -0
- package/dot_config/nushell/env.nu.tmpl +94 -0
- package/dot_config/nushell/functions.nu.tmpl +17 -0
- package/dot_config/nvim/init.lua +14 -0
- package/dot_config/nvim/lazy-lock.json +45 -14
- package/dot_config/nvim/lua/config/autocmds.lua +45 -1
- package/dot_config/nvim/lua/config/keymaps.lua +13 -8
- package/dot_config/nvim/lua/config/lazy.lua +22 -12
- package/dot_config/nvim/lua/config/options.lua +1 -0
- package/dot_config/nvim/lua/plugins/ai.lua +75 -0
- package/dot_config/nvim/lua/plugins/coding.lua +11 -29
- package/dot_config/nvim/lua/plugins/completion.lua +60 -0
- package/dot_config/nvim/lua/plugins/dap.lua +215 -4
- package/dot_config/nvim/lua/plugins/editor.lua +6 -10
- package/dot_config/nvim/lua/plugins/git.lua +1 -0
- package/dot_config/nvim/lua/plugins/lsp.lua +16 -81
- package/dot_config/nvim/lua/plugins/markdown.lua +1 -0
- package/dot_config/nvim/lua/plugins/rust.lua +1 -0
- package/dot_config/nvim/lua/plugins/sessions.lua +1 -0
- package/dot_config/nvim/lua/plugins/ui.lua +23 -51
- package/dot_config/paru/paru.conf +10 -0
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
- package/dot_config/pueue/pueue.yml +34 -0
- package/dot_config/raycast/README.md +1 -1
- package/dot_config/ripgrep/ripgreprc +21 -0
- package/dot_config/shell/00-core-paths.sh.tmpl +62 -24
- package/dot_config/shell/05-core-safety.sh +47 -0
- package/dot_config/shell/10-secrets.sh +40 -0
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
- package/dot_config/shell/40-ls-colors.sh +48 -0
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
- package/dot_config/shell/90-ux-aliases.sh.tmpl +90 -5
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +33 -2
- package/dot_config/shell/Brewfile.cli +8 -0
- package/dot_config/shell/README.md +9 -9
- package/dot_config/shell/als_data.txt.tmpl +65 -0
- package/dot_config/shell/custom/auto_ls.zsh +20 -0
- package/dot_config/shell/custom/context_suggest.zsh +50 -50
- package/dot_config/shell/custom/error_analysis.zsh +29 -29
- package/dot_config/starship.toml.tmpl +85 -7
- package/dot_config/swaylock/config +43 -0
- package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
- package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
- package/dot_config/systemd/user/pueued.service +12 -0
- package/dot_config/systemd/user/ssh-agent.service +12 -0
- package/dot_config/tmux/tmux.conf.tmpl +80 -38
- package/dot_config/topgrade.toml.tmpl +54 -0
- package/dot_config/user-dirs.dirs +9 -0
- package/dot_config/vscode/settings.json.tmpl +9 -50
- package/dot_config/waybar/config.jsonc.tmpl +90 -0
- package/dot_config/waybar/style.css.tmpl +211 -0
- package/dot_config/wezterm/wezterm.lua.tmpl +31 -203
- package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
- package/dot_config/yazi/keymap.toml +67 -0
- package/dot_config/yazi/theme.toml +102 -0
- package/dot_config/zathura/zathurarc +52 -0
- package/dot_config/zellij/{config.kdl → config.kdl.tmpl} +1 -1
- package/dot_config/zsh/dot_zprofile +1 -7
- package/dot_config/zsh/dot_zshenv +2 -3
- package/dot_config/zsh/dot_zshrc.tmpl +368 -69
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +17 -4
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +4 -4
- package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +101 -30
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
- package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
- package/dot_local/bin/executable_ai-update +195 -0
- package/dot_local/bin/executable_ai_core +113 -91
- package/dot_local/bin/executable_antigravity +11 -0
- package/dot_local/bin/executable_b64 +61 -36
- package/dot_local/bin/executable_bm +77 -0
- package/dot_local/bin/executable_cb +39 -0
- package/dot_local/bin/executable_dot +543 -132
- package/dot_local/bin/executable_dot-ai +36 -0
- package/dot_local/bin/executable_dot-bootstrap +77 -0
- package/dot_local/bin/executable_dot-launch-or-focus +52 -0
- package/dot_local/bin/executable_dot-load-benchmark +31 -0
- package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
- package/dot_local/bin/executable_dot-theme-sync +952 -0
- package/dot_local/bin/executable_dot_completion +2 -0
- package/dot_local/bin/executable_dtags +28 -0
- package/dot_local/bin/executable_epoch +43 -38
- package/dot_local/bin/executable_extract +32 -99
- package/dot_local/bin/executable_gbd +52 -0
- package/dot_local/bin/executable_gd +42 -0
- package/dot_local/bin/executable_git-ai-commit +35 -20
- package/dot_local/bin/executable_git-ai-diff +33 -18
- package/dot_local/bin/executable_gl +101 -0
- package/dot_local/bin/executable_hash +56 -18
- package/dot_local/bin/executable_hashsum +160 -0
- package/dot_local/bin/executable_hex +44 -8
- package/dot_local/bin/executable_jsonv +34 -10
- package/dot_local/bin/executable_jwt +22 -6
- package/dot_local/bin/executable_kill-port +18 -2
- package/dot_local/bin/executable_lorem +21 -6
- package/dot_local/bin/executable_mkscript +35 -0
- package/dot_local/bin/executable_monitor +56 -0
- package/dot_local/bin/{executable_ip → executable_myip} +16 -2
- package/dot_local/bin/executable_notify +22 -0
- package/dot_local/bin/executable_open +36 -0
- package/dot_local/bin/executable_pw +27 -0
- package/dot_local/bin/executable_rec-start +46 -0
- package/dot_local/bin/executable_rec-stop +35 -0
- package/dot_local/bin/executable_regex +49 -13
- package/dot_local/bin/executable_start-niri +8 -0
- package/dot_local/bin/executable_tmux-sessionizer +276 -149
- package/dot_local/bin/executable_tour +112 -74
- package/dot_local/bin/executable_up +21 -0
- package/dot_local/bin/executable_update +45 -11
- package/dot_local/bin/executable_uuid +37 -7
- package/dot_local/bin/executable_win +32 -0
- package/dot_local/bin/executable_yamlv +25 -7
- package/dot_local/share/bash-completion/completions/dot +62 -44
- package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
- package/dot_local/share/man/man1/dot.1 +149 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
- package/dot_local/share/zsh/completions/_dot +283 -0
- package/install.sh +297 -210
- package/package.json +17 -5
- package/scripts/ci/check-copyright-headers.sh +96 -0
- package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
- package/scripts/ci/install-chezmoi-verified.sh +64 -0
- package/scripts/ci/validate-ci-config.sh +41 -39
- package/scripts/demo/record.sh +3 -2
- package/scripts/diagnostics/a2a-conformance.sh +162 -0
- package/scripts/diagnostics/alias-governance.sh +137 -0
- package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
- package/scripts/diagnostics/aliases-manifest.sh +31 -0
- package/scripts/diagnostics/benchmark.sh +209 -29
- package/scripts/diagnostics/conflicts.sh +72 -0
- package/scripts/diagnostics/doctor-unified.sh +38 -0
- package/scripts/diagnostics/doctor.sh +491 -65
- package/scripts/diagnostics/drift-dashboard.sh +17 -6
- package/scripts/diagnostics/health.sh +351 -110
- package/scripts/diagnostics/history-analysis.sh +12 -4
- package/scripts/diagnostics/mcp-doctor.sh +575 -0
- package/scripts/diagnostics/perf.sh +225 -0
- package/scripts/diagnostics/scorecard.sh +118 -0
- package/scripts/diagnostics/secret-governance.sh +58 -0
- package/scripts/diagnostics/security-score.sh +139 -93
- package/scripts/diagnostics/smoke-test.sh +87 -0
- package/scripts/diagnostics/snapshot.sh +89 -0
- package/scripts/diagnostics/verify.sh +107 -0
- package/scripts/diagnostics/verify_state.sh +2 -2
- package/scripts/diagnostics/version-locks.sh +79 -0
- package/scripts/diagnostics/workstation-attestation.sh +181 -0
- package/scripts/docs/build-manual.sh +883 -0
- package/scripts/docs/check-manual.sh +213 -0
- package/scripts/dot/commands/agent.sh +465 -0
- package/scripts/dot/commands/ai.sh +416 -0
- package/scripts/dot/commands/aliases.sh +250 -0
- package/scripts/dot/commands/appearance.sh +21 -4
- package/scripts/dot/commands/core.sh +59 -4
- package/scripts/dot/commands/diagnostics.sh +132 -3
- package/scripts/dot/commands/fleet.sh +399 -0
- package/scripts/dot/commands/lint.sh +177 -0
- package/scripts/dot/commands/manual.sh +168 -0
- package/scripts/dot/commands/meta.sh +148 -17
- package/scripts/dot/commands/patterns.sh +54 -0
- package/scripts/dot/commands/restore.sh +57 -35
- package/scripts/dot/commands/secrets.sh +151 -9
- package/scripts/dot/commands/security.sh +3 -0
- package/scripts/dot/commands/tools.sh +268 -27
- package/scripts/dot/data/alias-deprecations.tsv +2 -0
- package/scripts/dot/lib/bento.sh +49 -0
- package/scripts/dot/lib/log.sh +194 -0
- package/scripts/dot/lib/platform.sh +98 -0
- package/scripts/dot/lib/ui.sh +507 -0
- package/scripts/dot/lib/utils.sh +318 -18
- package/scripts/fonts/install-nerd-fonts.sh +19 -10
- package/scripts/fonts/patch-fonts.sh +1 -0
- package/scripts/git-hooks/install.sh +11 -0
- package/scripts/git-hooks/pre-commit +12 -0
- package/scripts/git-hooks/pre-commit-audit.sh +145 -0
- package/scripts/git-hooks/pre-push +29 -0
- package/scripts/git-hooks/prepare-commit-msg +29 -0
- package/scripts/lib/secrets_provider.sh +158 -0
- package/scripts/maintenance/check-updates.sh +131 -0
- package/scripts/ops/ai-setup.sh +55 -0
- package/scripts/ops/bundle.sh +77 -0
- package/scripts/ops/chaos.sh +49 -0
- package/scripts/ops/chezmoi-apply.sh +245 -17
- package/scripts/ops/chezmoi-diff.sh +1 -0
- package/scripts/ops/chezmoi-remove.sh +2 -0
- package/scripts/ops/chezmoi-update.sh +34 -2
- package/scripts/ops/heal-chezmoi.sh +51 -0
- package/scripts/ops/heal-system.sh +128 -0
- package/scripts/ops/heal-tools.sh +340 -0
- package/scripts/ops/heal.sh +98 -342
- package/scripts/ops/post-apply-repair.sh +106 -0
- package/scripts/ops/prewarm.sh +127 -0
- package/scripts/ops/release.sh +252 -0
- package/scripts/ops/rollback.sh +86 -28
- package/scripts/ops/setup.sh +137 -0
- package/scripts/ops/teleport.sh +2 -1
- package/scripts/qa/coverage-baseline.sh +60 -0
- package/scripts/qa/docs-coverage.sh +111 -0
- package/scripts/qa/reliability-audit.sh +138 -0
- package/scripts/qa/traceability-coverage.sh +116 -0
- package/scripts/qa/validate-examples.sh +26 -0
- package/scripts/qa/wsl-contract.sh +11 -0
- package/scripts/release/package-policy-bundles.sh +125 -0
- package/scripts/secrets/age-init.sh +1 -0
- package/scripts/secrets/create-secrets-file.sh +1 -0
- package/scripts/secrets/encrypt-ssh-key.sh +1 -0
- package/scripts/security/backup.sh +44 -4
- package/scripts/security/dns-doh.sh +36 -14
- package/scripts/security/encryption-check.sh +27 -12
- package/scripts/security/enforce-policies.sh +11 -16
- package/scripts/security/firewall.sh +76 -20
- package/scripts/security/lock-configs.sh +2 -2
- package/scripts/security/lock-screen.sh +40 -18
- package/scripts/security/manage-secrets.sh +42 -29
- package/scripts/security/ssh-cert.sh +203 -0
- package/scripts/security/telemetry-kill.sh +40 -18
- package/scripts/security/usb-safety.sh +37 -15
- package/scripts/theme/apply-gnome-theme.sh +87 -56
- package/scripts/theme/extract-theme.py +677 -0
- package/scripts/theme/install-boot-logo.sh +1 -0
- package/scripts/theme/install-catppuccin-themes.sh +57 -33
- package/scripts/theme/install-cursors.sh +1 -0
- package/scripts/theme/install-file-icons.sh +1 -0
- package/scripts/theme/install-grub-theme.sh +11 -1
- package/scripts/theme/install-lock-icon.sh +1 -0
- package/scripts/theme/merge-wallpaper.sh +141 -0
- package/scripts/theme/rebuild-themes.sh +309 -0
- package/scripts/theme/switch.sh +308 -137
- package/scripts/theme/wallpaper-rotate.sh +66 -12
- package/scripts/theme/wallpaper-sync.sh +386 -31
- package/scripts/tools/cmatrix.sh +1 -0
- package/scripts/tools/detect-collisions.py +1 -1
- package/scripts/tools/emoji-picker.sh +4 -1
- package/scripts/tools/figlet-banner.sh +1 -0
- package/scripts/tools/log-rotate.sh +2 -1
- package/scripts/tools/lolcat-wrap.sh +1 -0
- package/scripts/tools/pipes.sh +1 -0
- package/scripts/tuning/linux.sh +23 -13
- package/scripts/tuning/macos.sh +13 -4
- package/scripts/uninstall.sh +85 -0
- package/scripts/version-sync.sh +487 -0
- package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
- package/templates/chezmoi-data/mac-m1.toml.example +16 -0
- package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
- package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
- package/templates/projects/go/.github/workflows/ci.yml +31 -0
- package/templates/projects/go/README.md +1 -1
- package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
- package/templates/projects/go/go.sum +0 -0
- package/templates/projects/molecule/README.md +1 -1
- package/templates/projects/node/.github/workflows/ci.yml +30 -0
- package/templates/projects/node/README.md +1 -1
- package/templates/projects/node/package-lock.json +12 -0
- package/templates/projects/node/src/index.js +1 -0
- package/templates/projects/packer/README.md +1 -1
- package/templates/projects/python/.github/workflows/ci.yml +34 -0
- package/templates/projects/python/README.md +1 -1
- package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
- package/templates/projects/python/tests/test_basic.py +1 -0
- package/docs/ARCHITECTURE.md +0 -229
- package/docs/COMPLIANCE.md +0 -47
- package/docs/FEATURES.md +0 -166
- package/docs/FONTS.md +0 -147
- package/docs/INSTALL.md +0 -119
- package/docs/KEYS.md +0 -40
- package/docs/OPERATIONS.md +0 -130
- package/docs/PR_DESCRIPTION.md +0 -149
- package/docs/SECRETS.md +0 -76
- package/docs/SECURITY.md +0 -30
- package/docs/SECURITY_CHECKLIST.md +0 -25
- package/docs/TASK.md +0 -99
- package/docs/TESTING.md +0 -190
- package/docs/TOOLS.md +0 -146
- package/docs/UTILS.md +0 -105
- package/docs/WALKTHROUGH.md +0 -165
- package/dot_config/clippy.toml +0 -55
- package/dot_config/dotfiles/versions.env.tmpl +0 -19
- package/dot_config/firefox/user.js +0 -8
- package/dot_config/git/config.tmpl +0 -77
- package/dot_config/go/aliases.sh +0 -61
- package/dot_config/go/env.sh +0 -24
- package/dot_config/ice/README.md +0 -13
- package/dot_config/ipython/profile_default/ipython_config.py.tmpl +0 -5
- package/dot_config/lsd/config.yaml +0 -19
- package/dot_config/nvim/snippets/all.lua +0 -9
- package/dot_config/nvim/snippets/python.lua +0 -16
- package/dot_config/shell/00-container-detect.sh +0 -53
- package/dot_config/shell/05-core-safety.sh.tmpl +0 -13
- package/dot_config/shell/40-ls-colors.sh.tmpl +0 -31
- package/dot_config/shell/90-theme-switch.sh +0 -70
- package/dot_config/topgrade/topgrade.toml.tmpl +0 -42
- package/dot_config/waybar/style.css +0 -8
- package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +0 -22
- package/dot_local/bin/executable_zig-install +0 -89
- package/dot_local/bin/voice_ops +0 -7
- package/scripts/ops/health-check.sh +0 -380
- package/scripts/tests/README.md +0 -241
- package/scripts/tests/benchmark.sh +0 -91
- package/scripts/tests/framework/assertions.sh +0 -283
- package/scripts/tests/framework/mocks.sh +0 -201
- package/scripts/tests/framework/test_runner.sh +0 -189
- package/scripts/tests/integration/test_install.sh +0 -237
- package/scripts/tests/performance/benchmark_runner.sh +0 -156
- package/scripts/tests/performance/regression_check.sh +0 -73
- package/scripts/tests/performance/stress_test.sh +0 -65
- package/scripts/tests/test-aliases.sh +0 -25
- package/scripts/tests/test-docker.sh +0 -48
- package/scripts/tests/unit/test_ai_aliases.sh +0 -158
- package/scripts/tests/unit/test_ai_cli_checks.sh +0 -47
- package/scripts/tests/unit/test_backup.sh +0 -227
- package/scripts/tests/unit/test_case_functions.sh +0 -238
- package/scripts/tests/unit/test_cd_aliases.sh +0 -367
- package/scripts/tests/unit/test_dot_cli.sh +0 -217
- package/scripts/tests/unit/test_encode64.sh +0 -67
- package/scripts/tests/unit/test_environment.sh +0 -78
- package/scripts/tests/unit/test_extract.sh +0 -163
- package/scripts/tests/unit/test_framework_edge_cases.sh +0 -113
- package/scripts/tests/unit/test_genpass.sh +0 -298
- package/scripts/tests/unit/test_install_edge_cases.sh +0 -167
- package/scripts/tests/unit/test_installers.sh +0 -172
- package/scripts/tests/unit/test_keygen.sh +0 -68
- package/scripts/tests/unit/test_logging.sh +0 -96
- package/scripts/tests/unit/test_os_detection_comprehensive.sh +0 -388
- package/scripts/tests/unit/test_package_managers_comprehensive.sh +0 -321
- package/scripts/tests/unit/test_prependpath.sh +0 -66
- package/scripts/tests/unit/test_prependpath_refactored.sh +0 -89
- package/scripts/tests/unit/test_rd.sh +0 -230
- package/scripts/tests/unit/test_security_fixes.sh +0 -130
- package/scripts/tests/unit/test_security_scripts.sh +0 -87
- package/scripts/tests/unit/test_template_validation.sh +0 -238
- package/scripts/tests/unit/test_utility_functions.sh +0 -144
- package/scripts/tests/unit/test_wave1_alias_split.sh +0 -132
- package/scripts/tests/unit/test_wave1_ci_pinning.sh +0 -61
- package/scripts/tests/unit/test_wave1_gitleaks_config.sh +0 -52
- package/scripts/tests/unit/test_wave1_heal_fixes.sh +0 -97
- package/scripts/tests/unit/test_wave1_install_gpg.sh +0 -35
- package/scripts/tests/unit/test_wave1_zshenv_path.sh +0 -89
- package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +0 -115
- package/scripts/tests/unit/test_wave2_dot_new_guard.sh +0 -75
- package/scripts/tests/unit/test_zipf.sh +0 -76
- /package/docs/{LEGACY_ROADMAP.md → archive/LEGACY_ROADMAP.md} +0 -0
- /package/docs/{REPO_AUDIT.md → archive/REPO_AUDIT.md} +0 -0
- /package/docs/{KEY_ROTATION.md → security/KEY_ROTATION.md} +0 -0
- /package/dot_config/ansible/{ansible.cfg.tmpl → ansible.cfg} +0 -0
- /package/dot_config/docker/{config.json.tmpl → config.json} +0 -0
- /package/dot_config/k9s/{config.yaml.tmpl → config.yaml} +0 -0
- /package/dot_config/pypoetry/{config.toml.tmpl → config.toml} +0 -0
- /package/dot_config/{pyrightconfig.json.tmpl → pyrightconfig.json} +0 -0
- /package/dot_config/tflint/{tflint.hcl.tmpl → tflint.hcl} +0 -0
- /package/dot_config/yarn/{yarnrc.yml.tmpl → yarnrc.yml} +0 -0
- /package/dot_config/zsh/rc.d/{40-bell.zsh.tmpl → 40-bell.zsh} +0 -0
- /package/dot_config/zsh/rc.d/{50-login-fortune.zsh.tmpl → 50-login-fortune.zsh} +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Reference: Environment Variables
|
|
2
|
+
|
|
3
|
+
All environment variables that affect `.dotfiles` behaviour.
|
|
4
|
+
|
|
5
|
+
## User-Settable
|
|
6
|
+
|
|
7
|
+
Variables you can set in your shell to change behaviour.
|
|
8
|
+
|
|
9
|
+
| Variable | Default | Effect |
|
|
10
|
+
|:---|:---|:---|
|
|
11
|
+
| `DOTFILES_VERBOSE` | unset | Verbose output from `dot` commands |
|
|
12
|
+
| `DOTFILES_NONINTERACTIVE` | unset | Skip interactive prompts (for CI) |
|
|
13
|
+
| `DOTFILES_SILENT` | unset | Suppress non-error output |
|
|
14
|
+
| `DOTFILES_DEBUG` | unset | Print shell-init timing to stderr |
|
|
15
|
+
| `DOTFILES_SOURCE_DIR` | `~/.dotfiles` | Override the source directory |
|
|
16
|
+
| `DOTFILES_WALLPAPER_DIR` | `~/Pictures/Wallpapers` | Custom wallpaper directory |
|
|
17
|
+
| `DOTFILES_CACHE_DIR` | `~/.cache/dotfiles` | Override cache location |
|
|
18
|
+
| `DOTFILES_STATE_DIR` | `~/.local/state/dotfiles` | Override state directory |
|
|
19
|
+
| `DOTFILES_TUNING` | `0` | Enable OS tuning (`dot tune`) |
|
|
20
|
+
| `EDITOR` | `nvim` | Editor used by `dot edit` and `sops` |
|
|
21
|
+
| `PAGER` | `less` | Pager used by `dot manual text` |
|
|
22
|
+
|
|
23
|
+
## Auto-Populated
|
|
24
|
+
|
|
25
|
+
Variables the dotfiles set in your shell for tool consumption.
|
|
26
|
+
|
|
27
|
+
| Variable | Value | Source |
|
|
28
|
+
|:---|:---|:---|
|
|
29
|
+
| `XDG_CONFIG_HOME` | `~/.config` | `dot_zshenv` / `dot_config/fish/conf.d/env.fish.tmpl` |
|
|
30
|
+
| `XDG_CACHE_HOME` | `~/.cache` | ditto |
|
|
31
|
+
| `XDG_DATA_HOME` | `~/.local/share` | ditto |
|
|
32
|
+
| `XDG_STATE_HOME` | `~/.local/state` | ditto |
|
|
33
|
+
| `PATH` | managed order | `dot_config/shell/00-core-paths.sh.tmpl` |
|
|
34
|
+
| `BUN_INSTALL` | `~/.bun` | `env.fish.tmpl` |
|
|
35
|
+
| `PIPX_HOME` | `~/.local/share/pipx` | ditto |
|
|
36
|
+
| `PIPX_BIN_DIR` | `~/.local/bin` | ditto |
|
|
37
|
+
| `BUILDS_TMPDIR` | `/tmp/builds` | `dot_zshenv` (created on shell init) |
|
|
38
|
+
| `CARGO_TARGET_DIR` | (from `~/.cargo/config.toml`) | `target-dir = "/tmp/builds/cargo"` |
|
|
39
|
+
| `GOCACHE` | `/tmp/builds/go-cache` | `mise [env]` |
|
|
40
|
+
| `GOTMPDIR` | `/tmp/builds/go-tmp` | `mise [env]` |
|
|
41
|
+
| `PIP_CACHE_DIR` | `/tmp/builds/pip-cache` | `mise [env]` |
|
|
42
|
+
| `UV_CACHE_DIR` | `/tmp/builds/uv-cache` | `mise [env]` |
|
|
43
|
+
| `ZIG_LOCAL_CACHE_DIR` | `/tmp/builds/zig-cache` | `mise [env]` |
|
|
44
|
+
| `ZIG_GLOBAL_CACHE_DIR` | `/tmp/builds/zig-global-cache` | `mise [env]` |
|
|
45
|
+
| `HOMEBREW_PREFIX` | `/opt/homebrew` or `/usr/local` | `dot_zshenv` (macOS) |
|
|
46
|
+
| `MANPATH` | homebrew-adjusted | ditto |
|
|
47
|
+
| `MISE_EXPERIMENTAL` | `1` | `~/.config/mise/config.toml` |
|
|
48
|
+
| `GITHUB_TOKEN` | from `gh auth token` | `~/.config/mise/config.toml` |
|
|
49
|
+
|
|
50
|
+
## Read by Tools
|
|
51
|
+
|
|
52
|
+
Variables set by upstream tools and respected by `.dotfiles`.
|
|
53
|
+
|
|
54
|
+
| Variable | Used for |
|
|
55
|
+
|:---|:---|
|
|
56
|
+
| `SHELL` | Detect default shell |
|
|
57
|
+
| `TERM` | Terminal capabilities (e.g. `xterm-256color`) |
|
|
58
|
+
| `COLORTERM` | True-color detection (`truecolor`) |
|
|
59
|
+
| `LANG` / `LC_ALL` | Locale (must be UTF-8) |
|
|
60
|
+
| `HOME` | User home directory |
|
|
61
|
+
| `USER` | Username |
|
|
62
|
+
| `SSH_AUTH_SOCK` | ssh-agent socket |
|
|
63
|
+
| `GPG_TTY` | GPG pinentry TTY |
|
|
64
|
+
|
|
65
|
+
## CI-Specific
|
|
66
|
+
|
|
67
|
+
Variables relevant in GitHub Actions.
|
|
68
|
+
|
|
69
|
+
| Variable | Purpose |
|
|
70
|
+
|:---|:---|
|
|
71
|
+
| `CI` | Set to `true` in CI; disables prompts |
|
|
72
|
+
| `GITHUB_ACTIONS` | GHA-specific; enables step summary output |
|
|
73
|
+
| `CHEZMOI_VERSION` | Pinned chezmoi version for CI |
|
|
74
|
+
| `COVERAGE_THRESHOLD` | Test coverage threshold (100 in enforced CI) |
|
|
75
|
+
| `DOTFILES_TEST_MODE` | Skip network-dependent tests |
|
|
76
|
+
|
|
77
|
+
## Secret-Related
|
|
78
|
+
|
|
79
|
+
| Variable | Purpose |
|
|
80
|
+
|:---|:---|
|
|
81
|
+
| `SOPS_AGE_KEY_FILE` | Override `~/.config/age/keys.txt` path |
|
|
82
|
+
| `SOPS_AGE_RECIPIENTS` | Override recipients for new encryption |
|
|
83
|
+
| `CHEZMOI_AGE_IDENTITY` | Override age identity for chezmoi decrypt |
|
|
84
|
+
|
|
85
|
+
> Warning: never set these to values stored in plaintext config. Use a password manager or ephemeral injection.
|
|
86
|
+
|
|
87
|
+
## Startup Order
|
|
88
|
+
|
|
89
|
+
Shell-loaded variables follow this precedence (later wins):
|
|
90
|
+
|
|
91
|
+
1. System defaults (`/etc/environment`, `/etc/profile`)
|
|
92
|
+
2. Homebrew shellenv (macOS)
|
|
93
|
+
3. `~/.zshenv` (earliest user-level file; sets XDG + PATH bootstrap)
|
|
94
|
+
4. `~/.zprofile` or `~/.config/fish/conf.d/*.fish`
|
|
95
|
+
5. `~/.zshrc` or `~/.config/fish/config.fish`
|
|
96
|
+
6. `mise activate` — injects tool-specific env
|
|
97
|
+
7. Per-project `.envrc` via direnv (opt-in)
|
|
98
|
+
|
|
99
|
+
To debug: `DOTFILES_DEBUG=1 zsh -i -c exit` prints timing for each stage.
|
|
100
|
+
|
|
101
|
+
## Unsetting
|
|
102
|
+
|
|
103
|
+
To clean up environment pollution:
|
|
104
|
+
|
|
105
|
+
```sh
|
|
106
|
+
# Show current dotfiles-set vars
|
|
107
|
+
env | grep -E '^(DOTFILES_|XDG_|BUILDS_)'
|
|
108
|
+
|
|
109
|
+
# Unset one
|
|
110
|
+
unset DOTFILES_DEBUG
|
|
111
|
+
|
|
112
|
+
# Reset to defaults (restart shell)
|
|
113
|
+
exec $SHELL -l
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## See Also
|
|
117
|
+
|
|
118
|
+
- [Configuration Files](02-config-files.md)
|
|
119
|
+
- [Feature Flags](05-feature-flags.md)
|
|
120
|
+
- [First Install](../02-tutorials/01-first-install.md)
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Reference: Template Variables
|
|
2
|
+
|
|
3
|
+
Every variable available to chezmoi templates (`.tmpl` files).
|
|
4
|
+
|
|
5
|
+
## From `.chezmoidata.toml`
|
|
6
|
+
|
|
7
|
+
Flat top-level keys:
|
|
8
|
+
|
|
9
|
+
| Variable | Type | Example |
|
|
10
|
+
|:---|:---|:---|
|
|
11
|
+
| `.dotfiles_version` | string | `"0.2.500"` |
|
|
12
|
+
| `.theme` | string | `"tahoe-dark"` |
|
|
13
|
+
| `.machine` | string | `"macbook-t2"` |
|
|
14
|
+
| `.profile` | string | `"laptop"` |
|
|
15
|
+
| `.default_shell` | string | `"fish"` |
|
|
16
|
+
| `.terminal_font_family` | string | `"JetBrainsMono Nerd Font"` |
|
|
17
|
+
| `.terminal_font_size` | int | `12` |
|
|
18
|
+
| `.name` | string | `"Your Name"` |
|
|
19
|
+
| `.email` | string | `"you@example.com"` |
|
|
20
|
+
|
|
21
|
+
## From `.chezmoidata/themes.toml`
|
|
22
|
+
|
|
23
|
+
```go
|
|
24
|
+
{{- $t := index .themes .theme }}
|
|
25
|
+
{{ $t.mode }} // "dark" or "light"
|
|
26
|
+
{{ $t.family }} // "tahoe"
|
|
27
|
+
{{ $t.macos_accent }} // 4 (integer)
|
|
28
|
+
{{ $t.term.bg }} // "#121430"
|
|
29
|
+
{{ $t.term.fg }} // "#d4d8ec"
|
|
30
|
+
{{ $t.term.c0 }} .. {{ $t.term.c15 }} // ANSI 0-15
|
|
31
|
+
{{ $t.ui.accent }} // "#3951b1"
|
|
32
|
+
{{ $t.ui.accent_text }} // "#ffffff"
|
|
33
|
+
{{ $t.ui.panel }}
|
|
34
|
+
{{ $t.ui.border }}
|
|
35
|
+
{{ $t.app.nvim }} // "catppuccin"
|
|
36
|
+
{{ $t.app.starship_palette }}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## From `.chezmoidata/hardware.toml`
|
|
40
|
+
|
|
41
|
+
```go
|
|
42
|
+
{{- $hw := index .hardware .machine }}
|
|
43
|
+
{{ $hw.display_scale }} // 2.0
|
|
44
|
+
{{ $hw.kbd_layout }} // "qwerty"
|
|
45
|
+
{{ $hw.modifier_mode }} // "left-cmd-control"
|
|
46
|
+
{{ $hw.perf_profile }} // "laptop"
|
|
47
|
+
{{ $hw.wm }} // "aerospace"
|
|
48
|
+
{{ $hw.features.touchid }} // bool
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## From Feature Flags
|
|
52
|
+
|
|
53
|
+
```go
|
|
54
|
+
{{- $f := mergeOverwrite .features $hw.features }}
|
|
55
|
+
{{ if $f.dms }}
|
|
56
|
+
# Dank Material Shell-specific config
|
|
57
|
+
{{ end }}
|
|
58
|
+
|
|
59
|
+
{{ if $f.niri }}
|
|
60
|
+
# Niri WM config
|
|
61
|
+
{{ end }}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Built-in Chezmoi Variables
|
|
65
|
+
|
|
66
|
+
```go
|
|
67
|
+
{{ .chezmoi.os }} // "darwin" | "linux" | "windows"
|
|
68
|
+
{{ .chezmoi.arch }} // "amd64" | "arm64"
|
|
69
|
+
{{ .chezmoi.kernel }} // "Darwin" | "Linux"
|
|
70
|
+
{{ .chezmoi.kernel.ostype }} // "darwin24" etc
|
|
71
|
+
{{ .chezmoi.hostname }} // host machine hostname
|
|
72
|
+
{{ .chezmoi.username }} // current user
|
|
73
|
+
{{ .chezmoi.homeDir }} // $HOME
|
|
74
|
+
{{ .chezmoi.sourceDir }} // ~/.dotfiles
|
|
75
|
+
{{ .chezmoi.workingTree }} // git working tree root
|
|
76
|
+
{{ .chezmoi.executable }} // chezmoi binary path
|
|
77
|
+
{{ .chezmoi.osRelease }} // Linux /etc/os-release data
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Built-in Chezmoi Functions
|
|
81
|
+
|
|
82
|
+
```go
|
|
83
|
+
{{ exec "command" | trim }}
|
|
84
|
+
{{ output "hostname" }}
|
|
85
|
+
{{ include "path/to/file" }}
|
|
86
|
+
{{ decrypt "path/to/file.age" }}
|
|
87
|
+
{{ sopsDecrypt "path/to/file.sops.yaml" | fromYaml }}
|
|
88
|
+
{{ joinPath "a" "b" }}
|
|
89
|
+
{{ stat "/path" }}
|
|
90
|
+
{{ ioreg ".." ".." }} // macOS only
|
|
91
|
+
{{ lookPath "command" }} // returns path or empty
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Helper Templates (in `.chezmoitemplates/`)
|
|
95
|
+
|
|
96
|
+
Reusable partials included via:
|
|
97
|
+
|
|
98
|
+
```go
|
|
99
|
+
{{ template "paths/00-default.paths.sh" . }}
|
|
100
|
+
{{ template "aliases/cd.aliases.sh" . }}
|
|
101
|
+
{{ template "functions/cdls.sh" . }}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Available partials:
|
|
105
|
+
|
|
106
|
+
- `paths/00-default.paths.sh` — canonical PATH construction
|
|
107
|
+
- `paths/05-pipx.paths.sh` — pipx + ~/.local/bin
|
|
108
|
+
- `paths/99-custom.paths.sh` — user-appended paths
|
|
109
|
+
- `aliases/*.aliases.sh` — per-domain alias sets
|
|
110
|
+
- `functions/*.sh` — reusable shell functions
|
|
111
|
+
|
|
112
|
+
## Example: Using Theme in Ghostty Config
|
|
113
|
+
|
|
114
|
+
```go
|
|
115
|
+
{{- /* dot_config/ghostty/config.tmpl */ -}}
|
|
116
|
+
{{- $t := index .themes .theme -}}
|
|
117
|
+
|
|
118
|
+
font-family = "{{ .terminal_font_family }}"
|
|
119
|
+
font-size = {{ .terminal_font_size }}
|
|
120
|
+
|
|
121
|
+
background = {{ $t.term.bg }}
|
|
122
|
+
foreground = {{ $t.term.fg }}
|
|
123
|
+
cursor-color = {{ $t.term.cursor }}
|
|
124
|
+
|
|
125
|
+
palette = 0={{ $t.term.c0 }}
|
|
126
|
+
palette = 1={{ $t.term.c1 }}
|
|
127
|
+
palette = 2={{ $t.term.c2 }}
|
|
128
|
+
# ... through 15
|
|
129
|
+
|
|
130
|
+
{{- if eq .chezmoi.os "darwin" }}
|
|
131
|
+
macos-titlebar-style = transparent
|
|
132
|
+
{{- end }}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Example: Platform × Preset
|
|
136
|
+
|
|
137
|
+
```go
|
|
138
|
+
{{- $hw := index .hardware .machine -}}
|
|
139
|
+
|
|
140
|
+
{{- if and (eq .chezmoi.os "darwin") (eq $hw.wm "aerospace") }}
|
|
141
|
+
# macOS AeroSpace config
|
|
142
|
+
include = ["aerospace-macos.toml"]
|
|
143
|
+
{{- else if and (eq .chezmoi.os "linux") (eq $hw.wm "niri") }}
|
|
144
|
+
# Linux Niri config
|
|
145
|
+
include = ["niri.kdl"]
|
|
146
|
+
{{- end }}
|
|
147
|
+
|
|
148
|
+
# DPI-aware sizing
|
|
149
|
+
font-size = {{ mul 8 $hw.display_scale | int }}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Template Testing
|
|
153
|
+
|
|
154
|
+
Render a template without applying:
|
|
155
|
+
|
|
156
|
+
```sh
|
|
157
|
+
chezmoi execute-template < dot_config/ghostty/config.tmpl
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Or test an expression:
|
|
161
|
+
|
|
162
|
+
```sh
|
|
163
|
+
chezmoi execute-template '{{ .chezmoi.os }}'
|
|
164
|
+
# darwin
|
|
165
|
+
|
|
166
|
+
chezmoi execute-template '{{- $t := index .themes .theme -}}{{ $t.term.bg }}'
|
|
167
|
+
# #121430
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Validation in CI
|
|
171
|
+
|
|
172
|
+
Every push to master runs:
|
|
173
|
+
|
|
174
|
+
```sh
|
|
175
|
+
chezmoi apply --dry-run
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
If any template fails to render, the build breaks before merge.
|
|
179
|
+
|
|
180
|
+
## See Also
|
|
181
|
+
|
|
182
|
+
- [Chezmoi template reference](https://www.chezmoi.io/reference/templates/)
|
|
183
|
+
- [Configuration Files](02-config-files.md)
|
|
184
|
+
- [Create a Profile tutorial](../02-tutorials/03-create-profile.md)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Reference: Feature Flags
|
|
2
|
+
|
|
3
|
+
Feature flags toggle optional subsystems. Set in `.chezmoidata.toml`, override per-preset in `.chezmoidata/hardware.toml`.
|
|
4
|
+
|
|
5
|
+
## Global Flags (`.chezmoidata.toml`)
|
|
6
|
+
|
|
7
|
+
```toml
|
|
8
|
+
[features]
|
|
9
|
+
dms = false # Dank Material Shell (Niri desktop)
|
|
10
|
+
linux_desktop = false # Linux-specific desktop configs
|
|
11
|
+
niri = false # Niri window manager
|
|
12
|
+
waybar = false # Waybar status bar
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Per-Preset Overrides (`.chezmoidata/hardware.toml`)
|
|
16
|
+
|
|
17
|
+
```toml
|
|
18
|
+
[hardware.surface-pro.features]
|
|
19
|
+
niri = true
|
|
20
|
+
waybar = true
|
|
21
|
+
dms = true # overrides .chezmoidata.toml default
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The effective value is `mergeOverwrite` of global + preset features.
|
|
25
|
+
|
|
26
|
+
## Flag Catalogue
|
|
27
|
+
|
|
28
|
+
### `dms` — Dank Material Shell
|
|
29
|
+
|
|
30
|
+
When `true`:
|
|
31
|
+
- Configures DMS IPC for theme sync
|
|
32
|
+
- Enables Quickshell templates
|
|
33
|
+
- Sets up per-monitor wallpaper via `dms ipc wallpaper`
|
|
34
|
+
|
|
35
|
+
Requires: Niri + Quickshell + DMS installed.
|
|
36
|
+
|
|
37
|
+
### `linux_desktop` — Linux Desktop Configs
|
|
38
|
+
|
|
39
|
+
When `true`:
|
|
40
|
+
- Enables GTK 3/4 theme generation from `themes.toml`
|
|
41
|
+
- Configures `gsettings color-scheme` behaviour
|
|
42
|
+
- Generates desktop file entries for installed tools
|
|
43
|
+
|
|
44
|
+
No effect on macOS.
|
|
45
|
+
|
|
46
|
+
### `niri` — Niri Window Manager
|
|
47
|
+
|
|
48
|
+
When `true`:
|
|
49
|
+
- Generates `~/.config/niri/config.kdl`
|
|
50
|
+
- Enables Niri keybindings from `keybinds.toml`
|
|
51
|
+
- Configures workspace rules per preset
|
|
52
|
+
|
|
53
|
+
Requires: Niri installed.
|
|
54
|
+
|
|
55
|
+
### `waybar` — Waybar Status Bar
|
|
56
|
+
|
|
57
|
+
When `true`:
|
|
58
|
+
- Generates `~/.config/waybar/config.jsonc` + `style.css`
|
|
59
|
+
- Hooks into theme switching via `dot-theme-sync`
|
|
60
|
+
|
|
61
|
+
Requires: Waybar installed.
|
|
62
|
+
|
|
63
|
+
## Using a Flag in a Template
|
|
64
|
+
|
|
65
|
+
```go
|
|
66
|
+
{{- $hw := index .hardware .machine }}
|
|
67
|
+
{{- $f := mergeOverwrite .features $hw.features }}
|
|
68
|
+
|
|
69
|
+
{{ if $f.niri }}
|
|
70
|
+
# Niri-specific config
|
|
71
|
+
{{ end }}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Checking Active Flags
|
|
75
|
+
|
|
76
|
+
```sh
|
|
77
|
+
chezmoi execute-template '{{- $hw := index .hardware .machine -}}{{- $f := mergeOverwrite .features $hw.features -}}{{ $f | toToml }}'
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Adding a New Flag
|
|
81
|
+
|
|
82
|
+
1. Add to `.chezmoidata.toml`:
|
|
83
|
+
|
|
84
|
+
```toml
|
|
85
|
+
[features]
|
|
86
|
+
my_new_flag = false
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
2. (Optional) Set per preset:
|
|
90
|
+
|
|
91
|
+
```toml
|
|
92
|
+
[hardware.macbook-t2.features]
|
|
93
|
+
my_new_flag = true
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
3. Use in templates:
|
|
97
|
+
|
|
98
|
+
```go
|
|
99
|
+
{{ if $f.my_new_flag }}
|
|
100
|
+
# conditional config
|
|
101
|
+
{{ end }}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
4. Document here with the flag's purpose and requirements
|
|
105
|
+
|
|
106
|
+
## Flag Deprecation
|
|
107
|
+
|
|
108
|
+
Flags can be deprecated without breaking existing hosts. The deprecation process:
|
|
109
|
+
|
|
110
|
+
1. Mark the flag as deprecated in this document
|
|
111
|
+
2. Leave the flag evaluation in place for one release
|
|
112
|
+
3. In the subsequent release, remove the template branches and the flag definition
|
|
113
|
+
4. Users who had the flag set will see it ignored — no errors
|
|
114
|
+
|
|
115
|
+
## See Also
|
|
116
|
+
|
|
117
|
+
- [Configuration Files](02-config-files.md)
|
|
118
|
+
- [Create a Profile](../02-tutorials/03-create-profile.md)
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# Cookbook: Recipes
|
|
2
|
+
|
|
3
|
+
Thirty short recipes for common tasks.
|
|
4
|
+
|
|
5
|
+
## Installation & Update
|
|
6
|
+
|
|
7
|
+
### 1. Install on a fresh machine
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
bash -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh)"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### 2. Update everything
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
dot upgrade
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 3. Update dotfiles only (no tools)
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
dot update
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 4. Preview what would change
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
dot apply --dry-run
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Themes
|
|
32
|
+
|
|
33
|
+
### 5. Switch to a specific theme
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
dot theme tahoe-dark
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 6. Toggle between dark and light
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
dot theme toggle
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 7. Open the interactive theme picker
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
dot theme
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 8. List paired wallpaper themes
|
|
52
|
+
|
|
53
|
+
```sh
|
|
54
|
+
dot theme list
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 9. Add a new wallpaper-driven theme
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
cp my-wallpaper.jpg ~/Pictures/Wallpapers/myname-dark.jpg
|
|
61
|
+
cp my-wallpaper-light.jpg ~/Pictures/Wallpapers/myname-light.jpg
|
|
62
|
+
bash scripts/theme/merge-wallpaper.sh myname
|
|
63
|
+
dot theme rebuild
|
|
64
|
+
dot theme myname-dark
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 10. Regenerate all themes from scratch
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
dot theme rebuild --force
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Configuration
|
|
74
|
+
|
|
75
|
+
### 11. Edit the source directory
|
|
76
|
+
|
|
77
|
+
```sh
|
|
78
|
+
dot edit
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 12. Add a new config file to chezmoi
|
|
82
|
+
|
|
83
|
+
```sh
|
|
84
|
+
dot add ~/.some-config-file
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 13. Remove a managed file
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
dot remove ~/.some-config-file
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 14. Show configuration drift
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
dot status
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 15. Show diff against source
|
|
100
|
+
|
|
101
|
+
```sh
|
|
102
|
+
dot diff
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Secrets
|
|
106
|
+
|
|
107
|
+
### 16. Encrypt a new secret file
|
|
108
|
+
|
|
109
|
+
```sh
|
|
110
|
+
chezmoi add --encrypt ~/some-secret.txt
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 17. Edit an encrypted file
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
sops dot_config/credentials.sops.yaml
|
|
117
|
+
# or
|
|
118
|
+
chezmoi edit ~/some-secret.txt.age
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 18. Rotate your Age key
|
|
122
|
+
|
|
123
|
+
```sh
|
|
124
|
+
age-keygen -o ~/.config/age/keys.txt.new
|
|
125
|
+
# Update .sops.yaml with new public key
|
|
126
|
+
# Then:
|
|
127
|
+
find . -name '*.sops.yaml' -exec sops updatekeys {} \;
|
|
128
|
+
git commit -sS -am "chore(secrets): rotate age key"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### 19. Check for accidental secret leaks
|
|
132
|
+
|
|
133
|
+
```sh
|
|
134
|
+
dot verify --security
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Diagnostics
|
|
138
|
+
|
|
139
|
+
### 20. Quick health check
|
|
140
|
+
|
|
141
|
+
```sh
|
|
142
|
+
dot doctor
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 21. Auto-fix common issues
|
|
146
|
+
|
|
147
|
+
```sh
|
|
148
|
+
dot heal
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### 22. Check startup performance
|
|
152
|
+
|
|
153
|
+
```sh
|
|
154
|
+
dot benchmark
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 23. See the health score
|
|
158
|
+
|
|
159
|
+
```sh
|
|
160
|
+
dot score
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### 24. Recent metrics
|
|
164
|
+
|
|
165
|
+
```sh
|
|
166
|
+
dot metrics
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Fleet
|
|
170
|
+
|
|
171
|
+
### 25. Attest across all fleet hosts
|
|
172
|
+
|
|
173
|
+
```sh
|
|
174
|
+
dot fleet attest
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### 26. Sync dotfiles to every fleet host
|
|
178
|
+
|
|
179
|
+
```sh
|
|
180
|
+
dot fleet sync
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### 27. Diff config across hosts
|
|
184
|
+
|
|
185
|
+
```sh
|
|
186
|
+
dot fleet diff
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## AI & Agents
|
|
190
|
+
|
|
191
|
+
### 28. Show installed AI tools
|
|
192
|
+
|
|
193
|
+
```sh
|
|
194
|
+
dot ai
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 29. Switch agent profile
|
|
198
|
+
|
|
199
|
+
```sh
|
|
200
|
+
dot mode architect # or hardener, refactor
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### 30. Verify MCP policy
|
|
204
|
+
|
|
205
|
+
```sh
|
|
206
|
+
dot mcp --strict
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Recovery
|
|
210
|
+
|
|
211
|
+
### 31. Rollback the last apply
|
|
212
|
+
|
|
213
|
+
```sh
|
|
214
|
+
dot rollback
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### 32. Create an offline bundle
|
|
218
|
+
|
|
219
|
+
```sh
|
|
220
|
+
dot bundle
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### 33. Restore from a bundle
|
|
224
|
+
|
|
225
|
+
```sh
|
|
226
|
+
dot bundle restore ~/Downloads/dotfiles-bundle-*.tar.zst
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Development
|
|
230
|
+
|
|
231
|
+
### 34. Run a test locally
|
|
232
|
+
|
|
233
|
+
```sh
|
|
234
|
+
bash tests/unit/theme/test_themes_toml.sh
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### 35. Run all tests
|
|
238
|
+
|
|
239
|
+
```sh
|
|
240
|
+
./tests/framework/test_runner.sh
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### 36. Lint shell scripts
|
|
244
|
+
|
|
245
|
+
```sh
|
|
246
|
+
dot lint
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### 37. Simulate chaos to test self-healing
|
|
250
|
+
|
|
251
|
+
```sh
|
|
252
|
+
dot chaos symlink # in an ephemeral container only
|
|
253
|
+
dot heal
|
|
254
|
+
dot doctor
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Manual
|
|
258
|
+
|
|
259
|
+
### 38. Open the manual in a browser
|
|
260
|
+
|
|
261
|
+
```sh
|
|
262
|
+
dot manual
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### 39. Download the PDF
|
|
266
|
+
|
|
267
|
+
```sh
|
|
268
|
+
dot manual pdf
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### 40. Read the manual in a terminal
|
|
272
|
+
|
|
273
|
+
```sh
|
|
274
|
+
dot manual text | less
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## See Also
|
|
278
|
+
|
|
279
|
+
- [Troubleshooting](02-troubleshooting.md)
|
|
280
|
+
- [FAQ](03-faq.md)
|
|
281
|
+
- [CLI Reference](../03-reference/01-dot-cli.md)
|