@sebastienrousseau/dotfiles 0.2.502 → 0.2.503
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 +83 -9
- package/LICENSE +21 -1283
- package/README.md +5 -3
- package/docs/CONFIG_STRATEGY.md +124 -0
- package/docs/COPYRIGHT +1 -1
- package/docs/GOVERNANCE.md +98 -0
- package/docs/MAINTAINERS.md +41 -0
- package/docs/OPENCODE.md +127 -0
- package/docs/README.md +2 -0
- package/docs/STRUCTURE.md +102 -0
- package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
- package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
- package/docs/architecture/REPO_LAYOUT.md +8 -8
- package/docs/archive/MILESTONE_v0.2.493.md +1 -1
- package/docs/index.md +2 -2
- package/docs/interop/POWERSHELL.md +1 -1
- package/docs/manual/00-introduction.md +1 -1
- package/docs/manual/01-concepts/02-trust-model.md +1 -1
- package/docs/manual/03-reference/02-config-files.md +2 -2
- package/docs/manual/_toc.yml +1 -1
- package/docs/manual/command-index.md +72 -59
- package/docs/operations/CI_COMPOSITES.md +2 -2
- package/docs/operations/COMPLETIONS.md +2 -2
- package/docs/operations/COVERAGE.md +5 -5
- package/docs/operations/HARD_AUDIT_2026.md +11 -11
- package/docs/operations/MAINTENANCE.md +3 -3
- package/docs/operations/MANIFEST.md +127 -0
- package/docs/operations/RELEASE_PIPELINE.md +130 -0
- package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
- package/docs/operations/ROADMAP_2026.md +6 -6
- package/docs/operations/ROADMAP_V0_2_503.md +134 -0
- package/docs/operations/TESTING.md +17 -0
- package/docs/operations/TRACEABILITY.md +6 -3
- package/docs/operations/VERSION_SYNC.md +4 -4
- package/docs/reference/POWERSHELL_PARITY.md +8 -7
- package/docs/schema/dot-env-v1.json +110 -0
- package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
- package/docs/security/CI_PINNING.md +17 -9
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
- package/docs/security/FUZZING.md +114 -0
- package/docs/security/INSTALL_VERIFICATION.md +2 -2
- package/docs/security/POLICY_RELEASES.md +2 -2
- package/docs/security/SCORECARD.md +58 -3
- package/docs/security/SHELL_EXEMPTIONS.md +4 -4
- package/docs/security/VERIFY_RELEASE.md +201 -0
- package/install.sh +27 -5
- package/package.json +1 -1
- package/scripts/README.md +123 -0
- package/scripts/ci/check-copyright-headers.sh +4 -93
- package/scripts/ci/check-shell-preamble.sh +4 -103
- package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
- package/scripts/diagnostics/a2a-conformance.sh +4 -4
- package/scripts/diagnostics/alias-governance.sh +1 -1
- package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
- package/scripts/diagnostics/benchmark.sh +4 -4
- package/scripts/diagnostics/conflicts.sh +2 -2
- package/scripts/diagnostics/doctor-unified.sh +2 -2
- package/scripts/diagnostics/doctor.sh +10 -10
- package/scripts/diagnostics/drift-dashboard.sh +2 -2
- package/scripts/diagnostics/health.sh +4 -4
- package/scripts/diagnostics/history-analysis.sh +2 -2
- package/scripts/diagnostics/mcp-doctor.sh +10 -7
- package/scripts/diagnostics/perf.sh +4 -4
- package/scripts/diagnostics/scorecard.sh +4 -4
- package/scripts/diagnostics/security-score.sh +2 -2
- package/scripts/diagnostics/smoke-test.sh +2 -2
- package/scripts/diagnostics/snapshot.sh +2 -2
- package/scripts/diagnostics/verify.sh +4 -4
- package/scripts/diagnostics/version-locks.sh +2 -2
- package/scripts/diagnostics/workstation-attestation.sh +14 -14
- package/scripts/dot/commands/agent.sh +8 -0
- package/scripts/dot/commands/agents.sh +14 -4
- package/scripts/dot/commands/ai.sh +144 -25
- package/scripts/dot/commands/appearance.sh +2 -2
- package/scripts/dot/commands/core.sh +2 -2
- package/scripts/dot/commands/diagnostics.sh +5 -5
- package/scripts/dot/commands/env-emit.sh +202 -0
- package/scripts/dot/commands/fleet.sh +12 -11
- package/scripts/dot/commands/init.sh +4 -4
- package/scripts/dot/commands/lint.sh +9 -4
- package/scripts/dot/commands/manual.sh +3 -3
- package/scripts/dot/commands/meta.sh +12 -6
- package/scripts/dot/commands/patterns.sh +2 -2
- package/scripts/dot/commands/registry.sh +4 -4
- package/scripts/dot/commands/restore.sh +4 -4
- package/scripts/dot/commands/secrets.sh +4 -3
- package/scripts/dot/commands/security.sh +2 -2
- package/scripts/dot/commands/tools.sh +13 -3
- package/scripts/dot/powershell/Dot.psm1 +199 -0
- package/scripts/fonts/install-nerd-fonts.sh +2 -2
- package/scripts/git-hooks/pre-commit-audit.sh +2 -2
- package/scripts/git-hooks/pre-push +13 -0
- package/scripts/ops/ai-setup.sh +1 -1
- package/scripts/ops/bundle.sh +2 -2
- package/scripts/ops/chaos.sh +2 -2
- package/scripts/ops/chezmoi-apply.sh +4 -4
- package/scripts/ops/heal.sh +4 -4
- package/scripts/ops/post-apply-repair.sh +2 -2
- package/scripts/ops/prewarm.sh +2 -2
- package/scripts/ops/release.sh +4 -4
- package/scripts/ops/rollback.sh +4 -4
- package/scripts/ops/setup.sh +2 -2
- package/scripts/qa/check-version-consistency.sh +123 -0
- package/scripts/qa/coverage-baseline.sh +1 -1
- package/scripts/qa/docs-coverage.sh +2 -2
- package/scripts/qa/powershell-contract.ps1 +1 -1
- package/scripts/qa/scorecard-snapshot.sh +127 -0
- package/scripts/security/backup.sh +2 -2
- package/scripts/security/dns-doh.sh +4 -4
- package/scripts/security/encryption-check.sh +4 -4
- package/scripts/security/enforce-policies.sh +2 -2
- package/scripts/security/firewall.sh +4 -4
- package/scripts/security/lock-screen.sh +4 -4
- package/scripts/security/manage-secrets.sh +2 -2
- package/scripts/security/ssh-cert.sh +2 -2
- package/scripts/security/telemetry-kill.sh +4 -4
- package/scripts/security/usb-safety.sh +4 -4
- package/scripts/theme/extract-heic-frames.sh +114 -0
- package/scripts/theme/rebuild-themes.sh +8 -1
- package/scripts/theme/switch.sh +13 -6
- package/scripts/theme/wallpaper-sync.sh +297 -93
- package/scripts/tuning/linux.sh +2 -2
- package/scripts/tuning/macos.sh +2 -2
- package/scripts/version-sync.sh +55 -7
- package/dot_config/.module-manifest.json +0 -69
- package/dot_config/ai/identity.md +0 -23
- package/dot_config/ai/patterns/architect.md +0 -16
- package/dot_config/ai/patterns/hardener.md +0 -15
- package/dot_config/ai/patterns/refactor.md +0 -15
- package/dot_config/aider/aider.conf.yml +0 -32
- package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
- package/dot_config/ansible/ansible.cfg +0 -11
- package/dot_config/atuin/config.toml.tmpl +0 -47
- package/dot_config/bat/config +0 -23
- package/dot_config/brave-flags.conf.tmpl +0 -7
- package/dot_config/btop/btop.conf +0 -16
- package/dot_config/btop/themes/tokyonight.theme +0 -34
- package/dot_config/bun/bunfig.toml.tmpl +0 -33
- package/dot_config/claude/mcp_servers.json +0 -20
- package/dot_config/containers/containers.conf +0 -14
- package/dot_config/curl/dot_curlrc +0 -18
- package/dot_config/dlv/config.yml +0 -39
- package/dot_config/docker/config.json +0 -15
- package/dot_config/dotfiles/agent-card.json +0 -29
- package/dot_config/dotfiles/agent-profiles.json +0 -92
- package/dot_config/dotfiles/boot/README.md +0 -13
- package/dot_config/dotfiles/grub/README.md +0 -13
- package/dot_config/dotfiles/lock/README.md +0 -13
- package/dot_config/dotfiles/mcp-lock.json +0 -33
- package/dot_config/dotfiles/mcp-policy.json +0 -52
- package/dot_config/dotfiles/mcp-registry.json +0 -47
- package/dot_config/dotfiles/model-registry.json +0 -20
- package/dot_config/dotfiles/policy-bundles.json +0 -38
- package/dot_config/dotfiles/prompt-registry.json +0 -16
- package/dot_config/dotfiles/versions.env +0 -18
- package/dot_config/duf/duf.conf +0 -6
- package/dot_config/duti/defaults.duti +0 -5
- package/dot_config/emoji/emoji.txt +0 -34
- package/dot_config/environment.d/50-ssh-agent.conf +0 -2
- package/dot_config/environment.d/90-wayland.conf +0 -19
- package/dot_config/fastfetch/config.jsonc +0 -28
- package/dot_config/firefox/user.js.tmpl +0 -58
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
- package/dot_config/fish/completions/dot.fish.tmpl +0 -115
- package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
- package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
- package/dot_config/fish/conf.d/direnv.fish +0 -4
- package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
- package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
- package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
- package/dot_config/fish/conf.d/mise-activate.fish +0 -5
- package/dot_config/fish/config.fish.tmpl +0 -44
- package/dot_config/fish/fish_plugins +0 -1
- package/dot_config/fish/functions/_.fish +0 -3
- package/dot_config/fish/functions/_cached_eval.fish +0 -131
- package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
- package/dot_config/fish/functions/als.fish +0 -46
- package/dot_config/fish/functions/bg-upgrade.fish +0 -7
- package/dot_config/fish/functions/c.fish +0 -3
- package/dot_config/fish/functions/cat.fish +0 -9
- package/dot_config/fish/functions/d.fish +0 -7
- package/dot_config/fish/functions/dot.fish +0 -34
- package/dot_config/fish/functions/h.fish +0 -3
- package/dot_config/fish/functions/l.fish +0 -7
- package/dot_config/fish/functions/la.fish +0 -7
- package/dot_config/fish/functions/ll.fish +0 -7
- package/dot_config/fish/functions/log_error.fish +0 -13
- package/dot_config/fish/functions/log_info.fish +0 -13
- package/dot_config/fish/functions/lr.fish +0 -7
- package/dot_config/fish/functions/lra.fish +0 -7
- package/dot_config/fish/functions/ls.fish +0 -7
- package/dot_config/fish/functions/lt.fish +0 -7
- package/dot_config/fish/functions/lta.fish +0 -7
- package/dot_config/fish/functions/notify-run.fish +0 -11
- package/dot_config/fish/functions/q.fish +0 -3
- package/dot_config/fish/functions/silent-run.fish +0 -7
- package/dot_config/fish/functions/yy.fish +0 -8
- package/dot_config/flatpak/flatpak.list +0 -4
- package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
- package/dot_config/foot/foot.ini.tmpl +0 -33
- package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
- package/dot_config/fzf/fzf.zsh +0 -48
- package/dot_config/gem/gemrc +0 -9
- package/dot_config/gh/config.yml +0 -12
- package/dot_config/ghostty/config.tmpl +0 -165
- package/dot_config/git/allowed_signers.tmpl +0 -18
- package/dot_config/git/attributes +0 -12
- package/dot_config/git/commit-template +0 -10
- package/dot_config/git/hooks/executable_commit-msg +0 -146
- package/dot_config/git/ignore +0 -27
- package/dot_config/gnupg/gpg-agent.conf +0 -11
- package/dot_config/go/golangci.yml +0 -118
- package/dot_config/go/gopls.json +0 -30
- package/dot_config/goose/config.yaml +0 -29
- package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
- package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
- package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
- package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
- package/dot_config/htop/htoprc +0 -20
- package/dot_config/inputrc +0 -2
- package/dot_config/ipython/profile_default/ipython_config.py +0 -19
- package/dot_config/just/justfile +0 -122
- package/dot_config/k9s/config.yaml +0 -65
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
- package/dot_config/kanshi/config.tmpl +0 -22
- package/dot_config/karabiner/karabiner.json +0 -14
- package/dot_config/kitty/kitty.conf.tmpl +0 -53
- package/dot_config/lazydocker/config.yml +0 -186
- package/dot_config/lazygit/config.yml +0 -35
- package/dot_config/mako/config +0 -47
- package/dot_config/mas/masapps.txt +0 -5
- package/dot_config/micro/settings.json +0 -3
- package/dot_config/mimeapps.list +0 -77
- package/dot_config/minikube/config.json +0 -13
- package/dot_config/mise/config.toml +0 -99
- package/dot_config/mongosh/mongoshrc.js +0 -68
- package/dot_config/mpv/input.conf +0 -47
- package/dot_config/mpv/mpv.conf +0 -47
- package/dot_config/mycli/myclirc +0 -67
- package/dot_config/nano/nanorc +0 -28
- package/dot_config/ncdu/config +0 -12
- package/dot_config/niri/config.kdl.tmpl +0 -327
- package/dot_config/nushell/aliases.nu +0 -18
- package/dot_config/nushell/cached_eval.nu +0 -80
- package/dot_config/nushell/completions.nu.tmpl +0 -52
- package/dot_config/nushell/config.nu.tmpl +0 -86
- package/dot_config/nushell/env.nu.tmpl +0 -102
- package/dot_config/nushell/functions.nu.tmpl +0 -17
- package/dot_config/nvim/init.lua +0 -18
- package/dot_config/nvim/lazy-lock.json +0 -58
- package/dot_config/nvim/lua/config/autocmds.lua +0 -107
- package/dot_config/nvim/lua/config/keymaps.lua +0 -92
- package/dot_config/nvim/lua/config/lazy.lua +0 -44
- package/dot_config/nvim/lua/config/options.lua +0 -49
- package/dot_config/nvim/lua/plugins/ai.lua +0 -75
- package/dot_config/nvim/lua/plugins/coding.lua +0 -216
- package/dot_config/nvim/lua/plugins/completion.lua +0 -60
- package/dot_config/nvim/lua/plugins/dap.lua +0 -412
- package/dot_config/nvim/lua/plugins/editor.lua +0 -55
- package/dot_config/nvim/lua/plugins/git.lua +0 -10
- package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
- package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
- package/dot_config/nvim/lua/plugins/rust.lua +0 -34
- package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
- package/dot_config/nvim/lua/plugins/ui.lua +0 -509
- package/dot_config/paru/paru.conf +0 -10
- package/dot_config/pip/pip.conf.tmpl +0 -32
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
- package/dot_config/pueue/pueue.yml +0 -34
- package/dot_config/pypoetry/config.toml +0 -6
- package/dot_config/pyrightconfig.json +0 -5
- package/dot_config/raycast/README.md +0 -13
- package/dot_config/redis/redisclirc +0 -41
- package/dot_config/ripgrep/ripgreprc +0 -21
- package/dot_config/shell/00-core-paths.sh.tmpl +0 -141
- package/dot_config/shell/05-core-safety.sh +0 -48
- package/dot_config/shell/10-secrets.sh +0 -41
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
- package/dot_config/shell/40-ls-colors.sh +0 -49
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
- package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
- package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
- package/dot_config/shell/Brewfile +0 -207
- package/dot_config/shell/Brewfile.cask +0 -92
- package/dot_config/shell/Brewfile.cli +0 -127
- package/dot_config/shell/README.md +0 -284
- package/dot_config/shell/als_data.txt.tmpl +0 -65
- package/dot_config/shell/custom/auto_ls.zsh +0 -20
- package/dot_config/shell/custom/context_suggest.zsh +0 -68
- package/dot_config/shell/custom/error_analysis.zsh +0 -45
- package/dot_config/sops/dot_sops.yaml +0 -23
- package/dot_config/starship.toml.tmpl +0 -202
- package/dot_config/swaylock/config +0 -43
- package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
- package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
- package/dot_config/systemd/user/pueued.service +0 -12
- package/dot_config/systemd/user/ssh-agent.service +0 -12
- package/dot_config/task/Taskfile.yml +0 -86
- package/dot_config/tflint/tflint.hcl +0 -9
- package/dot_config/tmux/tmux.conf.tmpl +0 -223
- package/dot_config/topgrade.toml.tmpl +0 -54
- package/dot_config/user-dirs.dirs +0 -10
- package/dot_config/vscode/extensions.txt +0 -11
- package/dot_config/vscode/settings.json.tmpl +0 -82
- package/dot_config/waybar/config.jsonc.tmpl +0 -90
- package/dot_config/waybar/style.css.tmpl +0 -211
- package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
- package/dot_config/wget/wgetrc +0 -12
- package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
- package/dot_config/yarn/yarnrc.yml +0 -36
- package/dot_config/yazi/keymap.toml +0 -67
- package/dot_config/yazi/theme.toml +0 -102
- package/dot_config/yazi/yazi.toml +0 -40
- package/dot_config/zathura/zathurarc +0 -52
- package/dot_config/zellij/config.kdl.tmpl +0 -79
- package/dot_config/zsh/dot_zprofile +0 -7
- package/dot_config/zsh/dot_zshenv +0 -5
- package/dot_config/zsh/dot_zshrc.tmpl +0 -688
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
- package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
- package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
- package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
- package/dot_local/bin/executable_ai-update +0 -195
- package/dot_local/bin/executable_ai_core +0 -152
- package/dot_local/bin/executable_antigravity +0 -11
- package/dot_local/bin/executable_b64 +0 -84
- package/dot_local/bin/executable_bm +0 -79
- package/dot_local/bin/executable_cb +0 -39
- package/dot_local/bin/executable_dot +0 -636
- package/dot_local/bin/executable_dot-ai +0 -36
- package/dot_local/bin/executable_dot-bootstrap +0 -76
- package/dot_local/bin/executable_dot-launch-or-focus +0 -52
- package/dot_local/bin/executable_dot-load-benchmark +0 -31
- package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
- package/dot_local/bin/executable_dot-theme-sync +0 -952
- package/dot_local/bin/executable_dot_completion +0 -57
- package/dot_local/bin/executable_dtags +0 -28
- package/dot_local/bin/executable_epoch +0 -67
- package/dot_local/bin/executable_extract +0 -41
- package/dot_local/bin/executable_gbd +0 -52
- package/dot_local/bin/executable_gd +0 -42
- package/dot_local/bin/executable_git-ai-commit +0 -175
- package/dot_local/bin/executable_git-ai-diff +0 -169
- package/dot_local/bin/executable_gl +0 -101
- package/dot_local/bin/executable_hash +0 -161
- package/dot_local/bin/executable_hashsum +0 -160
- package/dot_local/bin/executable_hex +0 -115
- package/dot_local/bin/executable_jsonv +0 -78
- package/dot_local/bin/executable_jwt +0 -94
- package/dot_local/bin/executable_kill-port +0 -75
- package/dot_local/bin/executable_lorem +0 -118
- package/dot_local/bin/executable_mkscript +0 -35
- package/dot_local/bin/executable_monitor +0 -56
- package/dot_local/bin/executable_myip +0 -51
- package/dot_local/bin/executable_notify +0 -24
- package/dot_local/bin/executable_open +0 -38
- package/dot_local/bin/executable_pw +0 -27
- package/dot_local/bin/executable_rec-start +0 -46
- package/dot_local/bin/executable_rec-stop +0 -35
- package/dot_local/bin/executable_regex +0 -132
- package/dot_local/bin/executable_start-niri +0 -8
- package/dot_local/bin/executable_tmux-sessionizer +0 -314
- package/dot_local/bin/executable_tour +0 -177
- package/dot_local/bin/executable_up +0 -23
- package/dot_local/bin/executable_update +0 -142
- package/dot_local/bin/executable_uuid +0 -87
- package/dot_local/bin/executable_win +0 -32
- package/dot_local/bin/executable_yamlv +0 -57
- package/dot_local/share/bash-completion/completions/dot +0 -72
- 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 +0 -149
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/dot_local/share/zsh/completions/_dot +0 -287
- package/scripts/ci/check-dangerous-chmod.sh +0 -19
- package/scripts/ci/check-deps-dev.sh +0 -236
- package/scripts/ci/check-insecure-tls.sh +0 -61
- package/scripts/ci/check-regression-traceability.sh +0 -67
- package/scripts/ci/dot-cli-startup-bench.sh +0 -126
- package/scripts/ci/install-chezmoi-verified.sh +0 -67
- package/scripts/ci/lint-reusable-pins.sh +0 -78
- package/scripts/ci/run-coverage.sh +0 -451
- package/scripts/ci/validate-chezmoidata.sh +0 -25
- package/scripts/ci/validate-ci-config.sh +0 -224
- package/scripts/ci/windows-smoke-test.ps1 +0 -136
- package/scripts/docs/build-manual.sh +0 -883
- package/scripts/docs/check-manual.sh +0 -213
- package/scripts/dot/lib/bento.sh +0 -50
- package/scripts/dot/lib/log.sh +0 -200
- package/scripts/dot/lib/platform.sh +0 -112
- package/scripts/dot/lib/ui.sh +0 -650
- package/scripts/dot/lib/utils.sh +0 -377
- package/scripts/maintenance/check-updates.sh +0 -131
- package/scripts/release/package-policy-bundles.sh +0 -125
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
# Dotfiles
|
|
2
|
-
|
|
3
|
-
Welcome to your universally compatible, high-performance dotfiles configuration, managed by [chezmoi](https://www.chezmoi.io/).
|
|
4
|
-
|
|
5
|
-
## Discover
|
|
6
|
-
|
|
7
|
-
- **Universal Support**: Works seamlessly on macOS, Linux (Ubuntu/Debian), and Windows (WSL).
|
|
8
|
-
- **Fast Startup**: Optimized with `zcompile` and lazy-loading. Benchmarks vary by machine; use `DOTFILES_FAST=1` for the quickest first prompt.
|
|
9
|
-
- **Modern Core**: Replaces legacy Unix tools with Rust-based alternatives:
|
|
10
|
-
- `eza` (ls)
|
|
11
|
-
- `bat` (cat)
|
|
12
|
-
- `ripgrep` (grep)
|
|
13
|
-
- `zoxide` (cd)
|
|
14
|
-
- `atuin` (history)
|
|
15
|
-
- `yazi` (files)
|
|
16
|
-
- `zellij` (multiplexer)
|
|
17
|
-
- **Starship Prompt**: A fast, customizable, cross-shell prompt.
|
|
18
|
-
- **Optimized Vim**: Vim settings are kept minimal and fast by default.
|
|
19
|
-
- **Modular Design**: Configuration is split into small, manageable templates.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Get started
|
|
24
|
-
|
|
25
|
-
### Install
|
|
26
|
-
|
|
27
|
-
To install these dotfiles on a new machine, run:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.502/install.sh)"
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
This command will:
|
|
34
|
-
|
|
35
|
-
1. Install `chezmoi`.
|
|
36
|
-
2. Clone this repository.
|
|
37
|
-
3. Install required packages (Homebrew/Apt).
|
|
38
|
-
4. Apply the configurations to your home directory.
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Keep it current
|
|
43
|
-
|
|
44
|
-
### macOS
|
|
45
|
-
|
|
46
|
-
Updates are handled via [Homebrew](https://brew.sh/).
|
|
47
|
-
|
|
48
|
-
1. Edit `~/.dotfiles/dot_config/shell/Brewfile.cli` and `~/.dotfiles/dot_config/shell/Brewfile.cask`.
|
|
49
|
-
2. Run `chezmoi apply`.
|
|
50
|
-
- This triggers `run_onchange_darwin_install-packages.sh.tmpl`, which runs `brew bundle` for CLI and GUI packages.
|
|
51
|
-
- Optional: `mas` installs App Store apps from `~/.config/mas/masapps.txt`.
|
|
52
|
-
- Optional: `duti` applies default app bindings from `~/.config/duti/defaults.duti`.
|
|
53
|
-
|
|
54
|
-
### VS Code extensions
|
|
55
|
-
|
|
56
|
-
1. Edit `~/.config/vscode/extensions.txt`.
|
|
57
|
-
2. Run `chezmoi apply` to install missing extensions (if `code` is available).
|
|
58
|
-
|
|
59
|
-
### Linux and WSL
|
|
60
|
-
|
|
61
|
-
Updates are handled via `apt-get` (Ubuntu/Debian).
|
|
62
|
-
|
|
63
|
-
1. Run `chezmoi apply`.
|
|
64
|
-
- This checks for package updates defined in `run_onchange_linux_install-packages.sh.tmpl`.
|
|
65
|
-
- Optional Flatpak list is read from `~/.config/flatpak/flatpak.list`.
|
|
66
|
-
|
|
67
|
-
### Vim plugins
|
|
68
|
-
|
|
69
|
-
1. Edit `~/.dotfiles/dot_vimrc`.
|
|
70
|
-
2. Run `chezmoi apply`.
|
|
71
|
-
- This automatically runs `vim +PlugInstall +PlugClean +qa`.
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## Migrate
|
|
76
|
-
|
|
77
|
-
If you are migrating from an old `~/.dotfiles` setup:
|
|
78
|
-
|
|
79
|
-
1. **Backup**:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
mv ~/.dotfiles ~/.dotfiles.legacy
|
|
83
|
-
cp ~/.zshrc ~/.zshrc.bak
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
2. **Initialize Chezmoi**:
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
git clone https://github.com/sebastienrousseau/dotfiles.git ~/.dotfiles
|
|
90
|
-
chezmoi apply
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
3. **Verify**:
|
|
94
|
-
- Restart your shell.
|
|
95
|
-
- Check that `~/.config/shell` exists (this is where the *generated* scripts live).
|
|
96
|
-
- Check that `~/.dotfiles` exists (this is the *source*).
|
|
97
|
-
|
|
98
|
-
4. **Clean Up**:
|
|
99
|
-
- Once verified, you can safely delete `~/.dotfiles.legacy` and `.zshrc.bak`.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## Structure
|
|
104
|
-
|
|
105
|
-
The configuration is managed in `~/.dotfiles`.
|
|
106
|
-
|
|
107
|
-
```text
|
|
108
|
-
~/.dotfiles/
|
|
109
|
-
├── dot_zshrc.tmpl # Main Zsh configuration (template)
|
|
110
|
-
├── dot_vimrc # Vim configuration
|
|
111
|
-
├── dot_tmux.conf # Tmux configuration
|
|
112
|
-
├── run_onchange_...sh.tmpl # Package installation scripts
|
|
113
|
-
├── dot_config/
|
|
114
|
-
│ ├── shell/ # Main Config Directory
|
|
115
|
-
│ │ ├── aliases.sh.tmpl # Generates aliases.sh (Modular)
|
|
116
|
-
│ │ ├── paths.sh.tmpl # Generates paths.sh (Monolithic)
|
|
117
|
-
│ │ └── functions.sh.tmpl # Generates functions.sh
|
|
118
|
-
│ └── starship.toml.tmpl # Starship configuration
|
|
119
|
-
└── .chezmoitemplates/ # Reusable Logic
|
|
120
|
-
├── aliases/ # Alias definitions (grouped by tool)
|
|
121
|
-
├── functions/ # Shell functions
|
|
122
|
-
└── paths/ # (Legacy) Path definitions
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Use it
|
|
126
|
-
|
|
127
|
-
### Apply changes
|
|
128
|
-
|
|
129
|
-
After editing any file in `~/.dotfiles`, apply the changes to your home directory:
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
chezmoi apply
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
To see what will change before applying:
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
chezmoi diff
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Dot CLI
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
dot apply # Apply dotfiles (chezmoi apply)
|
|
145
|
-
dot sync # Alias of apply
|
|
146
|
-
dot update # Pull latest changes and apply
|
|
147
|
-
dot diff # Show diff (excludes scripts/install/tests)
|
|
148
|
-
dot remove # Safely remove a managed file
|
|
149
|
-
dot drift # Drift dashboard (chezmoi status)
|
|
150
|
-
dot history # Shell history analysis
|
|
151
|
-
dot tools # Show dot utils
|
|
152
|
-
dot keys # Show keybindings
|
|
153
|
-
dot tune # Apply OS tuning (opt-in)
|
|
154
|
-
dot secrets # Edit encrypted secrets (age)
|
|
155
|
-
dot upgrade # Update flake, plugins, and dotfiles
|
|
156
|
-
dot new # Scaffold a project template (python/go/node)
|
|
157
|
-
dot log-rotate # Rotate ~/.local/share/dotfiles.log
|
|
158
|
-
dot doctor
|
|
159
|
-
dot sandbox
|
|
160
|
-
dot benchmark
|
|
161
|
-
dot theme
|
|
162
|
-
dot wallpaper
|
|
163
|
-
dot ssh-key
|
|
164
|
-
dot secrets-create
|
|
165
|
-
dot fonts
|
|
166
|
-
dot firewall
|
|
167
|
-
dot telemetry
|
|
168
|
-
dot dns-doh
|
|
169
|
-
dot encrypt-check
|
|
170
|
-
dot backup
|
|
171
|
-
dot lock-screen
|
|
172
|
-
dot usb-safety
|
|
173
|
-
dot secrets-init
|
|
174
|
-
dot edit
|
|
175
|
-
dot docs
|
|
176
|
-
dot learn # Interactive tour (requires gum)
|
|
177
|
-
dot help
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### Nix
|
|
181
|
-
|
|
182
|
-
```bash
|
|
183
|
-
cd ~/.dotfiles
|
|
184
|
-
nix develop
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Secrets
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
dot secrets-init
|
|
191
|
-
dot secrets
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Git identity
|
|
195
|
-
|
|
196
|
-
Set your Git identity in the local `chezmoi` config (not committed):
|
|
197
|
-
|
|
198
|
-
```bash
|
|
199
|
-
chezmoi init --apply --promptDefaults
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
Or edit directly:
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
${EDITOR:-nano} ~/.config/chezmoi/chezmoi.toml
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
Fields:
|
|
209
|
-
|
|
210
|
-
- `git_name`
|
|
211
|
-
- `git_email`
|
|
212
|
-
- `git_signingkey`
|
|
213
|
-
- `git_signingformat`
|
|
214
|
-
|
|
215
|
-
### Make it yours
|
|
216
|
-
|
|
217
|
-
Set the theme in `.chezmoidata.toml`:
|
|
218
|
-
|
|
219
|
-
```toml
|
|
220
|
-
theme = "tokyonight-night"
|
|
221
|
-
terminal_font_family = "JetBrains Mono"
|
|
222
|
-
terminal_font_size = 12
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
Available themes:
|
|
226
|
-
|
|
227
|
-
- `tokyonight-night` (best dark default)
|
|
228
|
-
- `tokyonight-day` (best light default)
|
|
229
|
-
- `tokyonight-storm`
|
|
230
|
-
- `tokyonight-moon`
|
|
231
|
-
- `catppuccin-mocha`
|
|
232
|
-
- `dracula`
|
|
233
|
-
- `gruvbox-dark`
|
|
234
|
-
- `gruvbox-light`
|
|
235
|
-
- `nord`
|
|
236
|
-
- `onedark`
|
|
237
|
-
- `onelight`
|
|
238
|
-
- `solarized-dark`
|
|
239
|
-
- `solarized-light`
|
|
240
|
-
- `catppuccin-mocha`
|
|
241
|
-
- `catppuccin-latte`
|
|
242
|
-
- `rose-pine`
|
|
243
|
-
- `rose-pine-moon`
|
|
244
|
-
- `rose-pine-dawn`
|
|
245
|
-
- `everforest-dark`
|
|
246
|
-
- `everforest-light`
|
|
247
|
-
- `kanagawa-wave`
|
|
248
|
-
- `kanagawa-dragon`
|
|
249
|
-
- `kanagawa-lotus`
|
|
250
|
-
|
|
251
|
-
### DevContainer and Codespaces
|
|
252
|
-
|
|
253
|
-
```text
|
|
254
|
-
.devcontainer/devcontainer.json
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### Add aliases
|
|
258
|
-
|
|
259
|
-
1. Navigate to `~/.dotfiles/.chezmoitemplates/aliases/`.
|
|
260
|
-
2. Create a new file (e.g., `mytool/mytool.aliases.sh`) or edit an existing one.
|
|
261
|
-
3. Add your aliases.
|
|
262
|
-
4. Run `chezmoi apply`.
|
|
263
|
-
|
|
264
|
-
**Note:** Files in `macOS/` are only included on macOS systems.
|
|
265
|
-
|
|
266
|
-
### Add functions
|
|
267
|
-
|
|
268
|
-
1. Navigate to `~/.dotfiles/.chezmoitemplates/functions/`.
|
|
269
|
-
2. Create a new `.sh` file.
|
|
270
|
-
3. Define your function with a usage comment.
|
|
271
|
-
4. Run `chezmoi apply`.
|
|
272
|
-
|
|
273
|
-
## Performance
|
|
274
|
-
|
|
275
|
-
- **Lazy Loading**: Heavy tools (like `nvm`, `rbenv`) are lazy-loaded. They only initialize when you type the command.
|
|
276
|
-
- **Zcompile**: Your `.zshrc` and generated config files are automatically compiled to `.zwc` bytecode for faster parsing.
|
|
277
|
-
- **Fast Mode**: Set `DOTFILES_FAST=1` to skip heavy startup work (plugins, completions, prompt tooling, AI helpers) for the quickest possible first prompt.
|
|
278
|
-
- **Ultra-Fast Mode**: Set `DOTFILES_ULTRA_FAST=1` for minimal init (no rc.d, plugins, completions, or prompt tooling).
|
|
279
|
-
- **Perf Mode**: `dot perf --precmd` measures first-prompt work (precmd hooks).
|
|
280
|
-
- **Deferred Hooks**: Use `DOTFILES_DEFER_COMPINIT=1`, `DOTFILES_DEFER_TOOLS=1`, and `DOTFILES_DEFER_ZINIT_MODE=preexec` to move work after the first command.
|
|
281
|
-
|
|
282
|
-
## Test
|
|
283
|
-
|
|
284
|
-
This repository includes GitHub Actions CI to test the configuration on macOS, Ubuntu, and Windows for every Pull Request.
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
{{- /* Generate Instant-Load Command List for ALS */ -}}
|
|
2
|
-
{{- $templateDir := .chezmoi.sourceDir -}}
|
|
3
|
-
{{- $aliasFiles := glob (joinPath $templateDir ".chezmoitemplates/aliases/**/*.aliases.sh") -}}
|
|
4
|
-
{{- $db := list -}}
|
|
5
|
-
|
|
6
|
-
{{- range $aliasFiles -}}
|
|
7
|
-
{{- $category := base (dir .) -}}
|
|
8
|
-
{{- if eq $category "aliases" }}{{ $category = base . | replace ".aliases.sh" "" }}{{ end -}}
|
|
9
|
-
{{- $category = title $category -}}
|
|
10
|
-
|
|
11
|
-
{{- $fileContent := include . -}}
|
|
12
|
-
{{- $lastComment := "" -}}
|
|
13
|
-
|
|
14
|
-
{{- range (splitList "\n" $fileContent) -}}
|
|
15
|
-
{{- $line := trim . -}}
|
|
16
|
-
|
|
17
|
-
{{- if (hasPrefix "#" $line) -}}
|
|
18
|
-
{{- $comment := $line | trimPrefix "#" | trim -}}
|
|
19
|
-
{{- if and (not (contains "shellcheck" $comment)) (not (contains "Copyright" $comment)) -}}
|
|
20
|
-
{{- $lastComment = $comment -}}
|
|
21
|
-
{{- end -}}
|
|
22
|
-
{{- else if (hasPrefix "alias " $line) -}}
|
|
23
|
-
{{- $working := $line | replace "alias " "" -}}
|
|
24
|
-
{{- $parts := splitList "=" $working -}}
|
|
25
|
-
|
|
26
|
-
{{- if (ge (len $parts) 2) -}}
|
|
27
|
-
{{- $name := index $parts 0 | trim -}}
|
|
28
|
-
{{- $rest := slice $parts 1 | join "=" -}}
|
|
29
|
-
|
|
30
|
-
{{- $cmdDesc := splitList "#" $rest -}}
|
|
31
|
-
{{- $cmd := index $cmdDesc 0 | trim | trimPrefix "'" | trimSuffix "'" | trimPrefix "\"" | trimSuffix "\"" | trim -}}
|
|
32
|
-
|
|
33
|
-
{{- $desc := "" -}}
|
|
34
|
-
{{- if (ge (len $cmdDesc) 2) -}}
|
|
35
|
-
{{- $desc = slice $cmdDesc 1 | join "#" | trim -}}
|
|
36
|
-
{{- else -}}
|
|
37
|
-
{{- $desc = $lastComment -}}
|
|
38
|
-
{{- end -}}
|
|
39
|
-
|
|
40
|
-
{{- if eq $desc "" }}{{ $desc = "Shell command" }}{{ end -}}
|
|
41
|
-
|
|
42
|
-
{{- if and (ne $name "") (ne $cmd "") -}}
|
|
43
|
-
{{- $entry := printf "%s|%s|%s|%s" $category $name $cmd $desc -}}
|
|
44
|
-
{{- $db = append $db $entry -}}
|
|
45
|
-
{{- end -}}
|
|
46
|
-
{{- end -}}
|
|
47
|
-
{{- end -}}
|
|
48
|
-
{{- end -}}
|
|
49
|
-
{{- end -}}
|
|
50
|
-
|
|
51
|
-
{{- /* ANSI Escape Codes (Real Bytes) */ -}}
|
|
52
|
-
{{- $esc := "\x1b" -}}
|
|
53
|
-
{{- $magenta := printf "%s[35m" $esc -}}
|
|
54
|
-
{{- $cyan := printf "%s[36m" $esc -}}
|
|
55
|
-
{{- $dim := printf "%s[90m" $esc -}}
|
|
56
|
-
{{- $reset := printf "%s[0m" $esc -}}
|
|
57
|
-
|
|
58
|
-
{{- range (sortAlpha $db) -}}
|
|
59
|
-
{{- $p := splitList "|" . -}}
|
|
60
|
-
{{- $cat := index $p 0 -}}
|
|
61
|
-
{{- $name := index $p 1 -}}
|
|
62
|
-
{{- $cmd := index $p 2 -}}
|
|
63
|
-
{{- $desc := index $p 3 -}}
|
|
64
|
-
{{- printf "%s[%s]%s %s%s%s: %s %s— %s%s |SEP|%s|SEP|%s\n" $magenta $cat $reset $cyan $name $reset $cmd $dim $desc $reset $cmd $name -}}
|
|
65
|
-
{{- end -}}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Auto-list directory contents on cd (zsh only)
|
|
2
|
-
# Uses eza when available, otherwise falls back to ls.
|
|
3
|
-
|
|
4
|
-
autoload -Uz add-zsh-hook
|
|
5
|
-
|
|
6
|
-
dot_auto_ls() {
|
|
7
|
-
[[ -o interactive ]] || return
|
|
8
|
-
[[ -t 1 ]] || return
|
|
9
|
-
[[ "${DOTFILES_AUTO_LS:-1}" == "1" ]] || return
|
|
10
|
-
[[ "${PWD}" == "${_DOTFILES_AUTO_LS_LAST:-}" ]] && return
|
|
11
|
-
_DOTFILES_AUTO_LS_LAST="${PWD}"
|
|
12
|
-
|
|
13
|
-
if command -v eza >/dev/null 2>&1; then
|
|
14
|
-
eza -alF --sort Name --icons --group-directories-first
|
|
15
|
-
else
|
|
16
|
-
command ls -alF
|
|
17
|
-
fi
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
add-zsh-hook chpwd dot_auto_ls
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# shellcheck shell=bash
|
|
2
|
-
# zsh_context_suggest.zsh
|
|
3
|
-
#
|
|
4
|
-
# Context Autosuggest for Predictive Shell
|
|
5
|
-
# Detects project type and suggests commands.
|
|
6
|
-
#
|
|
7
|
-
|
|
8
|
-
suggest_context_commands() {
|
|
9
|
-
local suggestions=()
|
|
10
|
-
|
|
11
|
-
# 1. Node.js / Javascript / TypeScript
|
|
12
|
-
if [[ -f "package.json" ]]; then
|
|
13
|
-
suggestions+=("npm start" "npm test" "npm run build")
|
|
14
|
-
# Check for yarn
|
|
15
|
-
if [[ -f "yarn.lock" ]]; then
|
|
16
|
-
suggestions+=("yarn start" "yarn test" "yarn build")
|
|
17
|
-
fi
|
|
18
|
-
# Check for pnpm
|
|
19
|
-
if [[ -f "pnpm-lock.yaml" ]]; then
|
|
20
|
-
suggestions+=("pnpm start" "pnpm test")
|
|
21
|
-
fi
|
|
22
|
-
fi
|
|
23
|
-
|
|
24
|
-
# 2. Rust
|
|
25
|
-
if [[ -f "Cargo.toml" ]]; then
|
|
26
|
-
suggestions+=("cargo run" "cargo test" "cargo build" "cargo check")
|
|
27
|
-
fi
|
|
28
|
-
|
|
29
|
-
# 3. Go
|
|
30
|
-
if [[ -f "go.mod" ]]; then
|
|
31
|
-
suggestions+=("go run ." "go test ./..." "go build")
|
|
32
|
-
fi
|
|
33
|
-
|
|
34
|
-
# 4. Python
|
|
35
|
-
if [[ -f "pyproject.toml" ]] || [[ -f "requirements.txt" ]]; then
|
|
36
|
-
suggestions+=("python -m venv .venv" "source .venv/bin/activate")
|
|
37
|
-
if [[ -f "main.py" ]]; then
|
|
38
|
-
suggestions+=("python main.py")
|
|
39
|
-
fi
|
|
40
|
-
if [[ -f "app.py" ]]; then
|
|
41
|
-
suggestions+=("python app.py")
|
|
42
|
-
fi
|
|
43
|
-
fi
|
|
44
|
-
|
|
45
|
-
# 5. Docker
|
|
46
|
-
if [[ -f "Dockerfile" ]]; then
|
|
47
|
-
suggestions+=("docker build -t . ." "docker run -it <image>")
|
|
48
|
-
fi
|
|
49
|
-
if [[ -f "docker-compose.yml" ]] || [[ -f "compose.yaml" ]]; then
|
|
50
|
-
suggestions+=("docker compose up -d" "docker compose down")
|
|
51
|
-
fi
|
|
52
|
-
|
|
53
|
-
# Display suggestions
|
|
54
|
-
if [[ ${#suggestions[@]} -gt 0 ]]; then
|
|
55
|
-
print -P "%F{cyan} Context Suggestions:%f"
|
|
56
|
-
for cmd in "${suggestions[@]}"; do
|
|
57
|
-
print -P " %F{green}%f $cmd"
|
|
58
|
-
done
|
|
59
|
-
else
|
|
60
|
-
echo "No context-specific suggestions found for this directory."
|
|
61
|
-
fi
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
# Alias for manual invocation
|
|
65
|
-
alias suggest="suggest_context_commands"
|
|
66
|
-
|
|
67
|
-
# Optional: Hook into chpwd to show suggestions on cd (commented out by default to avoid noise)
|
|
68
|
-
# add-zsh-hook chpwd suggest_context_commands
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# shellcheck shell=bash
|
|
2
|
-
# error_analysis.zsh
|
|
3
|
-
#
|
|
4
|
-
# Error Analysis for Predictive Shell
|
|
5
|
-
# Uses Local LLM to analyze the last failed command.
|
|
6
|
-
#
|
|
7
|
-
|
|
8
|
-
analyze_last_error() {
|
|
9
|
-
# local exit_code="$?" <-- unused
|
|
10
|
-
local hist_entry
|
|
11
|
-
|
|
12
|
-
# Get the last history entry (command that just ran)
|
|
13
|
-
# fc -ln -1 returns the commands from the last 1 event
|
|
14
|
-
hist_entry=$(fc -ln -1)
|
|
15
|
-
|
|
16
|
-
if [[ -z "$hist_entry" ]]; then
|
|
17
|
-
echo "No history found to analyze."
|
|
18
|
-
return 1
|
|
19
|
-
fi
|
|
20
|
-
|
|
21
|
-
echo " Analyzing failure: '$hist_entry'"
|
|
22
|
-
|
|
23
|
-
local prompt="I ran the command: '$hist_entry' and it failed. Please explain why this might have happened and suggest a fix. Be concise."
|
|
24
|
-
|
|
25
|
-
# Call the ai_core wrapper
|
|
26
|
-
# We call it directly from the path or rely on PATH if configured
|
|
27
|
-
if [[ -f "${HOME}/.local/bin/ai_core" ]]; then
|
|
28
|
-
"${HOME}/.local/bin/ai_core" query "$prompt"
|
|
29
|
-
else
|
|
30
|
-
local source_dir="${CHEZMOI_SOURCE_DIR:-${HOME}/.dotfiles}"
|
|
31
|
-
if [[ ! -d "$source_dir" && -d "${HOME}/.local/share/chezmoi" ]]; then
|
|
32
|
-
source_dir="${HOME}/.local/share/chezmoi"
|
|
33
|
-
fi
|
|
34
|
-
|
|
35
|
-
if [[ -f "${source_dir}/dot_local/bin/ai_core" ]]; then
|
|
36
|
-
# Fallback for dev/testing location before chezmoi apply
|
|
37
|
-
"${source_dir}/dot_local/bin/ai_core" query "$prompt"
|
|
38
|
-
else
|
|
39
|
-
echo "Error: ai_core wrapper not found."
|
|
40
|
-
fi
|
|
41
|
-
fi
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
# Alias '??' to analyze data
|
|
45
|
-
alias '??'='analyze_last_error'
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# SOPS configuration for encrypted secrets
|
|
2
|
-
# https://github.com/getsops/sops
|
|
3
|
-
|
|
4
|
-
creation_rules:
|
|
5
|
-
# Environment files
|
|
6
|
-
- path_regex: \.env\.encrypted$
|
|
7
|
-
age: >-
|
|
8
|
-
# Add your age public key here after running: age-keygen
|
|
9
|
-
# age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
10
|
-
|
|
11
|
-
# API keys and tokens
|
|
12
|
-
- path_regex: secrets/.*\.yaml$
|
|
13
|
-
age: >-
|
|
14
|
-
# age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
15
|
-
|
|
16
|
-
# SSH keys (use chezmoi's native encryption instead for these)
|
|
17
|
-
# - path_regex: ssh/.*$
|
|
18
|
-
# age: >-
|
|
19
|
-
# age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
20
|
-
|
|
21
|
-
# Store age keys in standard location
|
|
22
|
-
# Keys should be at: ~/.config/sops/age/keys.txt
|
|
23
|
-
# Generate with: age-keygen -o ~/.config/sops/age/keys.txt
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
# Starship Configuration
|
|
2
|
-
# https://starship.rs/config/
|
|
3
|
-
|
|
4
|
-
# Some toolchains (notably Node via mise on macOS) can exceed 2s on cold start.
|
|
5
|
-
# Raise timeout to avoid spurious prompt warnings.
|
|
6
|
-
command_timeout = 5000
|
|
7
|
-
add_newline = true
|
|
8
|
-
{{- $t := index .themes (default "big-sur-dark" .theme) -}}
|
|
9
|
-
{{- if not $t -}}{{- $t = index .themes "big-sur-dark" -}}{{- end }}
|
|
10
|
-
# Palette driven by starship_palette in .chezmoidata/themes.toml
|
|
11
|
-
palette = "{{ $t.app.starship_palette }}"
|
|
12
|
-
|
|
13
|
-
[character]
|
|
14
|
-
success_symbol = "[➜](bold green)"
|
|
15
|
-
error_symbol = "[➜](bold red)"
|
|
16
|
-
|
|
17
|
-
[package]
|
|
18
|
-
disabled = true
|
|
19
|
-
|
|
20
|
-
[git_branch]
|
|
21
|
-
symbol = "> "
|
|
22
|
-
style = "bold yellow"
|
|
23
|
-
|
|
24
|
-
[git_status]
|
|
25
|
-
disabled = false
|
|
26
|
-
style = "bold red"
|
|
27
|
-
|
|
28
|
-
[hostname]
|
|
29
|
-
ssh_only = false
|
|
30
|
-
format = "[$hostname](bold blue) "
|
|
31
|
-
disabled = false
|
|
32
|
-
|
|
33
|
-
[username]
|
|
34
|
-
style_user = "white bold"
|
|
35
|
-
style_root = "black bold"
|
|
36
|
-
format = "[$user]($style) "
|
|
37
|
-
disabled = false
|
|
38
|
-
|
|
39
|
-
[directory]
|
|
40
|
-
truncation_length = 3
|
|
41
|
-
truncation_symbol = "…/"
|
|
42
|
-
|
|
43
|
-
[cmd_duration]
|
|
44
|
-
min_time = 2000
|
|
45
|
-
format = "took [$duration]($style) "
|
|
46
|
-
|
|
47
|
-
# ---------- Language version indicators ---------- #
|
|
48
|
-
[rust]
|
|
49
|
-
format = "[$symbol($version)]($style) "
|
|
50
|
-
symbol = "rs "
|
|
51
|
-
|
|
52
|
-
[python]
|
|
53
|
-
format = "[$symbol$pyenv_prefix($version)( \\($virtualenv\\))]($style) "
|
|
54
|
-
symbol = "py "
|
|
55
|
-
|
|
56
|
-
[nodejs]
|
|
57
|
-
format = "[$symbol($version)]($style) "
|
|
58
|
-
symbol = "node "
|
|
59
|
-
detect_files = ["package.json", ".node-version"]
|
|
60
|
-
|
|
61
|
-
[golang]
|
|
62
|
-
format = "[$symbol($version)]($style) "
|
|
63
|
-
symbol = "go "
|
|
64
|
-
|
|
65
|
-
# ---------- Docker context ---------- #
|
|
66
|
-
[docker_context]
|
|
67
|
-
format = "[$symbol$context]($style) "
|
|
68
|
-
symbol = "docker "
|
|
69
|
-
only_with_files = true
|
|
70
|
-
detect_files = ["docker-compose.yml", "docker-compose.yaml", "Dockerfile"]
|
|
71
|
-
|
|
72
|
-
# ---------- Shell nesting level ---------- #
|
|
73
|
-
[shlvl]
|
|
74
|
-
disabled = false
|
|
75
|
-
threshold = 2
|
|
76
|
-
symbol = "↕ "
|
|
77
|
-
format = "[$symbol$shlvl]($style) "
|
|
78
|
-
|
|
79
|
-
# ---------- Exit status ---------- #
|
|
80
|
-
[status]
|
|
81
|
-
disabled = false
|
|
82
|
-
format = "[$symbol$status]($style) "
|
|
83
|
-
symbol = "✘ "
|
|
84
|
-
|
|
85
|
-
# ---------- Kubernetes context ---------- #
|
|
86
|
-
[kubernetes]
|
|
87
|
-
disabled = false
|
|
88
|
-
format = "[$symbol$context( \\($namespace\\))]($style) "
|
|
89
|
-
symbol = "k8s "
|
|
90
|
-
style = "bold cyan"
|
|
91
|
-
detect_files = ["k8s", "kubernetes", "Tiltfile"]
|
|
92
|
-
detect_folders = ["charts", "kustomize"]
|
|
93
|
-
[kubernetes.context_aliases]
|
|
94
|
-
"arn:aws:eks:.*:.*:cluster/(?P<name>.*)" = "$name"
|
|
95
|
-
|
|
96
|
-
# ---------- Nix shell indicator ---------- #
|
|
97
|
-
[nix_shell]
|
|
98
|
-
disabled = false
|
|
99
|
-
format = "[$symbol$state( \\($name\\))]($style) "
|
|
100
|
-
symbol = "nix "
|
|
101
|
-
style = "bold blue"
|
|
102
|
-
|
|
103
|
-
# ---------- Direnv indicator ---------- #
|
|
104
|
-
# Disabled: starship reads direnv state before the hook sets DIRENV_DIR,
|
|
105
|
-
# causing "[WARN] unknown direnv state" on every prompt render.
|
|
106
|
-
# Direnv itself still works — only the starship status indicator is hidden.
|
|
107
|
-
[direnv]
|
|
108
|
-
disabled = true
|
|
109
|
-
|
|
110
|
-
# ---------- Pueue Tasks (Background daemon) ---------- #
|
|
111
|
-
[custom.pueue]
|
|
112
|
-
command = "n=$(pueue status -j 2>/dev/null | jq -r '[.tasks[] | select(.status == \"Running\" or .status == \"Queued\")] | length' 2>/dev/null) && [ \"$n\" != \"0\" ] && echo \"$n\""
|
|
113
|
-
when = "command -v pueue >/dev/null && command -v jq >/dev/null"
|
|
114
|
-
ignore_timeout = true
|
|
115
|
-
symbol = "⚙ "
|
|
116
|
-
style = "bold purple"
|
|
117
|
-
format = "[$symbol$output]($style) "
|
|
118
|
-
|
|
119
|
-
# ---------- Container-aware fallback ---------- #
|
|
120
|
-
# When DOTFILES_CONTAINER=1, show a lightweight indicator so the user
|
|
121
|
-
# knows they are inside a container. Uses only ASCII-safe characters
|
|
122
|
-
# to avoid rendering issues with missing Nerd Fonts.
|
|
123
|
-
|
|
124
|
-
[container]
|
|
125
|
-
disabled = false
|
|
126
|
-
symbol = "[ctr]"
|
|
127
|
-
style = "bold dimmed blue"
|
|
128
|
-
format = '[$symbol]($style) '
|
|
129
|
-
|
|
130
|
-
[env_var.DOTFILES_CONTAINER]
|
|
131
|
-
variable = "DOTFILES_CONTAINER"
|
|
132
|
-
symbol = ""
|
|
133
|
-
style = "bold dimmed cyan"
|
|
134
|
-
format = '[container]($style) '
|
|
135
|
-
|
|
136
|
-
[env_var.DOTFILES_CODESPACE]
|
|
137
|
-
variable = "DOTFILES_CODESPACE"
|
|
138
|
-
symbol = ""
|
|
139
|
-
style = "bold dimmed green"
|
|
140
|
-
format = '[codespace]($style) '
|
|
141
|
-
|
|
142
|
-
[env_var.DOTFILES_LAYERS_LOAD_STATUS]
|
|
143
|
-
variable = "DOTFILES_LAYERS_LOAD_STATUS"
|
|
144
|
-
symbol = ""
|
|
145
|
-
style = "bold dimmed yellow"
|
|
146
|
-
format = '[•]($style) '
|
|
147
|
-
|
|
148
|
-
[palettes.catppuccin_mocha]
|
|
149
|
-
rosewater = "#f5e0dc"
|
|
150
|
-
flamingo = "#f2cdcd"
|
|
151
|
-
pink = "#f5c2e7"
|
|
152
|
-
mauve = "#cba6f7"
|
|
153
|
-
red = "#f38ba8"
|
|
154
|
-
maroon = "#eba0ac"
|
|
155
|
-
peach = "#fab387"
|
|
156
|
-
yellow = "#f9e2af"
|
|
157
|
-
green = "#a6e3a1"
|
|
158
|
-
teal = "#94e2d5"
|
|
159
|
-
sky = "#89dceb"
|
|
160
|
-
sapphire = "#74c7ec"
|
|
161
|
-
blue = "#89b4fa"
|
|
162
|
-
lavender = "#b4befe"
|
|
163
|
-
text = "#cdd6f4"
|
|
164
|
-
subtext1 = "#bac2de"
|
|
165
|
-
subtext0 = "#a6adc8"
|
|
166
|
-
overlay2 = "#9399b2"
|
|
167
|
-
overlay1 = "#7f849c"
|
|
168
|
-
overlay0 = "#6c7086"
|
|
169
|
-
surface2 = "#585b70"
|
|
170
|
-
surface1 = "#45475a"
|
|
171
|
-
surface0 = "#313244"
|
|
172
|
-
base = "#1e1e2e"
|
|
173
|
-
mantle = "#181825"
|
|
174
|
-
crust = "#11111b"
|
|
175
|
-
|
|
176
|
-
[palettes.catppuccin_latte]
|
|
177
|
-
rosewater = "#dc8a78"
|
|
178
|
-
flamingo = "#dd7878"
|
|
179
|
-
pink = "#ea76cb"
|
|
180
|
-
mauve = "#8839ef"
|
|
181
|
-
red = "#d20f39"
|
|
182
|
-
maroon = "#e64553"
|
|
183
|
-
peach = "#fe640b"
|
|
184
|
-
yellow = "#df8e1d"
|
|
185
|
-
green = "#40a02b"
|
|
186
|
-
teal = "#179299"
|
|
187
|
-
sky = "#04a5e5"
|
|
188
|
-
sapphire = "#209fb5"
|
|
189
|
-
blue = "#1e66f5"
|
|
190
|
-
lavender = "#7287fd"
|
|
191
|
-
text = "#4c4f69"
|
|
192
|
-
subtext1 = "#5c5f77"
|
|
193
|
-
subtext0 = "#6c6f85"
|
|
194
|
-
overlay2 = "#7c7f93"
|
|
195
|
-
overlay1 = "#8c8fa1"
|
|
196
|
-
overlay0 = "#9ca0b0"
|
|
197
|
-
surface2 = "#acb0be"
|
|
198
|
-
surface1 = "#bcc0cc"
|
|
199
|
-
surface0 = "#ccd0da"
|
|
200
|
-
base = "#eff1f5"
|
|
201
|
-
mantle = "#e6e9ef"
|
|
202
|
-
crust = "#dce0e8"
|