@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
package/docs/AI.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# AI Integrations (Opt-in)
|
|
2
|
+
|
|
3
|
+
AI helpers are **off by default**. You choose if and when to turn them on.
|
|
4
|
+
|
|
5
|
+
## Enable AI helpers
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
export DOTFILES_AI=1
|
|
9
|
+
exec zsh
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
This turns on the local helper scripts for context suggestions and error analysis. It does not install any AI tools.
|
|
13
|
+
|
|
14
|
+
## Steering Patterns
|
|
15
|
+
|
|
16
|
+
Patterns in `~/.dotfiles/dot_config/ai/patterns/` add focused context to AI requests.
|
|
17
|
+
|
|
18
|
+
- **Architect** — shell setup and stack tuning
|
|
19
|
+
- **Hardener** — security, encryption, and compliance
|
|
20
|
+
- **Refactor** — POSIX compatibility, performance, and linting
|
|
21
|
+
|
|
22
|
+
### Contextual Bridge
|
|
23
|
+
|
|
24
|
+
Use the `dot` CLI to run AI tools with added context:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# General usage
|
|
28
|
+
dot cl|copilot|gemini|kiro|sgpt|ollama|opencode|aider|autohand|vibe|qwen|zai --pattern <name> "prompt"
|
|
29
|
+
|
|
30
|
+
# Quick aliases
|
|
31
|
+
dcla "Optimize my zshrc" # Claude + Architect
|
|
32
|
+
dgmnh "Audit my ssh config" # Gemini + Hardener
|
|
33
|
+
dkir "Refactor this script" # Kiro + Refactorer
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The bridge adds system details (OS, architecture, date) to the prompt. This gives the AI the context it needs for accurate answers.
|
|
37
|
+
|
|
38
|
+
Supported bridge commands:
|
|
39
|
+
|
|
40
|
+
| Command | Provider |
|
|
41
|
+
|---------|----------|
|
|
42
|
+
| `dot cl` | Claude Code |
|
|
43
|
+
| `dot copilot` | GitHub Copilot CLI |
|
|
44
|
+
| `dot gemini` | Gemini CLI |
|
|
45
|
+
| `dot kiro` | Kiro CLI |
|
|
46
|
+
| `dot sgpt` | Shell-GPT |
|
|
47
|
+
| `dot ollama` | Ollama |
|
|
48
|
+
| `dot opencode` | OpenCode |
|
|
49
|
+
| `dot aider` | Aider |
|
|
50
|
+
| `dot autohand` | Autohand Code |
|
|
51
|
+
| `dot vibe` | Mistral Vibe |
|
|
52
|
+
| `dot qwen` | Qwen Code |
|
|
53
|
+
| `dot zai` | ZAI (Zhipu AI) |
|
|
54
|
+
|
|
55
|
+
### `dot ai` status and launcher
|
|
56
|
+
|
|
57
|
+
`dot ai` shows which AI CLIs are installed, grouped by category. If `gum` is available, it also opens a quick launcher.
|
|
58
|
+
|
|
59
|
+
Current categories:
|
|
60
|
+
|
|
61
|
+
- Agents (autonomous)
|
|
62
|
+
- Coding (interactive)
|
|
63
|
+
- General (prompt-based)
|
|
64
|
+
- Runtime (local)
|
|
65
|
+
- Cloud (platform)
|
|
66
|
+
|
|
67
|
+
The launcher is simple and fast. It shows short role labels like `agent`, `coding`, `general`, `local`, and `cloud` so you can pick quickly.
|
|
68
|
+
|
|
69
|
+
To stay fast, `dot ai` caches provider info in `~/.cache/dotfiles/ai/status.tsv` for 5 minutes. You can change this with `DOTFILES_AI_STATUS_TTL`.
|
|
70
|
+
|
|
71
|
+
Related AI commands:
|
|
72
|
+
|
|
73
|
+
- `dot ai` — check status and launch tools
|
|
74
|
+
- `dot ai-setup` — set up AI CLIs step by step
|
|
75
|
+
- `dot ai-query` — run context-aware queries on the dotfiles repo
|
|
76
|
+
|
|
77
|
+
## Optional AI CLI tools
|
|
78
|
+
|
|
79
|
+
These tools are not installed for you. Pick and install only the ones you want:
|
|
80
|
+
|
|
81
|
+
- **Agents**: `claude`, `copilot`
|
|
82
|
+
- **Coding assistants**: `aider`, `opencode`
|
|
83
|
+
- **General AI**: `gemini`, `sgpt`
|
|
84
|
+
- **Local-first**: `ollama`
|
|
85
|
+
- **Coding agents**: `autohand`, `vibe`, `qwen`, `zai`
|
|
86
|
+
- **Cloud / platform**: `kiro-cli`
|
|
87
|
+
|
|
88
|
+
Once installed, the dotfiles add helper functions and shortcuts. These only load when `DOTFILES_AI=1` is set.
|
|
89
|
+
|
|
90
|
+
## Agentic terminal workflows
|
|
91
|
+
|
|
92
|
+
If your terminal has built-in AI agents, keep your shell lean and fast:
|
|
93
|
+
|
|
94
|
+
- Use `DOTFILES_FAST=1` or `DOTFILES_ULTRA_FAST=1`.
|
|
95
|
+
- Let the terminal handle agents and its own UI.
|
|
96
|
+
- Keep dotfiles focused on consistency, safety, and clean repeats.
|
|
97
|
+
|
|
98
|
+
## Privacy and safety
|
|
99
|
+
|
|
100
|
+
- No AI tools are installed for you.
|
|
101
|
+
- No background services run by default.
|
|
102
|
+
- You control AI helpers with `DOTFILES_AI=1`.
|
package/docs/COPYRIGHT
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.
|
|
2
|
+
* 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.500) - <https://github.com/sebastienrousseau/dotfiles>
|
|
3
3
|
* Made With ❤️ in London, United Kingdom
|
|
4
|
-
* Designed by
|
|
4
|
+
* Designed by
|
|
5
5
|
* Copyright (c) 2015-2026. All rights reserved.
|
|
6
6
|
* License: MIT
|
|
7
7
|
*/
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Naming Conventions & Standardization Guide
|
|
2
|
+
|
|
3
|
+
This document defines the naming conventions for all files in the dotfiles repository.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## File Naming
|
|
8
|
+
|
|
9
|
+
| Context | Convention | Example |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| Run scripts | `run_{type}_{NN}-{verb}-{noun}.sh.tmpl` | `run_onchange_10-install-packages.sh.tmpl` |
|
|
12
|
+
| Shell fragments | `{NN}-{domain}-{detail}.sh.tmpl` | `90-ux-aliases.sh.tmpl` |
|
|
13
|
+
| Alias files | `{tool}.aliases.sh` | `git.aliases.sh` |
|
|
14
|
+
| Function files | `{name}.sh` (lowercase) | `apihealth.sh` |
|
|
15
|
+
| Test files | `test_{domain}_{feature}.sh` | `test_aliases_git.sh` |
|
|
16
|
+
| Scripts | `{verb}-{noun}.sh` (hyphenated) | `install-nerd-fonts.sh` |
|
|
17
|
+
|
|
18
|
+
## Run Script Numbering Tiers
|
|
19
|
+
|
|
20
|
+
| Range | Category | Examples |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| 00-09 | Audit & pre-flight | `run_before_00-audit.sh` |
|
|
23
|
+
| 10-19 | Package installation | `run_onchange_10-linux-packages.sh.tmpl` |
|
|
24
|
+
| 20-29 | Config & languages | `run_onchange_20-ghostty-config.sh.tmpl` |
|
|
25
|
+
| 25-29 | Language toolchains | `run_onchange_25-python-tools.sh.tmpl` |
|
|
26
|
+
| 30-39 | Applications | `run_onchange_30-vscode-extensions.sh.tmpl` |
|
|
27
|
+
| 40-49 | System defaults | `run_onchange_40-darwin-default-apps.sh.tmpl` |
|
|
28
|
+
| 50-59 | Assets (fonts, themes) | `run_onchange_50-install-fonts.sh.tmpl` |
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Adding New Modules
|
|
33
|
+
|
|
34
|
+
### New app config
|
|
35
|
+
|
|
36
|
+
1. Create `dot_config/<app>/` with chezmoi-compatible filenames
|
|
37
|
+
2. Add entry to `dot_config/.module-manifest.json`
|
|
38
|
+
3. Optionally gate with feature flag in `.chezmoidata.toml` + `.chezmoiignore.tmpl`
|
|
39
|
+
|
|
40
|
+
### New alias category
|
|
41
|
+
|
|
42
|
+
1. Create `.chezmoitemplates/aliases/<category>/<name>.aliases.sh`
|
|
43
|
+
2. The `**/*.aliases.sh` glob auto-discovers it
|
|
44
|
+
3. Add to `$coreCategories` list in `90-ux-aliases.sh.tmpl` for eager loading; otherwise it loads lazily
|
|
45
|
+
|
|
46
|
+
### New function
|
|
47
|
+
|
|
48
|
+
1. Create file in `.chezmoitemplates/functions/<group>/`
|
|
49
|
+
2. Add to `groups.json` with the `<group>/<filename>` path
|
|
50
|
+
3. It auto-registers for lazy loading via `51-logic-functions-extra.sh.tmpl`
|
|
51
|
+
|
|
52
|
+
### New provisioning script
|
|
53
|
+
|
|
54
|
+
1. Create `install/provision/run_onchange_{NN}-{name}.sh.tmpl`
|
|
55
|
+
2. Use the numbering tiers above
|
|
56
|
+
3. Source `install/lib/os_detection.sh` for platform detection
|
|
57
|
+
4. Guard OS-specific code with `{{ if eq .chezmoi.os "darwin" }}`
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Directory Structure Overview
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
.chezmoitemplates/
|
|
65
|
+
aliases/ # 48 categories, auto-discovered
|
|
66
|
+
functions/ # Grouped by domain (api/, curl/, text/, system/, etc.)
|
|
67
|
+
paths/ # PATH construction templates
|
|
68
|
+
desktop/ # Desktop environment templates (dconf)
|
|
69
|
+
|
|
70
|
+
dot_config/ # Flat — chezmoi constraint, no intermediate grouping
|
|
71
|
+
|
|
72
|
+
install/
|
|
73
|
+
lib/ # Shared helpers (os_detection, logging, installers)
|
|
74
|
+
provision/ # run_onchange_* provisioning scripts
|
|
75
|
+
|
|
76
|
+
scripts/ # Repo-only scripts (not deployed)
|
|
77
|
+
dot/ # dot CLI subcommands
|
|
78
|
+
ops/ # Operations scripts
|
|
79
|
+
diagnostics/ # Health checks
|
|
80
|
+
security/ # Security tools
|
|
81
|
+
...
|
|
82
|
+
|
|
83
|
+
tests/ # Test suite (not deployed)
|
|
84
|
+
framework/ # Test runner, assertions, mocks
|
|
85
|
+
unit/ # Domain-organized unit tests
|
|
86
|
+
integration/ # End-to-end tests
|
|
87
|
+
performance/ # Benchmarks
|
|
88
|
+
|
|
89
|
+
docs/ # Documentation and GitHub Pages source
|
|
90
|
+
architecture/ # System design docs
|
|
91
|
+
guides/ # How-to guides
|
|
92
|
+
reference/ # Reference material
|
|
93
|
+
security/ # Security documentation
|
|
94
|
+
operations/ # Ops and maintenance docs
|
|
95
|
+
```
|
package/docs/README.md
CHANGED
|
@@ -1,269 +1,78 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Documentation
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Start here. Then go deeper.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## The Manual
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The complete reference is the `.dotfiles` Manual — a multi-format book covering every concept, tutorial, reference, and recipe.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- Online: <https://sebastienrousseau.github.io/dotfiles/manual/> (HTML, PDF, EPUB, ASCII)
|
|
10
|
+
- Locally: `dot manual` opens the HTML in your browser
|
|
11
|
+
- Sources: [`docs/manual/`](manual/)
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
Quick jumps into the Manual:
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
- [Introduction](manual/00-introduction.md) — who, what, how
|
|
16
|
+
- [Concepts](manual/01-concepts/) — architecture, trust model, theme engine, fleet, self-healing
|
|
17
|
+
- [Tutorials](manual/02-tutorials/) — first install, wallpaper→theme, profiles, secrets, fleet
|
|
18
|
+
- [Reference](manual/03-reference/) — CLI, config files, environment, templates, feature flags
|
|
19
|
+
- [Cookbook](manual/04-cookbook/) — 40+ recipes, troubleshooting, FAQ
|
|
14
20
|
|
|
15
|
-
|
|
21
|
+
## Start
|
|
16
22
|
|
|
17
|
-
|
|
23
|
+
- [Install](guides/INSTALL.md)
|
|
24
|
+
- [Troubleshooting](guides/TROUBLESHOOTING.md)
|
|
25
|
+
- [Support matrix](reference/SUPPORT_MATRIX.md)
|
|
18
26
|
|
|
19
|
-
|
|
20
|
-
|---------|-------------|
|
|
21
|
-
| 🚀 **Fast Shell** | Zsh with lazy loading, <500ms startup |
|
|
22
|
-
| 🔧 **Modern Tools** | Neovim, tmux, starship, fzf, ripgrep |
|
|
23
|
-
| 🔐 **Security First** | Encrypted secrets, credential management |
|
|
24
|
-
| 🎨 **Beautiful UI** | Nerd Fonts, themes, consistent styling |
|
|
25
|
-
| 📦 **Cross-Platform** | macOS, Linux, WSL2 support |
|
|
27
|
+
## Daily use
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
- [Utilities and `dot` CLI](reference/UTILS.md)
|
|
30
|
+
- [Operations](operations/OPERATIONS.md)
|
|
31
|
+
- [Trusted agent workstation](operations/TRUSTED_AGENT_WORKSTATION.md)
|
|
32
|
+
- [Workstation attestation](operations/ATTESTATION.md)
|
|
33
|
+
- [Interoperability](architecture/INTEROP.md)
|
|
34
|
+
- [Agent interoperability](interop/A2A.md)
|
|
35
|
+
- [AI integrations](AI.md)
|
|
28
36
|
|
|
29
|
-
##
|
|
37
|
+
## Security and trust
|
|
30
38
|
|
|
31
|
-
|
|
32
|
-
- [
|
|
33
|
-
- [
|
|
34
|
-
- [
|
|
39
|
+
- [Security overview](security/SECURITY.md)
|
|
40
|
+
- [Security checklist](security/SECURITY_CHECKLIST.md)
|
|
41
|
+
- [Policy bundle releases](security/POLICY_RELEASES.md)
|
|
42
|
+
- [Secrets](security/SECRETS.md)
|
|
43
|
+
- [Compliance](security/COMPLIANCE.md)
|
|
44
|
+
- [Threat model](security/THREAT_MODEL.md)
|
|
35
45
|
|
|
36
|
-
|
|
37
|
-
- [Architecture](ARCHITECTURE.md) — System design and structure
|
|
38
|
-
- [Operations Guide](OPERATIONS.md) — Daily usage and maintenance
|
|
39
|
-
- [Troubleshooting](TROUBLESHOOTING.md) — Common issues and solutions
|
|
46
|
+
## Build and maintain
|
|
40
47
|
|
|
41
|
-
|
|
42
|
-
- [
|
|
43
|
-
- [
|
|
44
|
-
- [
|
|
45
|
-
- [
|
|
48
|
+
- [Testing](operations/TESTING.md)
|
|
49
|
+
- [Reliability](operations/RELIABILITY.md)
|
|
50
|
+
- [Naming conventions](NAMING_CONVENTIONS.md)
|
|
51
|
+
- [Architecture](architecture/ARCHITECTURE.md)
|
|
52
|
+
- [Repository layout](architecture/REPO_LAYOUT.md)
|
|
53
|
+
- [Architecture decisions](adr/README.md)
|
|
46
54
|
|
|
47
|
-
|
|
48
|
-
- [Fonts Guide](FONTS.md) — Nerd Fonts installation
|
|
49
|
-
- [Screenshots](SCREENSHOTS.md) — Visual gallery
|
|
50
|
-
- [Neovim IDE Guide](NEOVIM_IDE_GUIDE.md) — Editor configuration
|
|
55
|
+
## Repository map
|
|
51
56
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
57
|
+
| Path | Purpose |
|
|
58
|
+
| :--- | :--- |
|
|
59
|
+
| `docs/` | Guides, reference, security, and architecture |
|
|
60
|
+
| `scripts/` | Repo-only scripts and `dot` command internals |
|
|
61
|
+
| `install/` | Installer and provisioning helpers |
|
|
62
|
+
| `dot_config/` | Managed user configuration files |
|
|
63
|
+
| `dot_local/` | Managed local executables |
|
|
64
|
+
| `examples/` | Executable examples |
|
|
65
|
+
| `tests/` | Unit, integration, and framework coverage |
|
|
56
66
|
|
|
57
|
-
|
|
58
|
-
- [Testing Guide](TESTING.md) — Test framework and coverage
|
|
59
|
-
- [Compliance](COMPLIANCE.md) — Standards and policies
|
|
60
|
-
- [Architecture Decisions](adr/) — ADRs for key decisions
|
|
67
|
+
## Platform guides
|
|
61
68
|
|
|
62
|
-
|
|
63
|
-
- [
|
|
69
|
+
- [WSL2 and Nix](guides/WSL2_NIX_TROUBLESHOOTING.md)
|
|
70
|
+
- [Neovim IDE](guides/NEOVIM_IDE_GUIDE.md)
|
|
64
71
|
|
|
65
|
-
|
|
66
|
-
- [Roadmap](ROADMAP.md) — Future plans and priorities
|
|
67
|
-
- [Legacy Roadmap](LEGACY_ROADMAP.md) — Historical context
|
|
72
|
+
## Reference
|
|
68
73
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
- macOS 12+, Ubuntu 22.04+, or Windows 11 with WSL2
|
|
76
|
-
- Git 2.30+
|
|
77
|
-
- curl or wget
|
|
78
|
-
|
|
79
|
-
### Installation
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
# One-line install
|
|
83
|
-
curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh | bash
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Or clone and install manually:
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
git clone https://github.com/sebastienrousseau/dotfiles.git ~/.dotfiles
|
|
90
|
-
cd ~/.dotfiles && ./install.sh
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### First Steps
|
|
94
|
-
|
|
95
|
-
After installation, run these commands to explore:
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
dot help # Show all available commands
|
|
99
|
-
dot doctor # Check system health
|
|
100
|
-
dot learn # Interactive tour
|
|
101
|
-
dot keys # View keybindings
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Features
|
|
107
|
-
|
|
108
|
-
### Shell Environment
|
|
109
|
-
|
|
110
|
-
The shell configuration provides a fast, feature-rich experience:
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
114
|
-
│ Startup Time: <500ms │ Plugin Manager: Zinit │
|
|
115
|
-
│ Prompt: Starship │ Completions: Lazy-loaded │
|
|
116
|
-
│ History: Shared │ Syntax: fast-syntax-highlighting │
|
|
117
|
-
└─────────────────────────────────────────────────────────────┘
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
**Key Features:**
|
|
121
|
-
- Intelligent command suggestions with autosuggestions
|
|
122
|
-
- Fuzzy finding with fzf for files, history, and git
|
|
123
|
-
- Git integration with delta for beautiful diffs
|
|
124
|
-
- Directory jumping with zoxide
|
|
125
|
-
|
|
126
|
-
### Development Tools
|
|
127
|
-
|
|
128
|
-
Pre-configured toolchains for modern development:
|
|
129
|
-
|
|
130
|
-
| Language | Tools |
|
|
131
|
-
|----------|-------|
|
|
132
|
-
| **Rust** | rustup, cargo, clippy, rustfmt |
|
|
133
|
-
| **Go** | go, golangci-lint |
|
|
134
|
-
| **Node.js** | nvm, npm, pnpm |
|
|
135
|
-
| **Python** | pyenv, pipx, uv |
|
|
136
|
-
|
|
137
|
-
### AI Integration
|
|
138
|
-
|
|
139
|
-
Built-in support for AI coding assistants:
|
|
140
|
-
|
|
141
|
-
- **aider** — AI pair programming
|
|
142
|
-
- **Claude** — Anthropic's assistant
|
|
143
|
-
- **GitHub Copilot** — Code suggestions
|
|
144
|
-
- **git-ai-commit** — AI-powered commit messages
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Architecture
|
|
149
|
-
|
|
150
|
-
The dotfiles follow a modular architecture:
|
|
151
|
-
|
|
152
|
-
```
|
|
153
|
-
~/.dotfiles/
|
|
154
|
-
├── dot_config/ # XDG config files
|
|
155
|
-
│ ├── nvim/ # Neovim configuration
|
|
156
|
-
│ ├── zsh/ # Zsh configuration layers
|
|
157
|
-
│ └── git/ # Git configuration
|
|
158
|
-
├── dot_local/bin/ # User scripts and tools
|
|
159
|
-
├── install/ # Installation scripts
|
|
160
|
-
│ └── provision/ # Tool provisioning
|
|
161
|
-
├── scripts/ # Operational scripts
|
|
162
|
-
│ ├── dot/commands/ # CLI command modules
|
|
163
|
-
│ ├── diagnostics/ # Health checks
|
|
164
|
-
│ ├── security/ # Security tools
|
|
165
|
-
│ └── tuning/ # Performance tuning
|
|
166
|
-
└── docs/ # Documentation (you are here)
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### Shell Layer System
|
|
170
|
-
|
|
171
|
-
Zsh configuration uses numbered layers for predictable loading:
|
|
172
|
-
|
|
173
|
-
| Range | Purpose | Examples |
|
|
174
|
-
|-------|---------|----------|
|
|
175
|
-
| 00-19 | Core | Environment, history, options |
|
|
176
|
-
| 20-49 | Middleware | Zinit, completions, plugins |
|
|
177
|
-
| 50-89 | Toolchain | Languages, package managers |
|
|
178
|
-
| 90-99 | UX | Prompt, aliases, keybindings |
|
|
179
|
-
|
|
180
|
-
### CLI Architecture
|
|
181
|
-
|
|
182
|
-
The `dot` CLI uses modular command dispatch:
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
dot <command> [args]
|
|
186
|
-
│
|
|
187
|
-
├── core.sh # apply, sync, update, diff
|
|
188
|
-
├── diagnostics.sh # doctor, heal, benchmark
|
|
189
|
-
├── tools.sh # tools, new, packages
|
|
190
|
-
├── appearance.sh # theme, fonts, wallpaper
|
|
191
|
-
├── secrets.sh # secrets-init, secrets
|
|
192
|
-
├── security.sh # firewall, backup, encrypt
|
|
193
|
-
└── meta.sh # upgrade, docs, learn
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
## Security
|
|
199
|
-
|
|
200
|
-
Security is a core principle, not an afterthought.
|
|
201
|
-
|
|
202
|
-
### Secrets Management
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
dot secrets-init # Initialize age encryption
|
|
206
|
-
dot secrets # Edit encrypted secrets
|
|
207
|
-
dot ssh-key # Encrypt SSH keys
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
Secrets are encrypted with [age](https://age-encryption.org/) and never stored in plaintext.
|
|
211
|
-
|
|
212
|
-
### Credential Management
|
|
213
|
-
|
|
214
|
-
Supported credential stores:
|
|
215
|
-
- **macOS** — Keychain integration
|
|
216
|
-
- **Linux** — libsecret / GNOME Keyring
|
|
217
|
-
- **Git** — git-credential-manager
|
|
218
|
-
|
|
219
|
-
### Security Hardening (Opt-in)
|
|
220
|
-
|
|
221
|
-
```bash
|
|
222
|
-
dot firewall # Configure firewall rules
|
|
223
|
-
dot telemetry # Disable OS telemetry
|
|
224
|
-
dot dns-doh # Enable DNS-over-HTTPS
|
|
225
|
-
dot encrypt-check # Verify disk encryption
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
All security modifications require explicit consent.
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
## Contributing
|
|
233
|
-
|
|
234
|
-
We welcome contributions! Please see our guidelines:
|
|
235
|
-
|
|
236
|
-
1. **Fork** the repository
|
|
237
|
-
2. **Create** a feature branch
|
|
238
|
-
3. **Test** your changes with `dot doctor`
|
|
239
|
-
4. **Submit** a pull request
|
|
240
|
-
|
|
241
|
-
### Code Style
|
|
242
|
-
|
|
243
|
-
- Shell scripts: Follow ShellCheck recommendations
|
|
244
|
-
- Templates: Use `.chezmoitemplates/` for reusable logic
|
|
245
|
-
- Documentation: Use UPPERCASE.md naming convention
|
|
246
|
-
|
|
247
|
-
### Testing
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
./scripts/tests/framework/test_runner.sh # Unit tests
|
|
251
|
-
RUN_INTEGRATION=1 ./scripts/tests/framework/test_runner.sh # Integration
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
---
|
|
255
|
-
|
|
256
|
-
## Support
|
|
257
|
-
|
|
258
|
-
- **Issues**: [GitHub Issues](https://github.com/sebastienrousseau/dotfiles/issues)
|
|
259
|
-
- **Discussions**: [GitHub Discussions](https://github.com/sebastienrousseau/dotfiles/discussions)
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
<div align="center">
|
|
264
|
-
|
|
265
|
-
**[Back to Top](#dotfiles-documentation)**
|
|
266
|
-
|
|
267
|
-
Made with ❤️ by [Sebastien Rousseau](https://github.com/sebastienrousseau)
|
|
268
|
-
|
|
269
|
-
</div>
|
|
74
|
+
- [Features](reference/FEATURES.md)
|
|
75
|
+
- [Tools](reference/TOOLS.md)
|
|
76
|
+
- [Aliases](reference/ALIASES.md)
|
|
77
|
+
- [Roadmap](operations/ROADMAP.md)
|
|
78
|
+
- [Version sync](operations/VERSION_SYNC.md)
|
|
@@ -25,7 +25,7 @@ Use **Chezmoi as the core engine** with a **custom `dot` CLI wrapper** that:
|
|
|
25
25
|
|
|
26
26
|
### Architecture
|
|
27
27
|
|
|
28
|
-
```
|
|
28
|
+
```text
|
|
29
29
|
┌─────────────────────────────────────────────┐
|
|
30
30
|
│ dot CLI │
|
|
31
31
|
│ (User-friendly interface, custom commands) │
|
|
@@ -57,7 +57,7 @@ Use **Chezmoi as the core engine** with a **custom `dot` CLI wrapper** that:
|
|
|
57
57
|
- Consistent help and error messages
|
|
58
58
|
|
|
59
59
|
**3. Modular command structure:**
|
|
60
|
-
```
|
|
60
|
+
```text
|
|
61
61
|
scripts/dot/
|
|
62
62
|
├── lib/
|
|
63
63
|
│ └── utils.sh # Shared functions
|
|
@@ -30,7 +30,7 @@ Use **Zsh** as the default interactive shell with **Zinit** as the plugin manage
|
|
|
30
30
|
|
|
31
31
|
1. **Default on macOS**: Pre-installed since Catalina
|
|
32
32
|
2. **Plugin Ecosystem**: Massive library of plugins and themes
|
|
33
|
-
3. **Compatibility**: POSIX-compatible,
|
|
33
|
+
3. **Compatibility**: POSIX-compatible, smooth migration from bash
|
|
34
34
|
4. **Completion System**: Superior tab completion
|
|
35
35
|
5. **Customization**: Highly configurable prompt and behavior
|
|
36
36
|
6. **Community**: Large community, well-documented
|
|
@@ -54,7 +54,7 @@ Zinit provides:
|
|
|
54
54
|
|
|
55
55
|
### Shell Layer System
|
|
56
56
|
|
|
57
|
-
```
|
|
57
|
+
```text
|
|
58
58
|
dot_config/zsh/rc.d/
|
|
59
59
|
├── 00-10: Core (env, history, options)
|
|
60
60
|
├── 20-49: Middleware (zinit, completions)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# ADR-007: Multi-Shell Parity Strategy
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Accepted
|
|
6
|
+
|
|
7
|
+
## Date
|
|
8
|
+
|
|
9
|
+
2026-03-08
|
|
10
|
+
|
|
11
|
+
## Context
|
|
12
|
+
|
|
13
|
+
The dotfiles distribution supports three shells: Zsh (default since macOS Catalina), Fish (modern interactive shell), and Nushell (structured data shell). The codebase has 98 alias files and 52+ functions written in POSIX/Bash. Without a parity strategy, each shell gets a fragmented subset of functionality.
|
|
14
|
+
|
|
15
|
+
**Problem:** Fish had zero access to the alias/function library until v0.2.500 added bridge templates. Nushell had only 6 hardcoded aliases and no function access.
|
|
16
|
+
|
|
17
|
+
**Constraints:**
|
|
18
|
+
- Nushell's `source` is parse-time evaluated (no dynamic sourcing)
|
|
19
|
+
- Fish syntax differs significantly from POSIX (no `$()`, different `if`, no `[[`)
|
|
20
|
+
- Maintaining N copies of every alias/function is unsustainable
|
|
21
|
+
|
|
22
|
+
## Decision
|
|
23
|
+
|
|
24
|
+
Adopt a **hub-and-spoke bridge architecture**:
|
|
25
|
+
|
|
26
|
+
1. **Hub:** Canonical definitions live in `.chezmoitemplates/aliases/` (Bash/POSIX) and `.chezmoitemplates/functions/` (Bash)
|
|
27
|
+
2. **Bash/Zsh spoke:** Direct inclusion via `90-ux-aliases.sh.tmpl` and `50-logic-functions.sh.tmpl`
|
|
28
|
+
3. **Fish spoke:** Runtime bash bridge with caching (`aliases.fish.tmpl`, `functions.fish.tmpl`)
|
|
29
|
+
4. **Nushell spoke:** Hybrid approach:
|
|
30
|
+
- Aliases: Runtime bash extraction cached to `~/.cache/nushell/bash-aliases.nu` (in `env.nu.tmpl`), sourced by `aliases.nu.tmpl`
|
|
31
|
+
- Functions: Chezmoi template-generated `def` wrappers delegating to bash (in `functions.nu.tmpl`)
|
|
32
|
+
|
|
33
|
+
**Parity tiers:**
|
|
34
|
+
- **Tier 1 (Full):** Zsh, Bash — all aliases, functions, lazy loading, cached eval
|
|
35
|
+
- **Tier 2 (Bridged):** Fish — all simple aliases, all functions via wrappers, `_cached_eval` caching
|
|
36
|
+
- **Tier 3 (Compatible):** Nushell — simple aliases (no complex bash syntax), all functions via bash delegation
|
|
37
|
+
|
|
38
|
+
## Consequences
|
|
39
|
+
|
|
40
|
+
### Positive
|
|
41
|
+
- Single source of truth for aliases and functions
|
|
42
|
+
- Adding a new alias/function automatically propagates to all shells
|
|
43
|
+
- Nushell users get access to 40+ functions that were previously unavailable
|
|
44
|
+
- Fish users get mtime-aware caching via `_cached_eval`
|
|
45
|
+
|
|
46
|
+
### Negative
|
|
47
|
+
- Complex bash aliases (pipes, conditionals) are skipped for Nushell
|
|
48
|
+
- Function calls in Fish/Nushell incur bash subprocess overhead (~5ms per call)
|
|
49
|
+
- Cache invalidation requires shell restart or manual cache clear
|
|
50
|
+
|
|
51
|
+
### Risks
|
|
52
|
+
- Nushell's rapid development may break bridge syntax in future versions
|
|
53
|
+
- Very large alias sets may slow Nushell startup during cache generation
|