@sebastienrousseau/dotfiles 0.2.502 → 0.2.504
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 +109 -9
- package/LICENSE +21 -1283
- package/README.md +6 -4
- 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 +118 -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 +5 -5
- package/scripts/diagnostics/conflicts.sh +2 -2
- package/scripts/diagnostics/doctor-unified.sh +3 -3
- 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 +5 -5
- package/scripts/diagnostics/scorecard.sh +4 -4
- package/scripts/diagnostics/security-score.sh +25 -6
- 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 +13 -3
- 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 +156 -37
- 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 +22 -16
- 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 +3 -3
- package/scripts/git-hooks/pre-push +13 -0
- package/scripts/ops/ai-setup.sh +1 -1
- package/scripts/ops/bundle.sh +3 -3
- package/scripts/ops/chaos.sh +2 -2
- package/scripts/ops/chezmoi-apply.sh +12 -6
- 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 +31 -2
- 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 +74 -10
- 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,99 +0,0 @@
|
|
|
1
|
-
# shellcheck shell=bash
|
|
2
|
-
# Cognitive Shell Enhancements
|
|
3
|
-
#
|
|
4
|
-
# Carapace is deferred to first `preexec` (closes #862). The eager
|
|
5
|
-
# `_cached_eval carapace ...` call previously cost ~15ms on every
|
|
6
|
-
# interactive shell start even with the cache warm — that work is
|
|
7
|
-
# only needed when the user invokes tab-completion, which happens
|
|
8
|
-
# after the first command at the earliest. Opt out by setting
|
|
9
|
-
# `DOTFILES_DEFER_CARAPACE=0` (rarely useful).
|
|
10
|
-
if [[ -o interactive ]]; then
|
|
11
|
-
: ${DOTFILES_DEFER_CARAPACE:=1}
|
|
12
|
-
|
|
13
|
-
_dotfiles_carapace_init() {
|
|
14
|
-
if command -v carapace >/dev/null 2>&1; then
|
|
15
|
-
if typeset -f _cached_eval >/dev/null 2>&1; then
|
|
16
|
-
_cached_eval carapace carapace _carapace zsh
|
|
17
|
-
else
|
|
18
|
-
source <(carapace _zsh)
|
|
19
|
-
fi
|
|
20
|
-
fi
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if [[ "${DOTFILES_DEFER_CARAPACE}" == "1" ]] && typeset -f _dotfiles_add_preexec >/dev/null 2>&1; then
|
|
24
|
-
_dotfiles_carapace_deferred() {
|
|
25
|
-
_dotfiles_del_preexec _dotfiles_carapace_deferred
|
|
26
|
-
_dotfiles_carapace_init
|
|
27
|
-
}
|
|
28
|
-
_dotfiles_add_preexec _dotfiles_carapace_deferred
|
|
29
|
-
else
|
|
30
|
-
# Fallback to eager init when preexec helpers aren't available
|
|
31
|
-
# (e.g., DOTFILES_FAST=1 paths that skip the zshrc helper block).
|
|
32
|
-
_dotfiles_carapace_init
|
|
33
|
-
fi
|
|
34
|
-
|
|
35
|
-
# thefuck — lazy-loaded to avoid ~200ms startup penalty
|
|
36
|
-
if command -v thefuck >/dev/null 2>&1; then
|
|
37
|
-
_lazy_load_thefuck() {
|
|
38
|
-
unset -f fuck _lazy_load_thefuck 2>/dev/null
|
|
39
|
-
_cached_eval "thefuck-alias" thefuck --alias
|
|
40
|
-
}
|
|
41
|
-
fuck() { _lazy_load_thefuck; fuck "$@"; }
|
|
42
|
-
alias fix='fuck'
|
|
43
|
-
fi
|
|
44
|
-
fi
|
|
45
|
-
|
|
46
|
-
# Fallback command shims for environments with aliases disabled.
|
|
47
|
-
# These are lightweight functions to ensure core shortcuts still work.
|
|
48
|
-
|
|
49
|
-
# Opt-out with: export DOTFILES_ALIAS_SHIMS=0
|
|
50
|
-
if [[ "${DOTFILES_ALIAS_SHIMS:-1}" != "1" ]]; then
|
|
51
|
-
return 0
|
|
52
|
-
fi
|
|
53
|
-
|
|
54
|
-
# Avoid redefining if already present.
|
|
55
|
-
if ! typeset -f c >/dev/null 2>&1; then
|
|
56
|
-
c() { clear; }
|
|
57
|
-
fi
|
|
58
|
-
if ! typeset -f q >/dev/null 2>&1; then
|
|
59
|
-
q() { exit; }
|
|
60
|
-
fi
|
|
61
|
-
if ! typeset -f e >/dev/null 2>&1; then
|
|
62
|
-
e() { "${EDITOR:-nano}" "$@"; }
|
|
63
|
-
fi
|
|
64
|
-
if ! typeset -f h >/dev/null 2>&1; then
|
|
65
|
-
h() { history; }
|
|
66
|
-
fi
|
|
67
|
-
if ! typeset -f l >/dev/null 2>&1; then
|
|
68
|
-
l() { command -v eza >/dev/null 2>&1 && eza --sort Name --icons --group-directories-first "$@" || command ls "$@"; }
|
|
69
|
-
fi
|
|
70
|
-
if ! typeset -f ll >/dev/null 2>&1; then
|
|
71
|
-
ll() { command -v eza >/dev/null 2>&1 && eza -alF --sort Name --icons --group-directories-first "$@" || command ls -lA "$@"; }
|
|
72
|
-
fi
|
|
73
|
-
if ! typeset -f la >/dev/null 2>&1; then
|
|
74
|
-
la() { command -v eza >/dev/null 2>&1 && eza -a --sort Name --icons --group-directories-first "$@" || command ls -a "$@"; }
|
|
75
|
-
fi
|
|
76
|
-
if ! typeset -f lt >/dev/null 2>&1; then
|
|
77
|
-
lt() { command -v eza >/dev/null 2>&1 && eza -aT --sort Name --icons --group-directories-first "$@" || command ls -R "$@"; }
|
|
78
|
-
fi
|
|
79
|
-
if ! typeset -f lr >/dev/null 2>&1; then
|
|
80
|
-
lr() { command -v eza >/dev/null 2>&1 && eza -alF --recurse --sort Name --icons --group-directories-first "$@" || command ls -lAR "$@"; }
|
|
81
|
-
fi
|
|
82
|
-
if ! typeset -f lra >/dev/null 2>&1; then
|
|
83
|
-
lra() { command -v eza >/dev/null 2>&1 && eza -alF --recurse --all --sort Name --icons --group-directories-first "$@" || command ls -lAR "$@"; }
|
|
84
|
-
fi
|
|
85
|
-
if ! typeset -f lta >/dev/null 2>&1; then
|
|
86
|
-
lta() { command -v eza >/dev/null 2>&1 && eza -aT --all --sort Name --icons --group-directories-first "$@" || command ls -aR "$@"; }
|
|
87
|
-
fi
|
|
88
|
-
if ! typeset -f d >/dev/null 2>&1; then
|
|
89
|
-
d() { command -v dot >/dev/null 2>&1 && dot "$@" || command -v docker >/dev/null 2>&1 && docker "$@"; }
|
|
90
|
-
fi
|
|
91
|
-
if ! typeset -f i >/dev/null 2>&1; then
|
|
92
|
-
i() { command -v epoch >/dev/null 2>&1 && epoch "$@"; }
|
|
93
|
-
fi
|
|
94
|
-
if ! typeset -f a >/dev/null 2>&1; then
|
|
95
|
-
a() { command -v ai_core >/dev/null 2>&1 && ai_core query "$@"; }
|
|
96
|
-
fi
|
|
97
|
-
if ! typeset -f _ >/dev/null 2>&1; then
|
|
98
|
-
_() { sudo "$@"; }
|
|
99
|
-
fi
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# YubiKey FIDO2/U2F security key helper
|
|
2
|
-
if [[ -x /usr/lib/ssh/ssh-sk-helper ]]; then
|
|
3
|
-
export SSH_SK_HELPER=/usr/lib/ssh/ssh-sk-helper
|
|
4
|
-
fi
|
|
5
|
-
|
|
6
|
-
# SSH agent: auto-start if no agent is running (interactive only)
|
|
7
|
-
if [[ -o interactive ]] && [[ -z "$SSH_AUTH_SOCK" ]]; then
|
|
8
|
-
eval "$(ssh-agent -s)" >/dev/null 2>&1
|
|
9
|
-
|
|
10
|
-
# Add default key with timeout guard (2s max) to prevent startup hangs
|
|
11
|
-
if [[ -f ~/.ssh/id_ed25519 ]]; then
|
|
12
|
-
if [[ "$OSTYPE" == darwin* ]]; then
|
|
13
|
-
timeout 2 ssh-add --apple-use-keychain ~/.ssh/id_ed25519 2>/dev/null || true
|
|
14
|
-
else
|
|
15
|
-
timeout 2 ssh-add ~/.ssh/id_ed25519 2>/dev/null || true
|
|
16
|
-
fi
|
|
17
|
-
fi
|
|
18
|
-
fi
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Environment and core variables
|
|
2
|
-
export HOSTNAME="${HOST}"
|
|
3
|
-
export INPUTRC="${HOME}/.inputrc"
|
|
4
|
-
export OS_ARCH='{{ output "uname" "-m" | trim }}'
|
|
5
|
-
export OS_NAME='{{ output "uname" | trim }}'
|
|
6
|
-
export OS_VERSION='{{ output "uname" "-r" | trim }}'
|
|
7
|
-
export USER_LANGUAGE="en_GB.UTF-8"
|
|
8
|
-
export ARCHFLAGS="-arch ${OS_ARCH}"
|
|
9
|
-
export DOTFILES_VERSION='{{ .dotfiles_version }}'
|
|
10
|
-
export DOTFILES="${HOME}/.dotfiles/lib"
|
|
11
|
-
export LANG="${USER_LANGUAGE}"
|
|
12
|
-
export LANGUAGE="${USER_LANGUAGE}"
|
|
13
|
-
export LC_ALL="${USER_LANGUAGE}"
|
|
14
|
-
export LC_CTYPE="${USER_LANGUAGE}"
|
|
15
|
-
export TERM="xterm-256color"
|
|
16
|
-
|
|
17
|
-
# fnm multishell path for environments without /run/user/... access
|
|
18
|
-
if [[ -z "${XDG_RUNTIME_DIR:-}" ]]; then
|
|
19
|
-
export XDG_RUNTIME_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/run"
|
|
20
|
-
fi
|
|
21
|
-
if [[ ! -d "${XDG_RUNTIME_DIR}" ]]; then
|
|
22
|
-
mkdir -p "${XDG_RUNTIME_DIR}" 2>/dev/null || true
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
export FNM_MULTISHELL_PATH="${FNM_MULTISHELL_PATH:-${XDG_RUNTIME_DIR}/fnm_multishells}"
|
|
26
|
-
if [[ ! -d "${FNM_MULTISHELL_PATH}" ]]; then
|
|
27
|
-
mkdir -p "${FNM_MULTISHELL_PATH}" 2>/dev/null || true
|
|
28
|
-
fi
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# Zinit plugin manager
|
|
2
|
-
[[ "${DOTFILES_FAST:-0}" == "1" ]] && return 0
|
|
3
|
-
[[ "${DOTFILES_ULTRA_FAST:-0}" == "1" ]] && return 0
|
|
4
|
-
|
|
5
|
-
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git"
|
|
6
|
-
|
|
7
|
-
_dotfiles_zinit_git_policy() {
|
|
8
|
-
[[ -d "$ZINIT_HOME/.git" ]] || return 0
|
|
9
|
-
command git -C "$ZINIT_HOME" config --local merge.verifySignatures false >/dev/null 2>&1 || true
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
_dotfiles_zinit_init() {
|
|
13
|
-
if [[ ! -f "$ZINIT_HOME/zinit.zsh" ]]; then
|
|
14
|
-
print -P "%F{33}▓▒░ %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
|
|
15
|
-
command mkdir -p "$(dirname "$ZINIT_HOME")" && command chmod g-rwX "$(dirname "$ZINIT_HOME")"
|
|
16
|
-
command git clone https://github.com/zdharma-continuum/zinit "$ZINIT_HOME" && \
|
|
17
|
-
print -P "%F{33}▓▒░ %F{34}Installation successful.%f%b" || \
|
|
18
|
-
print -P "%F{160}▓▒░ The clone has failed.%f%b"
|
|
19
|
-
fi
|
|
20
|
-
|
|
21
|
-
_dotfiles_zinit_git_policy
|
|
22
|
-
|
|
23
|
-
source "$ZINIT_HOME/zinit.zsh"
|
|
24
|
-
autoload -Uz _zinit
|
|
25
|
-
(( ${+_comps} )) && _comps[zinit]=_zinit
|
|
26
|
-
|
|
27
|
-
# Load Zsh Plugins (Turbo mode - deferred loading, pinned to stable releases)
|
|
28
|
-
zinit ice wait lucid ver"0.8.0"
|
|
29
|
-
zinit light zsh-users/zsh-syntax-highlighting
|
|
30
|
-
zinit ice wait lucid ver"v0.7.1" atload"_zsh_autosuggest_start"
|
|
31
|
-
zinit light zsh-users/zsh-autosuggestions
|
|
32
|
-
zinit ice wait lucid ver"0.35.0" blockf atpull"zinit creinstall -q ."
|
|
33
|
-
zinit light zsh-users/zsh-completions
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
# Defer Zinit init for faster first prompt (opt-out by setting DOTFILES_DEFER_ZINIT=0)
|
|
37
|
-
: ${DOTFILES_DEFER_ZINIT:=1}
|
|
38
|
-
: ${DOTFILES_DEFER_ZINIT_MODE:=preexec}
|
|
39
|
-
|
|
40
|
-
if [[ "${DOTFILES_DEFER_ZINIT}" == "1" ]]; then
|
|
41
|
-
# Stub to auto-load zinit on first call (e.g. by topgrade)
|
|
42
|
-
zinit() {
|
|
43
|
-
unfunction zinit
|
|
44
|
-
_dotfiles_zinit_init
|
|
45
|
-
zinit "$@"
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
_dotfiles_zinit_deferred() {
|
|
49
|
-
if [[ "${DOTFILES_DEFER_ZINIT_MODE}" == "preexec" ]]; then
|
|
50
|
-
_dotfiles_del_preexec _dotfiles_zinit_deferred
|
|
51
|
-
else
|
|
52
|
-
_dotfiles_del_precmd _dotfiles_zinit_deferred
|
|
53
|
-
fi
|
|
54
|
-
# If zinit was already loaded via the stub, this is a no-op
|
|
55
|
-
(( ${+functions[zinit]} )) && [[ "$(whence -w zinit)" == "zinit: function" ]] || _dotfiles_zinit_init
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if [[ "${DOTFILES_DEFER_ZINIT_MODE}" == "preexec" ]]; then
|
|
59
|
-
_dotfiles_add_preexec _dotfiles_zinit_deferred
|
|
60
|
-
else
|
|
61
|
-
_dotfiles_add_precmd _dotfiles_zinit_deferred
|
|
62
|
-
fi
|
|
63
|
-
else
|
|
64
|
-
_dotfiles_zinit_init
|
|
65
|
-
fi
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
# Zsh history and options
|
|
2
|
-
HISTFILE="${HOME}/.zsh_history"
|
|
3
|
-
HISTSIZE=10000
|
|
4
|
-
SAVEHIST=10000
|
|
5
|
-
setopt HIST_IGNORE_ALL_DUPS
|
|
6
|
-
setopt HIST_SAVE_NO_DUPS
|
|
7
|
-
setopt HIST_EXPIRE_DUPS_FIRST
|
|
8
|
-
setopt HIST_FIND_NO_DUPS
|
|
9
|
-
setopt HIST_IGNORE_SPACE
|
|
10
|
-
setopt HIST_REDUCE_BLANKS
|
|
11
|
-
setopt EXTENDED_HISTORY
|
|
12
|
-
setopt SHARE_HISTORY
|
|
13
|
-
setopt APPEND_HISTORY
|
|
14
|
-
setopt HIST_SAVE_BY_COPY
|
|
15
|
-
setopt INTERACTIVE_COMMENTS
|
|
16
|
-
|
|
17
|
-
setopt AUTO_CD
|
|
18
|
-
setopt AUTO_PUSHD
|
|
19
|
-
setopt PUSHD_IGNORE_DUPS
|
|
20
|
-
setopt PUSHD_SILENT
|
|
21
|
-
setopt NO_BEEP
|
|
22
|
-
|
|
23
|
-
bindkey -v
|
|
24
|
-
|
|
25
|
-
# Fix: prevent auto-indent when pasting multi-line content (vi mode)
|
|
26
|
-
autoload -Uz bracketed-paste-magic
|
|
27
|
-
zle -N bracketed-paste bracketed-paste-magic
|
|
28
|
-
|
|
29
|
-
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
|
|
30
|
-
zle -N up-line-or-beginning-search
|
|
31
|
-
zle -N down-line-or-beginning-search
|
|
32
|
-
bindkey -M viins "^[[A" up-line-or-beginning-search
|
|
33
|
-
bindkey -M viins "^[[B" down-line-or-beginning-search
|
|
34
|
-
bindkey -M viins "^P" up-line-or-beginning-search
|
|
35
|
-
bindkey -M viins "^N" down-line-or-beginning-search
|
|
36
|
-
|
|
37
|
-
ZSH_COMPLETIONS_DIR="${XDG_DATA_HOME:-${HOME}/.local/share}/zsh/completions"
|
|
38
|
-
if [[ ! -d "${ZSH_COMPLETIONS_DIR}" ]]; then
|
|
39
|
-
command mkdir -p "${ZSH_COMPLETIONS_DIR}"
|
|
40
|
-
fi
|
|
41
|
-
if [[ -z ${fpath[(r)${ZSH_COMPLETIONS_DIR}]} ]]; then
|
|
42
|
-
fpath=("${ZSH_COMPLETIONS_DIR}" "${fpath[@]}")
|
|
43
|
-
fi
|
|
44
|
-
{{- /* Node.js version manager: configured via .chezmoidata.toml tools.node_manager */ -}}
|
|
45
|
-
{{- $node_mgr := default "mise" .tools.node_manager -}}
|
|
46
|
-
{{- if eq $node_mgr "fnm" }}
|
|
47
|
-
# fnm (Fast Node Manager)
|
|
48
|
-
# Initialize early so Node + corepack use the expected version.
|
|
49
|
-
if [[ "${DOTFILES_FAST:-0}" != "1" ]] && [[ "${DOTFILES_ULTRA_FAST:-0}" != "1" ]] && command -v fnm >/dev/null; then
|
|
50
|
-
if [[ ! -f "${ZSH_COMPLETIONS_DIR}/_fnm" ]]; then
|
|
51
|
-
command fnm completions --shell zsh >| "${ZSH_COMPLETIONS_DIR}/_fnm"
|
|
52
|
-
fi
|
|
53
|
-
_lazy_load_fnm() {
|
|
54
|
-
unfunction node npm npx pnpm pnpx fnm _lazy_load_fnm 2>/dev/null
|
|
55
|
-
eval "$(command fnm env --use-on-cd --shell zsh --log-level quiet)"
|
|
56
|
-
}
|
|
57
|
-
fnm() { _lazy_load_fnm; command fnm "$@"; }
|
|
58
|
-
node() { _lazy_load_fnm; command node "$@"; }
|
|
59
|
-
npm() { _lazy_load_fnm; command npm "$@"; }
|
|
60
|
-
npx() { _lazy_load_fnm; command npx "$@"; }
|
|
61
|
-
pnpm() { _lazy_load_fnm; command pnpm "$@"; }
|
|
62
|
-
pnpx() { _lazy_load_fnm; command pnpx "$@"; }
|
|
63
|
-
fi
|
|
64
|
-
{{- end }}
|
|
65
|
-
{{- /* When node_manager = "mise", Node.js is handled by mise activate in dot_zshrc.tmpl */}}
|
|
66
|
-
|
|
67
|
-
# Completions: generated on-demand on first interactive shell and cached
|
|
68
|
-
if [[ "${DOTFILES_FAST:-0}" != "1" ]] && [[ "${DOTFILES_ULTRA_FAST:-0}" != "1" ]]; then
|
|
69
|
-
[[ ! -f "${ZSH_COMPLETIONS_DIR}/_gh" ]] && command -v gh >/dev/null &&
|
|
70
|
-
command gh completion -s zsh >| "${ZSH_COMPLETIONS_DIR}/_gh"
|
|
71
|
-
[[ ! -f "${ZSH_COMPLETIONS_DIR}/_just" ]] && command -v just >/dev/null &&
|
|
72
|
-
command just --completions zsh >| "${ZSH_COMPLETIONS_DIR}/_just"
|
|
73
|
-
[[ ! -f "${ZSH_COMPLETIONS_DIR}/_chezmoi" ]] && command -v chezmoi >/dev/null &&
|
|
74
|
-
command chezmoi completion zsh >| "${ZSH_COMPLETIONS_DIR}/_chezmoi"
|
|
75
|
-
[[ ! -f "${ZSH_COMPLETIONS_DIR}/_kubectl" ]] && command -v kubectl >/dev/null &&
|
|
76
|
-
command kubectl completion zsh >| "${ZSH_COMPLETIONS_DIR}/_kubectl"
|
|
77
|
-
[[ ! -f "${ZSH_COMPLETIONS_DIR}/_atuin" ]] && command -v atuin >/dev/null &&
|
|
78
|
-
command atuin gen-completions --shell zsh --out-dir "${ZSH_COMPLETIONS_DIR}" 2>/dev/null
|
|
79
|
-
[[ ! -f "${ZSH_COMPLETIONS_DIR}/_mise" ]] && command -v mise >/dev/null &&
|
|
80
|
-
command mise completions zsh >| "${ZSH_COMPLETIONS_DIR}/_mise" 2>/dev/null
|
|
81
|
-
fi
|
|
82
|
-
|
|
83
|
-
{{- if eq $node_mgr "nvm" }}
|
|
84
|
-
# Lazy-load NVM
|
|
85
|
-
export NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
|
|
86
|
-
if [[ "${DOTFILES_FAST:-0}" != "1" ]] && [[ "${DOTFILES_ULTRA_FAST:-0}" != "1" ]]; then
|
|
87
|
-
if [[ -s "${NVM_DIR}/nvm.sh" ]]; then
|
|
88
|
-
_lazy_load_nvm() {
|
|
89
|
-
unfunction node npm npx nvm _lazy_load_nvm 2>/dev/null
|
|
90
|
-
# shellcheck disable=SC1090
|
|
91
|
-
. "${NVM_DIR}/nvm.sh"
|
|
92
|
-
if [[ -s "${NVM_DIR}/bash_completion" ]]; then
|
|
93
|
-
# shellcheck disable=SC1090
|
|
94
|
-
. "${NVM_DIR}/bash_completion"
|
|
95
|
-
fi
|
|
96
|
-
}
|
|
97
|
-
nvm() { _lazy_load_nvm; nvm "$@"; }
|
|
98
|
-
node() { _lazy_load_nvm; command node "$@"; }
|
|
99
|
-
npm() { _lazy_load_nvm; command npm "$@"; }
|
|
100
|
-
npx() { _lazy_load_nvm; command npx "$@"; }
|
|
101
|
-
fi
|
|
102
|
-
fi
|
|
103
|
-
{{- end }}
|
|
104
|
-
|
|
105
|
-
# Lazy-load SDKMAN
|
|
106
|
-
export SDKMAN_DIR="${SDKMAN_DIR:-$HOME/.sdkman}"
|
|
107
|
-
if [[ "${DOTFILES_FAST:-0}" != "1" ]] && [[ "${DOTFILES_ULTRA_FAST:-0}" != "1" ]] && [[ -s "${SDKMAN_DIR}/bin/sdkman-init.sh" && -z "${functions[sdk]:-}" ]]; then
|
|
108
|
-
_lazy_load_sdkman() {
|
|
109
|
-
unfunction sdk _lazy_load_sdkman 2>/dev/null
|
|
110
|
-
# shellcheck disable=SC1090
|
|
111
|
-
. "${SDKMAN_DIR}/bin/sdkman-init.sh"
|
|
112
|
-
}
|
|
113
|
-
sdk() { _lazy_load_sdkman; sdk "$@"; }
|
|
114
|
-
fi
|
|
115
|
-
# Defer compinit to first prompt — opt-in for max performance.
|
|
116
|
-
#
|
|
117
|
-
# Cache lifecycle (closes #864):
|
|
118
|
-
# * dump path lives at $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION so
|
|
119
|
-
# the user-state directory is clean (and zsh's own search picks up
|
|
120
|
-
# `.zwc` siblings automatically — non-laptop profiles get the
|
|
121
|
-
# benefit even without re-running compinit).
|
|
122
|
-
# * `compinit -C` (skip security-check, use the cached dump) is used
|
|
123
|
-
# when the dump is fresh (< 24 h); full `compinit` rebuilds when
|
|
124
|
-
# the dump is older.
|
|
125
|
-
# * The dump is `zcompile`d in the background after each rebuild so
|
|
126
|
-
# subsequent shells load the bytecode form directly.
|
|
127
|
-
# * The fpath corpus itself is precompiled at chezmoi-apply time by
|
|
128
|
-
# `run_onchange_after_zcompile-completions.sh.tmpl` — that runs
|
|
129
|
-
# once per fpath change, not per shell start.
|
|
130
|
-
: ${DOTFILES_ENABLE_COMPINIT:=0}
|
|
131
|
-
: ${DOTFILES_DEFER_COMPINIT:=1}
|
|
132
|
-
|
|
133
|
-
_DOTFILES_ZCOMPDUMP="${XDG_CACHE_HOME:-${HOME}/.cache}/zsh/zcompdump-${ZSH_VERSION:-${ZSH_NAME:-unknown}}"
|
|
134
|
-
|
|
135
|
-
if [[ "${DOTFILES_ENABLE_COMPINIT}" == "1" ]] && [[ "${DOTFILES_FAST:-0}" != "1" ]] && [[ "${DOTFILES_ULTRA_FAST:-0}" != "1" ]]; then
|
|
136
|
-
autoload -Uz compinit
|
|
137
|
-
[[ -d "${_DOTFILES_ZCOMPDUMP:h}" ]] || mkdir -p "${_DOTFILES_ZCOMPDUMP:h}"
|
|
138
|
-
|
|
139
|
-
_deferred_compinit() {
|
|
140
|
-
if [[ "${DOTFILES_DEFER_COMPINIT}" == "1" ]]; then
|
|
141
|
-
_dotfiles_del_preexec _deferred_compinit
|
|
142
|
-
else
|
|
143
|
-
_dotfiles_del_precmd _deferred_compinit
|
|
144
|
-
fi
|
|
145
|
-
# Fresh dump (< 24 h) → use cached fast path; otherwise rebuild.
|
|
146
|
-
if [[ -n ${_DOTFILES_ZCOMPDUMP}(#qN.mh+24) ]]; then
|
|
147
|
-
compinit -d "${_DOTFILES_ZCOMPDUMP}"
|
|
148
|
-
else
|
|
149
|
-
compinit -C -d "${_DOTFILES_ZCOMPDUMP}"
|
|
150
|
-
fi
|
|
151
|
-
# Compile to bytecode in background for faster subsequent loads
|
|
152
|
-
{ [[ ! -f "${_DOTFILES_ZCOMPDUMP}.zwc" || "${_DOTFILES_ZCOMPDUMP}" -nt "${_DOTFILES_ZCOMPDUMP}.zwc" ]] && zcompile "${_DOTFILES_ZCOMPDUMP}" } &!
|
|
153
|
-
}
|
|
154
|
-
if [[ "${DOTFILES_DEFER_COMPINIT}" == "1" ]]; then
|
|
155
|
-
_dotfiles_add_preexec _deferred_compinit
|
|
156
|
-
else
|
|
157
|
-
_dotfiles_add_precmd _deferred_compinit
|
|
158
|
-
fi
|
|
159
|
-
|
|
160
|
-
zstyle ':completion:*' menu select
|
|
161
|
-
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
|
|
162
|
-
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
|
163
|
-
zstyle ':completion:*' special-dirs true
|
|
164
|
-
zstyle ':completion:*' verbose yes
|
|
165
|
-
fi
|
|
166
|
-
|
|
167
|
-
# Colors (opt-in; enables $fg/$bg variables)
|
|
168
|
-
: ${DOTFILES_ENABLE_COLORS:=0}
|
|
169
|
-
if [[ "${DOTFILES_ENABLE_COLORS}" == "1" ]]; then
|
|
170
|
-
: ${DOTFILES_DEFER_COLORS:=1}
|
|
171
|
-
if [[ "${DOTFILES_DEFER_COLORS}" == "1" ]]; then
|
|
172
|
-
_dotfiles_colors_zle_init() {
|
|
173
|
-
zle -D zle-line-init
|
|
174
|
-
# Skip when running -c (no prompt)
|
|
175
|
-
[[ -n "${ZSH_EXECUTION_STRING:-}" ]] && return 0
|
|
176
|
-
autoload -Uz colors && colors
|
|
177
|
-
}
|
|
178
|
-
zle -N zle-line-init _dotfiles_colors_zle_init
|
|
179
|
-
else
|
|
180
|
-
autoload -Uz colors && colors
|
|
181
|
-
fi
|
|
182
|
-
fi
|
|
183
|
-
unsetopt correct_all
|
|
184
|
-
|
|
185
|
-
# fzf integration
|
|
186
|
-
if [[ "${DOTFILES_FAST:-0}" != "1" ]] && [[ "${DOTFILES_ULTRA_FAST:-0}" != "1" ]]; then
|
|
187
|
-
if [[ -f "${HOME}/.config/fzf/fzf.zsh" ]]; then
|
|
188
|
-
source "${HOME}/.config/fzf/fzf.zsh"
|
|
189
|
-
elif [[ -f "${HOME}/.fzf.zsh" ]]; then
|
|
190
|
-
source "${HOME}/.fzf.zsh"
|
|
191
|
-
fi
|
|
192
|
-
fi
|
|
193
|
-
|
|
194
|
-
# Explicit fzf bindings (fallback if not already set by fzf)
|
|
195
|
-
if [[ "${DOTFILES_FAST:-0}" != "1" ]] && [[ "${DOTFILES_ULTRA_FAST:-0}" != "1" ]] && command -v fzf >/dev/null; then
|
|
196
|
-
bindkey -M viins -s '^T' 'fzf^M'
|
|
197
|
-
bindkey -M viins -s '^R' 'fzf^M'
|
|
198
|
-
fi
|
|
199
|
-
|
|
200
|
-
# direnv (directory environments)
|
|
201
|
-
if [[ "${DOTFILES_FAST:-0}" != "1" ]] && [[ "${DOTFILES_ULTRA_FAST:-0}" != "1" ]] && command -v direnv >/dev/null; then
|
|
202
|
-
# Custom quiet hook: suppress direnv status chatter on every prompt/chdir.
|
|
203
|
-
_dotfiles_direnv_hook() {
|
|
204
|
-
# Fast path: skip direnv in dotfiles unless flake mode is explicitly enabled.
|
|
205
|
-
if [[ "${PWD:A}" == "${HOME}/.dotfiles"* ]] && [[ "${DOTFILES_USE_FLAKE:-0}" != "1" ]] && [[ "${CI:-0}" != "1" ]]; then
|
|
206
|
-
return 0
|
|
207
|
-
fi
|
|
208
|
-
trap -- '' SIGINT
|
|
209
|
-
eval "$(direnv export zsh 2>/dev/null)"
|
|
210
|
-
trap - SIGINT
|
|
211
|
-
}
|
|
212
|
-
autoload -Uz add-zsh-hook
|
|
213
|
-
add-zsh-hook chpwd _dotfiles_direnv_hook
|
|
214
|
-
fi
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Terminal bell (sound + visual)
|
|
2
|
-
|
|
3
|
-
: ${DOTFILES_BELL_SOUND:=1}
|
|
4
|
-
: ${DOTFILES_BELL_VISUAL:=1}
|
|
5
|
-
|
|
6
|
-
if [[ "$DOTFILES_BELL_SOUND" == "1" ]]; then
|
|
7
|
-
unsetopt NO_BEEP
|
|
8
|
-
setopt BEEP
|
|
9
|
-
else
|
|
10
|
-
setopt NO_BEEP
|
|
11
|
-
fi
|
|
12
|
-
|
|
13
|
-
# Some zsh builds don't include visualbell; guard to avoid startup errors.
|
|
14
|
-
if (( $+options[visualbell] )); then
|
|
15
|
-
if [[ "$DOTFILES_BELL_VISUAL" == "1" ]]; then
|
|
16
|
-
setopt VISUALBELL
|
|
17
|
-
else
|
|
18
|
-
unsetopt VISUALBELL
|
|
19
|
-
fi
|
|
20
|
-
fi
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Smart Alias Function (High-Fidelity TUI)
|
|
2
|
-
alias_wrapper() {
|
|
3
|
-
if [[ $# -eq 0 ]]; then
|
|
4
|
-
# Find gum cmd dynamically if needed
|
|
5
|
-
local gum_cmd
|
|
6
|
-
gum_cmd=$(command -v gum 2>/dev/null || (command -v mise >/dev/null && mise which "aqua:charmbracelet/gum" 2>/dev/null))
|
|
7
|
-
|
|
8
|
-
if [[ -n "$gum_cmd" ]]; then
|
|
9
|
-
# Use printf to get a literal tab
|
|
10
|
-
local tab=$'\t'
|
|
11
|
-
|
|
12
|
-
# Extract aliases, format as Tab separated, ensure only 2 columns, and pipe to gum table
|
|
13
|
-
builtin alias | sed -E "s/^([^=]+)='?([^']*)'?$/\1${tab}\2/" |
|
|
14
|
-
while IFS=$tab read -r alias_name cmd_body; do
|
|
15
|
-
if [[ -n "$alias_name" && -n "$cmd_body" ]]; then
|
|
16
|
-
# Ensure no extra tabs in body and exactly one tab total
|
|
17
|
-
local clean_cmd="${cmd_body//$tab/ }"
|
|
18
|
-
printf "%s\t%s\n" "$alias_name" "$clean_cmd"
|
|
19
|
-
fi
|
|
20
|
-
done |
|
|
21
|
-
"$gum_cmd" table --separator "${tab}" --print --columns "Alias,Command" --widths 15,60 \
|
|
22
|
-
--border rounded --border.foreground 212 --header.foreground 212
|
|
23
|
-
elif command -v bat >/dev/null 2>&1; then
|
|
24
|
-
builtin alias | bat -l sh --style=plain
|
|
25
|
-
else
|
|
26
|
-
builtin alias
|
|
27
|
-
fi
|
|
28
|
-
else
|
|
29
|
-
builtin alias "$@"
|
|
30
|
-
fi
|
|
31
|
-
}
|
|
32
|
-
alias alias=alias_wrapper
|