@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,77 +0,0 @@
|
|
|
1
|
-
{{- $fishFuncsPattern := joinPath .chezmoi.sourceDir "dot_config/fish/functions/*.fish" -}}
|
|
2
|
-
{{- $fishFuncs := glob $fishFuncsPattern -}}
|
|
3
|
-
# Fish aliases — bridged from bash alias library (Generated by Chezmoi)
|
|
4
|
-
# Edit .chezmoitemplates/aliases/ source files, not this file.
|
|
5
|
-
#
|
|
6
|
-
# Data flow: .chezmoitemplates/aliases/ -> 90/91-ux-aliases*.sh -> bash bridge -> cache
|
|
7
|
-
|
|
8
|
-
if status is-interactive
|
|
9
|
-
set -l _cache_dir "$HOME/.cache/fish"
|
|
10
|
-
set -l _alias_cache "$_cache_dir/bash-aliases.fish"
|
|
11
|
-
set -l _src_eager "$HOME/.config/shell/90-ux-aliases.sh"
|
|
12
|
-
set -l _src_lazy "$HOME/.config/shell/91-ux-aliases-lazy.sh"
|
|
13
|
-
|
|
14
|
-
# Native fish functions that must not be overridden by bash aliases
|
|
15
|
-
set -l _skip{{ range $fishFuncs }} {{ trimSuffix ".fish" (base .) }}{{ end }}
|
|
16
|
-
|
|
17
|
-
# Rebuild cache when alias sources change or cache is missing
|
|
18
|
-
set -l _stale 0
|
|
19
|
-
if not test -f "$_alias_cache"
|
|
20
|
-
set _stale 1
|
|
21
|
-
else if test -f "$_src_eager"; and test "$_src_eager" -nt "$_alias_cache"
|
|
22
|
-
set _stale 1
|
|
23
|
-
else if test -f "$_src_lazy"; and test "$_src_lazy" -nt "$_alias_cache"
|
|
24
|
-
set _stale 1
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
if test "$_stale" = 1
|
|
28
|
-
mkdir -p "$_cache_dir"
|
|
29
|
-
# Source bash aliases, filter fish-incompatible syntax, write cache
|
|
30
|
-
env -i HOME="$HOME" PATH="$PATH" bash --norc --noprofile -c '
|
|
31
|
-
source "$HOME/.config/shell/90-ux-aliases.sh" 2>/dev/null
|
|
32
|
-
source "$HOME/.config/shell/91-ux-aliases-lazy.sh" 2>/dev/null
|
|
33
|
-
alias -p 2>/dev/null | while IFS= read -r line; do
|
|
34
|
-
name="${line#alias }"
|
|
35
|
-
name="${name#-- }"
|
|
36
|
-
name="${name%%=*}"
|
|
37
|
-
[[ "$name" =~ ^[a-zA-Z_][a-zA-Z0-9_.-]*$ ]] || continue
|
|
38
|
-
val="${line#*=}"
|
|
39
|
-
# Skip bash-specific syntax incompatible with fish
|
|
40
|
-
case "$val" in
|
|
41
|
-
*\$\{*) continue ;;
|
|
42
|
-
*"; then "*) continue ;;
|
|
43
|
-
*"[[ "*) continue ;;
|
|
44
|
-
*\`*) continue ;;
|
|
45
|
-
esac
|
|
46
|
-
printf "alias %s=%s\n" "$name" "$val"
|
|
47
|
-
done
|
|
48
|
-
' 2>/dev/null | while read -l _line
|
|
49
|
-
set -l _parts (string match -r '^alias ([^=]+)=' -- "$_line")
|
|
50
|
-
set -l _name
|
|
51
|
-
if set -q _parts[2]
|
|
52
|
-
set _name $_parts[2]
|
|
53
|
-
end
|
|
54
|
-
set -l _target (string replace -r '^alias [^=]+=["'\'']?([^ "'\'']+).*$' '$1' -- "$_line")
|
|
55
|
-
if set -q _name[1]; and not contains -- "$_name" $_skip
|
|
56
|
-
if string match -rq '^dot_[a-z0-9_]+$' -- "$_target"
|
|
57
|
-
continue
|
|
58
|
-
end
|
|
59
|
-
echo "$_line"
|
|
60
|
-
end
|
|
61
|
-
end >"$_alias_cache.tmp"
|
|
62
|
-
mv "$_alias_cache.tmp" "$_alias_cache"
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
# Source cached aliases
|
|
66
|
-
if test -s "$_alias_cache"
|
|
67
|
-
source "$_alias_cache"
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
# Remove stale alias wrappers that reference bash-only helper functions.
|
|
71
|
-
if functions -q cat; and not functions -q dot_cat
|
|
72
|
-
set -l _cat_def (functions cat)
|
|
73
|
-
if string match -rq 'dot_cat \$argv' -- "$_cat_def"
|
|
74
|
-
functions -e cat
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
# Shadow vendor `/opt/homebrew/share/fish/vendor_conf.d/direnv.fish`.
|
|
2
|
-
# fish dedupes conf.d files by basename — user conf.d wins. Direnv is
|
|
3
|
-
# loaded lazily by `_dotfiles_async_init` in init.fish via `_cached_eval
|
|
4
|
-
# direnv hook fish`, avoiding the unconditional cost on every shell start.
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v{{ .dotfiles_version }}) — Environment, PATH, and tool defaults
|
|
2
|
-
# Consolidated for startup performance (fewer conf.d files = less source overhead).
|
|
3
|
-
# Values baked at chezmoi apply time where possible — no subshells at startup.
|
|
4
|
-
|
|
5
|
-
# ── PATH Construction ────────────────────────────────────────────
|
|
6
|
-
# Uses direct set -p (builtin) instead of fish_add_path for speed.
|
|
7
|
-
# Lowest priority first, highest last (each set -p pushes to front).
|
|
8
|
-
set -gx PIPX_HOME (set -q XDG_DATA_HOME; and echo "$XDG_DATA_HOME"; or echo "$HOME/.local/share")/pipx
|
|
9
|
-
set -gx PIPX_BIN_DIR (set -q XDG_BIN_HOME; and echo "$XDG_BIN_HOME"; or echo "$HOME/.local/bin")
|
|
10
|
-
set -gx BUN_INSTALL "$HOME/.bun"
|
|
11
|
-
|
|
12
|
-
for p in \
|
|
13
|
-
/usr/sbin /sbin /usr/bin /bin \
|
|
14
|
-
/opt/homebrew/sbin /opt/homebrew/bin \
|
|
15
|
-
/opt/homebrew/opt/ruby/bin \
|
|
16
|
-
"$HOME/.gem/ruby/bin" \
|
|
17
|
-
"$PIPX_BIN_DIR" \
|
|
18
|
-
"$HOME/.cargo/bin" \
|
|
19
|
-
"$HOME/go/bin" \
|
|
20
|
-
"$BUN_INSTALL/bin" \
|
|
21
|
-
"$HOME/.node_modules/bin" \
|
|
22
|
-
"$HOME/.luarocks/bin" \
|
|
23
|
-
{{- if eq .chezmoi.os "darwin" }}
|
|
24
|
-
/Library/Apple/usr/bin \
|
|
25
|
-
{{- end }}
|
|
26
|
-
"$HOME/.local/bin" \
|
|
27
|
-
"$HOME/.local/share/mise/shims" \
|
|
28
|
-
"$HOME/bin"
|
|
29
|
-
contains -- "$p" $PATH; or set -p PATH "$p"
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# ── Build artifacts → /tmp (cleared on reboot) ─────────────────
|
|
33
|
-
mkdir -p /tmp/builds
|
|
34
|
-
|
|
35
|
-
# ── Direnv ──────────────────────────────────────────────────────
|
|
36
|
-
set -gx DIRENV_LOG_FORMAT ""
|
|
37
|
-
|
|
38
|
-
# ── Environment Variables ────────────────────────────────────────
|
|
39
|
-
status is-interactive; or return
|
|
40
|
-
|
|
41
|
-
set -gx HOSTNAME '{{ output "hostname" | trim }}'
|
|
42
|
-
|
|
43
|
-
# ── FZF Defaults ─────────────────────────────────────────────────
|
|
44
|
-
if test -f "$HOME/.config/shell/40-fzf-defaults.sh"
|
|
45
|
-
set -gx FZF_DEFAULT_COMMAND 'fd --type f --strip-cwd-prefix --hidden --follow --exclude .git'
|
|
46
|
-
set -gx FZF_CTRL_T_COMMAND "$FZF_DEFAULT_COMMAND"
|
|
47
|
-
set -gx FZF_DEFAULT_OPTS "--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 --multi --layout=reverse --border --height=40% --preview-window='right:60%:wrap' --preview 'if [ -d {} ]; then eza --tree --level 2 --icons {} | head -200; else bat --style=numbers --color=always --line-range :500 {} 2>/dev/null; or cat {} | head -500; end'"
|
|
48
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{{- $root := . -}}
|
|
2
|
-
{{- $groupsPath := joinPath $root.chezmoi.sourceDir ".chezmoitemplates/functions/groups.json" -}}
|
|
3
|
-
{{- $groups := (fromJson (include $groupsPath)) -}}
|
|
4
|
-
{{- $fishFuncsPattern := joinPath $root.chezmoi.sourceDir "dot_config/fish/functions/*.fish" -}}
|
|
5
|
-
{{- $fishFuncs := glob $fishFuncsPattern -}}
|
|
6
|
-
# Fish function wrappers (Generated by Chezmoi)
|
|
7
|
-
# Delegates to bash function library in ~/.config/shell/50-logic-functions.sh
|
|
8
|
-
# Edit .chezmoitemplates/functions/ source files, not this file.
|
|
9
|
-
|
|
10
|
-
if status is-interactive
|
|
11
|
-
{{- range $group, $files := $groups }}
|
|
12
|
-
{{- range $files }}
|
|
13
|
-
{{- $func := trimSuffix ".sh" (base .) }}
|
|
14
|
-
{{- $nativePath := joinPath $root.chezmoi.sourceDir (printf "dot_config/fish/functions/%s.fish" $func) }}
|
|
15
|
-
{{- if not (has $nativePath $fishFuncs) }}
|
|
16
|
-
function {{ $func }} --description 'Dotfiles: {{ $func }}'
|
|
17
|
-
bash -c 'source "$HOME/.config/shell/50-logic-functions.sh" 2>/dev/null; {{ $func }} "$@"' -- $argv
|
|
18
|
-
end
|
|
19
|
-
{{- end }}
|
|
20
|
-
{{- end }}
|
|
21
|
-
{{- end }}
|
|
22
|
-
end
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v{{ .dotfiles_version }}) — Interactive initialization
|
|
2
|
-
# Consolidated: init + keybindings + modern-core + carapace
|
|
3
|
-
# Non-interactive shells skip this entire file.
|
|
4
|
-
|
|
5
|
-
if not status is-interactive
|
|
6
|
-
return
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
# ── Shell Cache ──────────────────────────────────────────────────
|
|
10
|
-
set -g SHELL_CACHE "$XDG_CACHE_HOME"
|
|
11
|
-
if test -z "$SHELL_CACHE"
|
|
12
|
-
set SHELL_CACHE "$HOME/.cache"
|
|
13
|
-
end
|
|
14
|
-
set SHELL_CACHE "$SHELL_CACHE/fish"
|
|
15
|
-
mkdir -p "$SHELL_CACHE"
|
|
16
|
-
|
|
17
|
-
# ── Artifact Mode ────────────────────────────────────────────────
|
|
18
|
-
if not set -q DOTFILES_ARTIFACT_MODE
|
|
19
|
-
set -gx DOTFILES_ARTIFACT_MODE 0
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
if test "$DOTFILES_ARTIFACT_MODE" = "1"
|
|
23
|
-
function fish_prompt
|
|
24
|
-
set_color green
|
|
25
|
-
echo -n "➜ "
|
|
26
|
-
set_color normal
|
|
27
|
-
end
|
|
28
|
-
function fish_right_prompt; end
|
|
29
|
-
set -g fish_greeting ""
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# ── Starship (eager — must survive cache clears) ────────────────
|
|
33
|
-
function _dotfiles_source_cached_init --argument-names tool file
|
|
34
|
-
if test -n "$XDG_CACHE_HOME"
|
|
35
|
-
set -l cache_root "$XDG_CACHE_HOME"
|
|
36
|
-
else
|
|
37
|
-
set -l cache_root "$HOME/.cache"
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
set -l cache_file "$cache_root/fish/$file"
|
|
41
|
-
if test -s "$cache_file"
|
|
42
|
-
source "$cache_file"
|
|
43
|
-
return 0
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
if command -v $tool >/dev/null 2>&1
|
|
47
|
-
_cached_eval $tool init fish
|
|
48
|
-
return $status
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
return 1
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
if test "$DOTFILES_ARTIFACT_MODE" = "0"; and command -v starship >/dev/null
|
|
55
|
-
if not _dotfiles_source_cached_init starship starship-init.fish
|
|
56
|
-
starship init fish | source
|
|
57
|
-
end
|
|
58
|
-
# Transient Prompt: collapse past prompts to the [character] glyph
|
|
59
|
-
# after Enter, reducing scrollback noise.
|
|
60
|
-
if functions -q enable_transience
|
|
61
|
-
enable_transience
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
# ── Lazy Hydration (deferred to first prompt) ────────────────────
|
|
66
|
-
function _dotfiles_async_init
|
|
67
|
-
# Mise
|
|
68
|
-
if command -v mise >/dev/null
|
|
69
|
-
if not test -s "$SHELL_CACHE/mise-init.fish"
|
|
70
|
-
_cached_eval mise activate fish
|
|
71
|
-
else
|
|
72
|
-
source "$SHELL_CACHE/mise-init.fish"
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
# Atuin
|
|
76
|
-
if command -v atuin >/dev/null
|
|
77
|
-
if not test -s "$SHELL_CACHE/atuin-init.fish"
|
|
78
|
-
_cached_eval atuin init fish
|
|
79
|
-
else
|
|
80
|
-
source "$SHELL_CACHE/atuin-init.fish"
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
# Zoxide (--cmd=cd replaces cd with zoxide-aware version)
|
|
84
|
-
if command -v zoxide >/dev/null
|
|
85
|
-
if not test -s "$SHELL_CACHE/zoxide-init.fish"
|
|
86
|
-
_cached_eval zoxide init --cmd=cd fish
|
|
87
|
-
else
|
|
88
|
-
source "$SHELL_CACHE/zoxide-init.fish"
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
# FZF
|
|
92
|
-
if command -v fzf >/dev/null
|
|
93
|
-
if not test -s "$SHELL_CACHE/fzf-init.fish"
|
|
94
|
-
_cached_eval fzf --fish
|
|
95
|
-
else
|
|
96
|
-
source "$SHELL_CACHE/fzf-init.fish"
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
# Direnv
|
|
100
|
-
if command -v direnv >/dev/null
|
|
101
|
-
if not test -s "$SHELL_CACHE/direnv-init.fish"
|
|
102
|
-
_cached_eval direnv hook fish
|
|
103
|
-
else
|
|
104
|
-
source "$SHELL_CACHE/direnv-init.fish"
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
# Carapace completions (cached)
|
|
108
|
-
if command -v carapace >/dev/null 2>&1
|
|
109
|
-
set -l carapace_cache "$SHELL_CACHE/carapace-init.fish"
|
|
110
|
-
if test -s "$carapace_cache"
|
|
111
|
-
source "$carapace_cache"
|
|
112
|
-
else
|
|
113
|
-
set -l _carapace_tmp "$carapace_cache.tmp.$fish_pid"
|
|
114
|
-
if carapace _carapace fish >"$_carapace_tmp" 2>/dev/null
|
|
115
|
-
mv "$_carapace_tmp" "$carapace_cache"
|
|
116
|
-
source "$carapace_cache"
|
|
117
|
-
else
|
|
118
|
-
rm -f "$_carapace_tmp"
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
# Pueue daemon (deferred here to avoid blocking shell startup)
|
|
123
|
-
if command -v pueue >/dev/null; and not pueue status >/dev/null 2>&1
|
|
124
|
-
if command -v pueued >/dev/null
|
|
125
|
-
pueued -d >/dev/null 2>&1
|
|
126
|
-
end
|
|
127
|
-
end
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
function _dotfiles_trigger_hydration --on-event fish_prompt
|
|
131
|
-
functions -e _dotfiles_trigger_hydration
|
|
132
|
-
functions -e _dotfiles_trigger_hydration_on_missing
|
|
133
|
-
_dotfiles_async_init
|
|
134
|
-
if test "$DOTFILES_ARTIFACT_MODE" = "1"
|
|
135
|
-
begin
|
|
136
|
-
bash "$HOME/.dotfiles/scripts/dot/lib/bento.sh" </dev/null
|
|
137
|
-
kill -WINCH $fish_pid
|
|
138
|
-
end &
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
# Belt-and-braces: if the user types an unknown command BEFORE the
|
|
143
|
-
# first prompt fires (e.g. `fish -ic 'foo'` from a script that
|
|
144
|
-
# doesn't render a prompt), trigger the same lazy-layer load via
|
|
145
|
-
# fish_command_not_found. The hydration function may already have
|
|
146
|
-
# fired and removed itself — guard against double-load. (Closes
|
|
147
|
-
# AC#2 of #880; fish's analogue to zsh's function_not_found.)
|
|
148
|
-
function _dotfiles_trigger_hydration_on_missing --on-event fish_command_not_found
|
|
149
|
-
functions -e _dotfiles_trigger_hydration_on_missing
|
|
150
|
-
functions -e _dotfiles_trigger_hydration
|
|
151
|
-
_dotfiles_async_init
|
|
152
|
-
# After hydration, the command may now resolve; let fish's default
|
|
153
|
-
# not-found handler print the standard message for whatever the
|
|
154
|
-
# user typed.
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
# ── Keybindings (Fish 4.x enhanced) ─────────────────────────────
|
|
158
|
-
bind ctrl-backspace backward-kill-word
|
|
159
|
-
bind alt-enter 'commandline -f accept-autosuggestion; commandline -f execute'
|
|
160
|
-
bind ctrl-z undo
|
|
161
|
-
bind ctrl-shift-z redo
|
|
162
|
-
bind alt-up 'prevd; commandline -f repaint'
|
|
163
|
-
bind alt-down 'nextd; commandline -f repaint'
|
|
164
|
-
bind ctrl-left backward-word
|
|
165
|
-
bind ctrl-right forward-word
|
|
166
|
-
bind alt-l 'echo; ls; commandline -f repaint'
|
|
167
|
-
bind alt-. history-token-search-backward
|
|
168
|
-
bind ctrl-g 'echo; git status --short 2>/dev/null || echo "Not a git repo"; commandline -f repaint'
|
|
169
|
-
bind alt-e edit_command_buffer
|
|
170
|
-
if command -q fzf
|
|
171
|
-
bind ctrl-t 'set -l result (fzf --height 40% --reverse 2>/dev/null); and commandline -it -- $result; commandline -f repaint'
|
|
172
|
-
end
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
# Shadow vendor `/opt/homebrew/share/fish/vendor_conf.d/mise-activate.fish`.
|
|
2
|
-
# fish dedupes conf.d files by basename — user conf.d wins. Mise is loaded
|
|
3
|
-
# lazily by `_dotfiles_async_init` in init.fish via `_cached_eval mise
|
|
4
|
-
# activate fish`, which is ~10× faster than the vendor's eager hook-env
|
|
5
|
-
# call on every shell start (saves ~140ms in fish startup).
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v{{ .dotfiles_version }}) - <https://dotfiles.io>
|
|
2
|
-
# Made With ❤️ in London, United Kingdom
|
|
3
|
-
# Designed by
|
|
4
|
-
# Copyright (c) 2015-2026. All rights reserved.
|
|
5
|
-
# License: MIT
|
|
6
|
-
|
|
7
|
-
# Performance optimization - skip if not interactive
|
|
8
|
-
status is-interactive; or return
|
|
9
|
-
|
|
10
|
-
# Only source once
|
|
11
|
-
if set -q FISH_CONFIG_SOURCED
|
|
12
|
-
return
|
|
13
|
-
end
|
|
14
|
-
set -g FISH_CONFIG_SOURCED 1
|
|
15
|
-
|
|
16
|
-
{{- /* Input Validation: Ensure crucial variables are set */ -}}
|
|
17
|
-
{{- if not .chezmoi.homeDir -}}
|
|
18
|
-
{{- fail "Critical Error: .chezmoi.homeDir is not set!" -}}
|
|
19
|
-
{{- end -}}
|
|
20
|
-
|
|
21
|
-
# Load local customizations if they exist
|
|
22
|
-
if test -f "$HOME/.config/fish/config.fish.local"
|
|
23
|
-
source "$HOME/.config/fish/config.fish.local"
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# Ensure LS_COLORS is set for fish (bridged from bash dircolors setup)
|
|
27
|
-
if not set -q LS_COLORS
|
|
28
|
-
set -l _dircolors_cache "$HOME/.cache/shell/dircolors.sh"
|
|
29
|
-
if test -f "$_dircolors_cache"
|
|
30
|
-
# Extract LS_COLORS value from cached dircolors output
|
|
31
|
-
set -l _val (string match -r "LS_COLORS='([^']+)'" < "$_dircolors_cache")
|
|
32
|
-
if set -q _val[2]
|
|
33
|
-
set -gx LS_COLORS "$_val[2]"
|
|
34
|
-
end
|
|
35
|
-
else if command -q dircolors
|
|
36
|
-
set -gx LS_COLORS (dircolors -c 2>/dev/null | string match -r "LS_COLORS='([^']+)'" | tail -1)
|
|
37
|
-
else if test (uname -s) = "Darwin"
|
|
38
|
-
set -gx CLICOLOR 1
|
|
39
|
-
set -gx LSCOLORS "ExFxCxDxBxegedabagacad"
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# Welcome message
|
|
44
|
-
set -g fish_greeting ""
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
jorgebucaran/fisher
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
# _cached_eval — Cache tool init output with binary mtime invalidation.
|
|
2
|
-
# Mirrors the bash/zsh _cached_eval pattern for Fish.
|
|
3
|
-
#
|
|
4
|
-
# Usage: _cached_eval <tool_binary> <init_args...>
|
|
5
|
-
# Example: _cached_eval starship init fish
|
|
6
|
-
# _cached_eval zoxide init fish
|
|
7
|
-
#
|
|
8
|
-
# Cache files stored in $XDG_CACHE_HOME/fish/ (or ~/.cache/fish/)
|
|
9
|
-
# Cache invalidated when binary mtime, realpath, or any file-path arg
|
|
10
|
-
# changes (e.g. after upgrade or PATH-shadow swap).
|
|
11
|
-
#
|
|
12
|
-
# Env knobs:
|
|
13
|
-
# EVALCACHE_DISABLE=true bypass cache read AND write (debug aid)
|
|
14
|
-
# EVALCACHE_TIMING=1 log per-call timing for `dot perf --by-tool`
|
|
15
|
-
|
|
16
|
-
function _cached_eval_log_timing --description 'Append a timing event for dot perf --by-tool'
|
|
17
|
-
set -l label $argv[1]
|
|
18
|
-
set -l t0 $argv[2]
|
|
19
|
-
set -l t1 $argv[3]
|
|
20
|
-
set -l rc $argv[4]
|
|
21
|
-
set -l shell fish
|
|
22
|
-
if test (count $argv) -ge 5
|
|
23
|
-
set shell $argv[5]
|
|
24
|
-
end
|
|
25
|
-
set -l log_dir (set -q XDG_STATE_HOME; and echo $XDG_STATE_HOME; or echo "$HOME/.local/state")/dotfiles
|
|
26
|
-
mkdir -p "$log_dir" 2>/dev/null; or return 0
|
|
27
|
-
set -l logfile "$log_dir/eval-timings.jsonl"
|
|
28
|
-
test -f "$logfile"; or touch "$logfile" 2>/dev/null; or return 0
|
|
29
|
-
# nanoseconds -> milliseconds
|
|
30
|
-
set -l ms 0
|
|
31
|
-
if test -n "$t0"; and test -n "$t1"
|
|
32
|
-
set ms (math --scale=0 "($t1 - $t0) / 1000000") 2>/dev/null; or set ms 0
|
|
33
|
-
end
|
|
34
|
-
set -l ts (date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
35
|
-
printf '{"ts":"%s","shell":"%s","label":"%s","ms":%s,"rc":%s}\n' \
|
|
36
|
-
"$ts" "$shell" "$label" "$ms" "$rc" \
|
|
37
|
-
>>"$logfile" 2>/dev/null; or true
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
function _cached_eval_impl
|
|
41
|
-
set -l tool_name $argv[1]
|
|
42
|
-
if test -z "$tool_name"
|
|
43
|
-
echo "_cached_eval: usage: _cached_eval <tool> <init args...>" >&2
|
|
44
|
-
return 1
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
# Resolve binary path
|
|
48
|
-
set -l tool_path (command -v $tool_name 2>/dev/null)
|
|
49
|
-
if test -z "$tool_path"
|
|
50
|
-
return 1
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
# Debug bypass: skip cache read AND write entirely.
|
|
54
|
-
if test "$EVALCACHE_DISABLE" = true
|
|
55
|
-
command $argv 2>/dev/null | source
|
|
56
|
-
return $status
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
set -l cache_dir (set -q XDG_CACHE_HOME; and echo $XDG_CACHE_HOME; or echo "$HOME/.cache")/fish
|
|
60
|
-
set -l cache_file "$cache_dir/$tool_name-init.fish"
|
|
61
|
-
set -l pin_file "$cache_dir/$tool_name-init.bin"
|
|
62
|
-
|
|
63
|
-
mkdir -p "$cache_dir"
|
|
64
|
-
|
|
65
|
-
set -l real_bin (realpath -- "$tool_path" 2>/dev/null; or echo "$tool_path")
|
|
66
|
-
|
|
67
|
-
# Cache valid when: present non-empty, binary not newer, recorded realpath
|
|
68
|
-
# still matches, and no file-path argument modified since cache write.
|
|
69
|
-
set -l stale 0
|
|
70
|
-
if not test -s "$cache_file"
|
|
71
|
-
set stale 1
|
|
72
|
-
else if test "$tool_path" -nt "$cache_file"
|
|
73
|
-
set stale 1
|
|
74
|
-
else if test -f "$pin_file"
|
|
75
|
-
set -l pinned (cat "$pin_file" 2>/dev/null)
|
|
76
|
-
if test -n "$pinned"; and test "$pinned" != "$real_bin"
|
|
77
|
-
set stale 1
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
if test "$stale" = 0
|
|
81
|
-
for arg in $argv[2..]
|
|
82
|
-
if test -f "$arg"; and test "$arg" -nt "$cache_file"
|
|
83
|
-
set stale 1
|
|
84
|
-
break
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
# Regenerate cache if stale
|
|
90
|
-
if test "$stale" = 1
|
|
91
|
-
set -l init_output (command $argv 2>/dev/null)
|
|
92
|
-
set -l rc $status
|
|
93
|
-
if test "$rc" -ne 0
|
|
94
|
-
echo "[WARN] $tool_name init exited $rc; not caching" >&2
|
|
95
|
-
return $rc
|
|
96
|
-
end
|
|
97
|
-
# Reject suspicious patterns indicating malicious payloads
|
|
98
|
-
if string match -rq 'curl\s.*\|\s*(ba)?sh|wget\s.*\|\s*(ba)?sh|nc\s+-e|/dev/tcp/|base64\s+-d\s*\|' -- "$init_output"
|
|
99
|
-
echo "[WARN] Suspicious output from $tool_name init, skipping" >&2
|
|
100
|
-
return 1
|
|
101
|
-
end
|
|
102
|
-
set -l tmp_cache "$cache_file.tmp.$fish_pid"
|
|
103
|
-
printf '%s\n' $init_output >"$tmp_cache"
|
|
104
|
-
mv "$tmp_cache" "$cache_file" # atomic rename
|
|
105
|
-
set -l tmp_pin "$pin_file.tmp.$fish_pid"
|
|
106
|
-
printf '%s\n' "$real_bin" >"$tmp_pin"
|
|
107
|
-
mv "$tmp_pin" "$pin_file"
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# Source cached output
|
|
111
|
-
if test -s "$cache_file"
|
|
112
|
-
source "$cache_file"
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
function _cached_eval --description 'Cache and source tool init output'
|
|
117
|
-
if test "$EVALCACHE_TIMING" != 1
|
|
118
|
-
_cached_eval_impl $argv
|
|
119
|
-
return $status
|
|
120
|
-
end
|
|
121
|
-
set -l _ce_t0 (date +%s%N 2>/dev/null; or echo 0)
|
|
122
|
-
_cached_eval_impl $argv
|
|
123
|
-
set -l _ce_rc $status
|
|
124
|
-
set -l _ce_t1 (date +%s%N 2>/dev/null; or echo 0)
|
|
125
|
-
set -l label unknown
|
|
126
|
-
if test (count $argv) -ge 1
|
|
127
|
-
set label $argv[1]
|
|
128
|
-
end
|
|
129
|
-
_cached_eval_log_timing "$label" "$_ce_t0" "$_ce_t1" "$_ce_rc" fish
|
|
130
|
-
return $_ce_rc
|
|
131
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# _cached_eval_clear — Remove cache files written by _cached_eval.
|
|
2
|
-
# Safe: only removes *-init.fish and *-init.bin in $XDG_CACHE_HOME/fish.
|
|
3
|
-
|
|
4
|
-
function _cached_eval_clear --description 'Clear caches written by _cached_eval'
|
|
5
|
-
set -l cache_dir (set -q XDG_CACHE_HOME; and echo $XDG_CACHE_HOME; or echo "$HOME/.cache")/fish
|
|
6
|
-
if not test -d "$cache_dir"
|
|
7
|
-
printf 'Cleared 0 cached eval file(s) from %s\n' "$cache_dir"
|
|
8
|
-
return 0
|
|
9
|
-
end
|
|
10
|
-
set -l count 0
|
|
11
|
-
for f in $cache_dir/*-init.fish $cache_dir/*-init.bin
|
|
12
|
-
if test -f "$f"
|
|
13
|
-
rm -f -- "$f"; and set count (math $count + 1)
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
printf 'Cleared %d cached eval file(s) from %s\n' $count "$cache_dir"
|
|
17
|
-
end
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
function als --description 'Instant-Load High-Fidelity Command Explorer'
|
|
2
|
-
set -l data_file "$HOME/.config/shell/als_data.txt"
|
|
3
|
-
|
|
4
|
-
if not test -f "$data_file"
|
|
5
|
-
echo "Error: Command data not found. Please run 'chezmoi apply'."
|
|
6
|
-
return 1
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
# Find gum cmd robustly
|
|
10
|
-
set -l gum_cmd (command -v gum 2>/dev/null)
|
|
11
|
-
if test -z "$gum_cmd"
|
|
12
|
-
for f in $HOME/.local/share/mise/installs/aqua-charmbracelet-gum/*/gum*/gum
|
|
13
|
-
if test -x "$f"; set gum_cmd "$f"; break; end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
if test -z "$gum_cmd"
|
|
18
|
-
echo "Error: 'gum' not found. Please ensure mise tools are installed."
|
|
19
|
-
return 1
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# Search Interface (Near-Instant)
|
|
23
|
-
set -l selected ("$gum_cmd" filter --placeholder "Search categories, aliases, or descriptions..." \
|
|
24
|
-
--indicator "" --indicator.foreground 212 \
|
|
25
|
-
--match.foreground 212 --text.foreground 255 --height 20 < "$data_file")
|
|
26
|
-
|
|
27
|
-
if test -n "$selected"
|
|
28
|
-
# Extract metadata from hidden fields
|
|
29
|
-
set -l parts (string split "|SEP|" "$selected")
|
|
30
|
-
set -l final_cmd $parts[2]
|
|
31
|
-
set -l final_name $parts[3]
|
|
32
|
-
|
|
33
|
-
# Clean the display string for the detail view (remove ANSI and SEP)
|
|
34
|
-
set -l clean_display (echo "$selected" | sed 's/\x1b\[[0-9;]*m//g' | sed 's/|SEP|.*$//' | string trim)
|
|
35
|
-
|
|
36
|
-
echo ""
|
|
37
|
-
"$gum_cmd" style --foreground 212 --border rounded --border-foreground 212 --padding "1 2" \
|
|
38
|
-
" COMMAND INTELLIGENCE" \
|
|
39
|
-
" Identity: $final_name" \
|
|
40
|
-
" Exec: $final_cmd" \
|
|
41
|
-
" Details: $clean_display"
|
|
42
|
-
|
|
43
|
-
echo "$final_cmd" | cb >/dev/null 2>&1
|
|
44
|
-
"$gum_cmd" style --foreground 240 " Copied to clipboard"
|
|
45
|
-
end
|
|
46
|
-
end
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
function bg-upgrade --description 'Background upgrade of all package managers'
|
|
2
|
-
echo "🚀 Starting background upgrades (Homebrew, Nix, Chezmoi)..."
|
|
3
|
-
if command -v brew >/dev/null; silent-run "brew upgrade"; end
|
|
4
|
-
if command -v nix >/dev/null; silent-run "nix flake update"; end
|
|
5
|
-
silent-run "chezmoi update"
|
|
6
|
-
echo "Check status with 'pueue status'"
|
|
7
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
function dot --description 'dotfiles manager'
|
|
2
|
-
if test "$argv[1]" = "load"
|
|
3
|
-
# Since fish doesn't have the same "lazy loading" mechanism as this zsh setup
|
|
4
|
-
# we'll just indicate that we're ready.
|
|
5
|
-
# But we'll still call the real dot if it exists.
|
|
6
|
-
if test "$argv[2]" = "--status"
|
|
7
|
-
echo "ready"
|
|
8
|
-
return 0
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
if test -x "$HOME/.local/bin/dot"
|
|
13
|
-
"$HOME/.local/bin/dot" $argv
|
|
14
|
-
else
|
|
15
|
-
echo "dot command not found at $HOME/.local/bin/dot" >&2
|
|
16
|
-
return 1
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
function dm --description 'List dot agent modes'
|
|
21
|
-
dot mode list
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
function da --description 'List dot agent profiles'
|
|
25
|
-
dot agent list
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
function dmc --description 'Show MCP registry'
|
|
29
|
-
dot mcp registry
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
function datt --description 'Emit workstation attestation JSON'
|
|
33
|
-
dot attest --json
|
|
34
|
-
end
|