@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,52 +0,0 @@
|
|
|
1
|
-
# Nushell completions for 'dot' CLI
|
|
2
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v{{ .dotfiles_version }})
|
|
3
|
-
|
|
4
|
-
export extern dot [
|
|
5
|
-
command?: string@dot_commands # The command to execute
|
|
6
|
-
...args: string # Arguments to the command
|
|
7
|
-
]
|
|
8
|
-
|
|
9
|
-
def dot_commands [] {
|
|
10
|
-
[
|
|
11
|
-
{ value: "apply", description: "Apply dotfiles (chezmoi apply)" }
|
|
12
|
-
{ value: "sync", description: "Apply dotfiles (alias of apply)" }
|
|
13
|
-
{ value: "update", description: "Pull latest changes and apply" }
|
|
14
|
-
{ value: "clean-cache", description: "Clear shell caches" }
|
|
15
|
-
{ value: "prewarm", description: "Regenerate shell caches" }
|
|
16
|
-
{ value: "cl", description: "Claude with context patterns" }
|
|
17
|
-
{ value: "copilot", description: "GitHub Copilot with context patterns" }
|
|
18
|
-
{ value: "gemini", description: "Gemini with context patterns" }
|
|
19
|
-
{ value: "kiro", description: "Kiro with context patterns" }
|
|
20
|
-
{ value: "sgpt", description: "Shell-GPT with context" }
|
|
21
|
-
{ value: "ollama", description: "Ollama with context" }
|
|
22
|
-
{ value: "opencode", description: "OpenCode with context" }
|
|
23
|
-
{ value: "aider", description: "Aider with context" }
|
|
24
|
-
{ value: "add", description: "Add a file to chezmoi source" }
|
|
25
|
-
{ value: "diff", description: "Show chezmoi diff" }
|
|
26
|
-
{ value: "status", description: "Show configuration drift" }
|
|
27
|
-
{ value: "remove", description: "Safely remove a managed file" }
|
|
28
|
-
{ value: "cd", description: "Print source directory path" }
|
|
29
|
-
{ value: "patterns", description: "Manage AI steering patterns" }
|
|
30
|
-
{ value: "commit", description: "AI-powered conventional commit" }
|
|
31
|
-
{ value: "edit", description: "Open chezmoi source in $EDITOR" }
|
|
32
|
-
{ value: "doctor", description: "Check system health" }
|
|
33
|
-
{ value: "heal", description: "Auto-repair issues" }
|
|
34
|
-
{ value: "health", description: "Run health check" }
|
|
35
|
-
{ value: "smoke-test", description: "Toolchain verification" }
|
|
36
|
-
{ value: "chaos", description: "Simulate corruption" }
|
|
37
|
-
{ value: "bundle", description: "Create offline archive" }
|
|
38
|
-
{ value: "drift", description: "Drift dashboard" }
|
|
39
|
-
{ value: "history", description: "History analysis" }
|
|
40
|
-
{ value: "benchmark", description: "Startup benchmark" }
|
|
41
|
-
{ value: "perf", description: "Show performance mode" }
|
|
42
|
-
{ value: "theme", description: "Switch terminal theme" }
|
|
43
|
-
{ value: "wallpaper", description: "Apply a wallpaper" }
|
|
44
|
-
{ value: "fonts", description: "Install Nerd Fonts" }
|
|
45
|
-
{ value: "secrets-init", description: "Init age key" }
|
|
46
|
-
{ value: "secrets", description: "Edit encrypted secrets" }
|
|
47
|
-
{ value: "upgrade", description: "Update all tools" }
|
|
48
|
-
{ value: "tools", description: "Show tools catalog" }
|
|
49
|
-
{ value: "new", description: "Create new project" }
|
|
50
|
-
{ value: "docs", description: "Show README" }
|
|
51
|
-
]
|
|
52
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v{{ .dotfiles_version }}) - Nushell Config
|
|
2
|
-
# <https://dotfiles.io>
|
|
3
|
-
|
|
4
|
-
$env.config = {
|
|
5
|
-
show_banner: false,
|
|
6
|
-
table: {
|
|
7
|
-
mode: rounded
|
|
8
|
-
},
|
|
9
|
-
completions: {
|
|
10
|
-
case_sensitive: false,
|
|
11
|
-
quick: true,
|
|
12
|
-
partial: true,
|
|
13
|
-
algorithm: "prefix"
|
|
14
|
-
},
|
|
15
|
-
history: {
|
|
16
|
-
max_size: 100000,
|
|
17
|
-
sync_on_enter: true,
|
|
18
|
-
file_format: "sqlite"
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
# Source Shell Tool Integrations (cache generated by env.nu)
|
|
23
|
-
source ~/.cache/nushell/starship.nu
|
|
24
|
-
source ~/.cache/nushell/zoxide.nu
|
|
25
|
-
source ~/.cache/nushell/atuin.nu
|
|
26
|
-
source ~/.cache/nushell/carapace.nu
|
|
27
|
-
|
|
28
|
-
# Source dot CLI completions
|
|
29
|
-
source ~/.config/nushell/completions.nu
|
|
30
|
-
|
|
31
|
-
# Source bridged aliases and function wrappers from bash library
|
|
32
|
-
source ~/.config/nushell/aliases.nu
|
|
33
|
-
source ~/.config/nushell/functions.nu
|
|
34
|
-
|
|
35
|
-
# Auto-start Pueue daemon if not running
|
|
36
|
-
if (which pueued | length) > 0 {
|
|
37
|
-
let status = (do -i { pueue status } | complete)
|
|
38
|
-
if $status.exit_code != 0 {
|
|
39
|
-
pueued -d
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
# Aliases - simple structured wrappers
|
|
44
|
-
alias l = ls -l
|
|
45
|
-
alias ll = ls -la
|
|
46
|
-
alias la = ls -a
|
|
47
|
-
alias c = clear
|
|
48
|
-
alias q = exit
|
|
49
|
-
alias g = git
|
|
50
|
-
|
|
51
|
-
# Yazi integration to cd on quit
|
|
52
|
-
def --env yy [...args] {
|
|
53
|
-
let tmp = (mktemp -t "yazi-cwd.XXXXXX")
|
|
54
|
-
yazi ...$args --cwd-file $tmp
|
|
55
|
-
let cwd = (open $tmp)
|
|
56
|
-
if $cwd != "" and $cwd != $env.PWD {
|
|
57
|
-
cd $cwd
|
|
58
|
-
}
|
|
59
|
-
rm -fp $tmp
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
# Pueue Background Task Wrappers (Nushell Style)
|
|
63
|
-
def silent-run [cmd: string] {
|
|
64
|
-
pueue add -- $cmd
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
def notify-run [cmd: string] {
|
|
68
|
-
let task_id = (pueue add --print-id -- $cmd)
|
|
69
|
-
echo $"Task ($task_id) submitted: ($cmd)"
|
|
70
|
-
# Nu doesn't have background shells like bash, but we can call bash
|
|
71
|
-
bash -c $"pueue wait ($task_id) && echo '✅ Task ($task_id) finished: ($cmd)' &"
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
def bg-upgrade [] {
|
|
75
|
-
echo "🚀 Starting background upgrades..."
|
|
76
|
-
if (which brew | length) > 0 { silent-run "brew upgrade" }
|
|
77
|
-
if (which nix | length) > 0 { silent-run "nix flake update" }
|
|
78
|
-
silent-run "chezmoi update"
|
|
79
|
-
echo "Check status with 'pueue status'"
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
# Data pipelines examples for productivity
|
|
83
|
-
def "find ports" [] {
|
|
84
|
-
sys host | get name
|
|
85
|
-
# Example command to show how nu handles data
|
|
86
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# 🅳🅾🆃🅵🅸🅻🅴🆂 (v{{ .dotfiles_version }}) - Nushell Environment
|
|
2
|
-
# <https://dotfiles.io>
|
|
3
|
-
|
|
4
|
-
# Define basic environment variables
|
|
5
|
-
$env.HOSTNAME = (sys host | get hostname)
|
|
6
|
-
$env.OS_ARCH = (sys host | get arch)
|
|
7
|
-
$env.OS_NAME = (sys host | get name)
|
|
8
|
-
$env.USER_LANGUAGE = "en_GB.UTF-8"
|
|
9
|
-
$env.DOTFILES_VERSION = '{{ .dotfiles_version }}'
|
|
10
|
-
$env.LANG = $env.USER_LANGUAGE
|
|
11
|
-
$env.TERM = "xterm-256color"
|
|
12
|
-
|
|
13
|
-
# Path setup: Nushell handles paths as a list in $env.PATH
|
|
14
|
-
let paths = [
|
|
15
|
-
$"($env.HOME)/.local/bin",
|
|
16
|
-
$"($env.HOME)/bin",
|
|
17
|
-
"/opt/homebrew/bin",
|
|
18
|
-
"/opt/homebrew/sbin",
|
|
19
|
-
$"($env.HOME)/.cargo/bin",
|
|
20
|
-
$"($env.HOME)/go/bin",
|
|
21
|
-
$"($env.HOME)/.bun/bin",
|
|
22
|
-
"/usr/local/bin",
|
|
23
|
-
"/usr/bin",
|
|
24
|
-
"/bin",
|
|
25
|
-
"/usr/sbin",
|
|
26
|
-
"/sbin"
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
$env.PATH = ($env.PATH | split row (char esep) | append $paths | uniq)
|
|
30
|
-
|
|
31
|
-
# Setup shell tool integrations.
|
|
32
|
-
#
|
|
33
|
-
# The `_cached_eval` module (loaded via dot_config/nushell/cached_eval.nu)
|
|
34
|
-
# adds mtime-based cache invalidation so we don't spawn `starship init
|
|
35
|
-
# nu` / `mise activate nu` / etc. on every shell start. Closes the
|
|
36
|
-
# Nushell parity AC of #880.
|
|
37
|
-
mkdir ~/.cache/nushell
|
|
38
|
-
|
|
39
|
-
use ~/.config/nushell/cached_eval.nu *
|
|
40
|
-
|
|
41
|
-
# The empty-file fallbacks preserve the `source` targets in
|
|
42
|
-
# config.nu.tmpl — Nushell parses sources at parse time and refuses
|
|
43
|
-
# to start if any source path is missing.
|
|
44
|
-
|
|
45
|
-
if (_cached_eval_path_or_skip starship init nu | str length) == 0 {
|
|
46
|
-
"" | save -f ~/.cache/nushell/starship.nu
|
|
47
|
-
} else {
|
|
48
|
-
cp (_cached_eval starship init nu) ~/.cache/nushell/starship.nu
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (_cached_eval_path_or_skip zoxide init nushell | str length) == 0 {
|
|
52
|
-
"" | save -f ~/.cache/nushell/zoxide.nu
|
|
53
|
-
} else {
|
|
54
|
-
cp (_cached_eval zoxide init nushell) ~/.cache/nushell/zoxide.nu
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (_cached_eval_path_or_skip atuin init nu | str length) == 0 {
|
|
58
|
-
"" | save -f ~/.cache/nushell/atuin.nu
|
|
59
|
-
} else {
|
|
60
|
-
cp (_cached_eval atuin init nu) ~/.cache/nushell/atuin.nu
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
# Generate Nushell alias cache from bash alias library
|
|
64
|
-
do -i {
|
|
65
|
-
bash --norc --noprofile -c '
|
|
66
|
-
source "$HOME/.config/shell/90-ux-aliases.sh" 2>/dev/null
|
|
67
|
-
source "$HOME/.config/shell/91-ux-aliases-lazy.sh" 2>/dev/null
|
|
68
|
-
alias -p 2>/dev/null | while IFS= read -r line; do
|
|
69
|
-
name="${line#alias }"
|
|
70
|
-
name="${name#-- }"
|
|
71
|
-
name="${name%%=*}"
|
|
72
|
-
# Only valid Nushell identifiers (letters, digits, hyphens, underscores)
|
|
73
|
-
[[ "$name" =~ ^[a-zA-Z_][a-zA-Z0-9_-]*$ ]] || continue
|
|
74
|
-
val="${line#*=}"
|
|
75
|
-
# Remove surrounding single quotes from bash alias output
|
|
76
|
-
val="${val#\'}"
|
|
77
|
-
val="${val%\'}"
|
|
78
|
-
# Skip syntax incompatible with Nushell aliases
|
|
79
|
-
case "$val" in
|
|
80
|
-
*\$\{*|*\$\(*) continue ;;
|
|
81
|
-
*\`*) continue ;;
|
|
82
|
-
*"[["*|*"&&"*|*"||"*) continue ;;
|
|
83
|
-
*";"*|*"|"*) continue ;;
|
|
84
|
-
*">"*|*"<"*) continue ;;
|
|
85
|
-
*"("*|*")"*) continue ;;
|
|
86
|
-
"") continue ;;
|
|
87
|
-
esac
|
|
88
|
-
printf "alias %s = %s\n" "$name" "$val"
|
|
89
|
-
done
|
|
90
|
-
' | save -f ~/.cache/nushell/bash-aliases.nu
|
|
91
|
-
}
|
|
92
|
-
# Carapace multi-shell completions
|
|
93
|
-
if (which carapace | length) > 0 {
|
|
94
|
-
carapace _carapace nushell | save -f ~/.cache/nushell/carapace.nu
|
|
95
|
-
} else {
|
|
96
|
-
"" | save -f ~/.cache/nushell/carapace.nu
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
# Ensure alias cache exists even if bash bridge failed
|
|
100
|
-
if not ($"($env.HOME)/.cache/nushell/bash-aliases.nu" | path exists) {
|
|
101
|
-
"" | save -f ~/.cache/nushell/bash-aliases.nu
|
|
102
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{{- $root := . -}}
|
|
2
|
-
{{- $groupsPath := joinPath $root.chezmoi.sourceDir ".chezmoitemplates/functions/groups.json" -}}
|
|
3
|
-
{{- $groups := (fromJson (include $groupsPath)) -}}
|
|
4
|
-
# Nushell function wrappers (Generated by Chezmoi)
|
|
5
|
-
# Delegates to bash function library in ~/.config/shell/50-logic-functions.sh
|
|
6
|
-
# Edit .chezmoitemplates/functions/ source files, not this file.
|
|
7
|
-
|
|
8
|
-
{{ range $group, $files := $groups -}}
|
|
9
|
-
# --- {{ $group }} ---
|
|
10
|
-
{{ range $files -}}
|
|
11
|
-
{{ $func := trimSuffix ".sh" (base .) -}}
|
|
12
|
-
def {{ $func }} [...args] {
|
|
13
|
-
bash -c $'source "$HOME/.config/shell/50-logic-functions.sh" 2>/dev/null; {{ $func }} "$@"' -- ...$args
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
{{ end -}}
|
|
17
|
-
{{ end -}}
|
package/dot_config/nvim/init.lua
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
-- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
2
|
-
|
|
3
|
-
-- Require Neovim >= 0.11.2 for native LSP improvements and vim.snippet
|
|
4
|
-
if vim.fn.has("nvim-0.11.2") ~= 1 then
|
|
5
|
-
vim.api.nvim_echo({
|
|
6
|
-
{ "Dotfiles Neovim config requires Neovim >= 0.11.2\n", "ErrorMsg" },
|
|
7
|
-
{
|
|
8
|
-
"Current: " .. vim.version().major .. "." .. vim.version().minor .. "." .. vim.version().patch .. "\n",
|
|
9
|
-
"WarningMsg",
|
|
10
|
-
},
|
|
11
|
-
}, true, {})
|
|
12
|
-
return
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
require("config.options")
|
|
16
|
-
require("config.lazy")
|
|
17
|
-
require("config.keymaps")
|
|
18
|
-
require("config.autocmds")
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"CopilotChat.nvim": { "branch": "main", "commit": "ecea24a9a067c6f176b8e13eb11251c739caf055" },
|
|
3
|
-
"blink.cmp": { "branch": "main", "commit": "451168851e8e2466bc97ee3e026c3dcb9141ce07" },
|
|
4
|
-
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
|
5
|
-
"catppuccin": { "branch": "main", "commit": "384f304c8b04664c9e0091fbfb3923c5f97c1bcf" },
|
|
6
|
-
"conform.nvim": { "branch": "master", "commit": "086a40dc7ed8242c03be9f47fbcee68699cc2395" },
|
|
7
|
-
"copilot.lua": { "branch": "master", "commit": "8e2a91828210d6043744468f6d7027d256a41f42" },
|
|
8
|
-
"crates.nvim": { "branch": "main", "commit": "ac9fa498a9edb96dc3056724ff69d5f40b898453" },
|
|
9
|
-
"dracula": { "branch": "main", "commit": "ae752c13e95fb7c5f58da4b5123cb804ea7568ee" },
|
|
10
|
-
"everforest": { "branch": "master", "commit": "b03a03148c8b34c24c96960b93da9c8883d11f54" },
|
|
11
|
-
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
|
12
|
-
"git-worktree.nvim": { "branch": "master", "commit": "f247308e68dab9f1133759b05d944569ad054546" },
|
|
13
|
-
"gitsigns.nvim": { "branch": "main", "commit": "7c4faa3540d0781a28588cafbd4dd187a28ac6e3" },
|
|
14
|
-
"gruvbox": { "branch": "main", "commit": "334d5fd49fc8033f26408425366c66c6390c57bb" },
|
|
15
|
-
"indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
|
|
16
|
-
"kanagawa": { "branch": "master", "commit": "aef7f5cec0a40dbe7f3304214850c472e2264b10" },
|
|
17
|
-
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
|
18
|
-
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
|
19
|
-
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
|
20
|
-
"mason-lspconfig.nvim": { "branch": "main", "commit": "a676ab7282da8d651e175118bcf54483ca11e46d" },
|
|
21
|
-
"mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" },
|
|
22
|
-
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
|
|
23
|
-
"neogen": { "branch": "main", "commit": "23e7e9f883d01289ebd90e98025acc860ea26366" },
|
|
24
|
-
"neotest": { "branch": "master", "commit": "deadfb1af5ce458742671ad3a013acb9a6b41178" },
|
|
25
|
-
"neotest-plenary": { "branch": "master", "commit": "3523adcf9ffaad1911960c5813b0136c1b63a2ec" },
|
|
26
|
-
"neotest-python": { "branch": "master", "commit": "b0d3a861bd85689d8ed73f0590c47963a7eb1bf9" },
|
|
27
|
-
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
|
|
28
|
-
"nord": { "branch": "master", "commit": "80c1e5321505aeb22b7a9f23eb82f1e193c12470" },
|
|
29
|
-
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
|
30
|
-
"nvim-dap": { "branch": "master", "commit": "a9d8cb68ee7184111dc66156c4a2ebabfbe01bc5" },
|
|
31
|
-
"nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" },
|
|
32
|
-
"nvim-dap-python": { "branch": "master", "commit": "1808458eba2b18f178f990e01376941a42c7f93b" },
|
|
33
|
-
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
|
|
34
|
-
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
|
|
35
|
-
"nvim-lint": { "branch": "master", "commit": "606b823a57b027502a9ae00978ebf4f5d5158098" },
|
|
36
|
-
"nvim-lspconfig": { "branch": "master", "commit": "dd261ad5266ab5bbec249d21efeceda98ff3e1a6" },
|
|
37
|
-
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
|
38
|
-
"nvim-scrollbar": { "branch": "main", "commit": "f8e87b96cd6362ef8579be456afee3b38fd7e2a8" },
|
|
39
|
-
"nvim-tree.lua": { "branch": "master", "commit": "b3772adec8db61ba9098c5624a0823a77be3a23d" },
|
|
40
|
-
"nvim-treesitter": { "branch": "main", "commit": "2f5d4c3f3c675962242096bcc8e586d76dd72eb2" },
|
|
41
|
-
"nvim-web-devicons": { "branch": "master", "commit": "d7462543c9e366c0d196c7f67a945eaaf5d99414" },
|
|
42
|
-
"one-small-step-for-vimkind": { "branch": "main", "commit": "1af6ffb9b5229a856e8090fa2f690e0931a5aace" },
|
|
43
|
-
"onedark": { "branch": "master", "commit": "213c23ae45a04797572242568d5d51937181792d" },
|
|
44
|
-
"outline.nvim": { "branch": "main", "commit": "ead1820d49c8e79ce89cab1c2c318981b695c9d2" },
|
|
45
|
-
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
|
|
46
|
-
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
|
47
|
-
"rose-pine": { "branch": "main", "commit": "cf2a288696b03d0934da713d66c6d71557b5c997" },
|
|
48
|
-
"rustaceanvim": { "branch": "master", "commit": "047f9c9d8cd2861745eb9de6c1570ee0875aa795" },
|
|
49
|
-
"snacks.nvim": { "branch": "main", "commit": "a049339328e2599ad6e85a69fa034ac501e921b2" },
|
|
50
|
-
"solarized": { "branch": "main", "commit": "c0dfe1cbfabd93b546baf5f1408f5df7e02e2050" },
|
|
51
|
-
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
|
|
52
|
-
"telescope.nvim": { "branch": "master", "commit": "5255aa27c422de944791318024167ad5d40aad20" },
|
|
53
|
-
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
|
|
54
|
-
"tokyonight": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
|
|
55
|
-
"venv-selector.nvim": { "branch": "main", "commit": "42e8faadf9b819654f29eb1a785797a3a328f301" },
|
|
56
|
-
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
|
|
57
|
-
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
|
58
|
-
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
-- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
2
|
-
-- Check if we need to reload the file when it changed
|
|
3
|
-
vim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, {
|
|
4
|
-
command = "checktime",
|
|
5
|
-
})
|
|
6
|
-
|
|
7
|
-
-- Highlight on yank
|
|
8
|
-
vim.api.nvim_create_autocmd("TextYankPost", {
|
|
9
|
-
callback = function()
|
|
10
|
-
vim.highlight.on_yank()
|
|
11
|
-
end,
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
-- Resize splits if window got resized
|
|
15
|
-
vim.api.nvim_create_autocmd({ "VimResized" }, {
|
|
16
|
-
callback = function()
|
|
17
|
-
vim.cmd("tabdo wincmd =")
|
|
18
|
-
end,
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
-- Go to last loc when opening a buffer
|
|
22
|
-
vim.api.nvim_create_autocmd("BufReadPost", {
|
|
23
|
-
callback = function()
|
|
24
|
-
local mark = vim.api.nvim_buf_get_mark(0, '"')
|
|
25
|
-
local lcount = vim.api.nvim_buf_line_count(0)
|
|
26
|
-
if mark[1] > 0 and mark[1] <= lcount then
|
|
27
|
-
pcall(vim.api.nvim_win_set_cursor, 0, mark)
|
|
28
|
-
end
|
|
29
|
-
end,
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
-- Close some filetypes with <q>
|
|
33
|
-
vim.api.nvim_create_autocmd("FileType", {
|
|
34
|
-
pattern = {
|
|
35
|
-
"PlenaryTestPopup",
|
|
36
|
-
"help",
|
|
37
|
-
"lspinfo",
|
|
38
|
-
"man",
|
|
39
|
-
"notify",
|
|
40
|
-
"qf",
|
|
41
|
-
"spectre_panel",
|
|
42
|
-
"startuptime",
|
|
43
|
-
"tsplayground",
|
|
44
|
-
"neotest-output",
|
|
45
|
-
"checkhealth",
|
|
46
|
-
"neotest-summary",
|
|
47
|
-
"neotest-output-panel",
|
|
48
|
-
},
|
|
49
|
-
callback = function(event)
|
|
50
|
-
vim.bo[event.buf].buflisted = false
|
|
51
|
-
vim.keymap.set("n", "q", "<cmd>close<cr>", { buffer = event.buf, silent = true })
|
|
52
|
-
end,
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
-- Auto create dir when saving a file, in case some intermediate directory does not exist
|
|
56
|
-
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
|
|
57
|
-
callback = function(event)
|
|
58
|
-
if event.match:match("^%w%w+://") then
|
|
59
|
-
return
|
|
60
|
-
end
|
|
61
|
-
local file = vim.uv.fs_realpath(event.match) or event.match
|
|
62
|
-
vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p")
|
|
63
|
-
end,
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
-- Theme hot-reload: clear cached modules and reapply colorscheme on LazyReload.
|
|
67
|
-
-- Prevents stale theme state when dot-theme-sync sends a colorscheme change.
|
|
68
|
-
vim.api.nvim_create_autocmd("User", {
|
|
69
|
-
pattern = "LazyReload",
|
|
70
|
-
callback = function()
|
|
71
|
-
local theme = vim.env.DOTFILES_THEME or "macos-monterey-dark"
|
|
72
|
-
-- Clear cached theme modules so setup() runs fresh
|
|
73
|
-
for name, _ in pairs(package.loaded) do
|
|
74
|
-
if
|
|
75
|
-
name:match("^catppuccin")
|
|
76
|
-
or name:match("^tokyonight")
|
|
77
|
-
or name:match("^kanagawa")
|
|
78
|
-
or name:match("^gruvbox")
|
|
79
|
-
or name:match("^rose%-pine")
|
|
80
|
-
or name:match("^solarized")
|
|
81
|
-
or name:match("^onedark")
|
|
82
|
-
or name:match("^nord")
|
|
83
|
-
or name:match("^dracula")
|
|
84
|
-
or name:match("^everforest")
|
|
85
|
-
then
|
|
86
|
-
package.loaded[name] = nil
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
-- Defer to let lazy.nvim finish its reload cycle
|
|
90
|
-
vim.defer_fn(function()
|
|
91
|
-
local cs = theme:match("^catppuccin") and "catppuccin" or theme:match("^tokyonight") and theme or theme
|
|
92
|
-
pcall(vim.cmd.colorscheme, cs)
|
|
93
|
-
end, 5)
|
|
94
|
-
end,
|
|
95
|
-
})
|
|
96
|
-
|
|
97
|
-
-- Cursorline only on focused window
|
|
98
|
-
vim.api.nvim_create_autocmd({ "WinEnter", "BufEnter" }, {
|
|
99
|
-
callback = function()
|
|
100
|
-
vim.wo.cursorline = true
|
|
101
|
-
end,
|
|
102
|
-
})
|
|
103
|
-
vim.api.nvim_create_autocmd({ "WinLeave" }, {
|
|
104
|
-
callback = function()
|
|
105
|
-
vim.wo.cursorline = false
|
|
106
|
-
end,
|
|
107
|
-
})
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
-- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
2
|
-
local map = vim.keymap.set
|
|
3
|
-
|
|
4
|
-
-- Better window navigation
|
|
5
|
-
map("n", "<C-h>", "<C-w>h", { desc = "Go to left window", remap = true })
|
|
6
|
-
map("n", "<C-j>", "<C-w>j", { desc = "Go to lower window", remap = true })
|
|
7
|
-
map("n", "<C-k>", "<C-w>k", { desc = "Go to upper window", remap = true })
|
|
8
|
-
map("n", "<C-l>", "<C-w>l", { desc = "Go to right window", remap = true })
|
|
9
|
-
|
|
10
|
-
-- Resize window using <ctrl> arrow keys
|
|
11
|
-
map("n", "<C-Up>", "<cmd>resize +2<cr>", { desc = "Increase window height" })
|
|
12
|
-
map("n", "<C-Down>", "<cmd>resize -2<cr>", { desc = "Decrease window height" })
|
|
13
|
-
map("n", "<C-Left>", "<cmd>vertical resize -2<cr>", { desc = "Decrease window width" })
|
|
14
|
-
map("n", "<C-Right>", "<cmd>vertical resize +2<cr>", { desc = "Increase window width" })
|
|
15
|
-
|
|
16
|
-
-- Move Lines
|
|
17
|
-
map("n", "<A-j>", "<cmd>m .+1<cr>==", { desc = "Move down" })
|
|
18
|
-
map("n", "<A-k>", "<cmd>m .-2<cr>==", { desc = "Move up" })
|
|
19
|
-
map("i", "<A-j>", "<esc><cmd>m .+1<cr>==gi", { desc = "Move down" })
|
|
20
|
-
map("i", "<A-k>", "<esc><cmd>m .-2<cr>==gi", { desc = "Move up" })
|
|
21
|
-
map("v", "<A-j>", ":m '>+1<cr>gv=gv", { desc = "Move down" })
|
|
22
|
-
map("v", "<A-k>", ":m '<-2<cr>gv=gv", { desc = "Move up" })
|
|
23
|
-
|
|
24
|
-
-- Buffers
|
|
25
|
-
map("n", "<S-h>", "<cmd>bprevious<cr>", { desc = "Prev buffer" })
|
|
26
|
-
map("n", "<S-l>", "<cmd>bnext<cr>", { desc = "Next buffer" })
|
|
27
|
-
map("n", "[b", "<cmd>bprevious<cr>", { desc = "Prev buffer" })
|
|
28
|
-
map("n", "]b", "<cmd>bnext<cr>", { desc = "Next buffer" })
|
|
29
|
-
map("n", "<leader>bb", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
|
|
30
|
-
map("n", "<leader>`", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
|
|
31
|
-
|
|
32
|
-
-- Clear search with <esc>
|
|
33
|
-
map({ "i", "n" }, "<esc>", "<cmd>noh<cr><esc>", { desc = "Escape and clean hlsearch" })
|
|
34
|
-
|
|
35
|
-
-- Save file
|
|
36
|
-
map({ "i", "x", "n", "s" }, "<C-s>", "<cmd>w<cr><esc>", { desc = "Save file" })
|
|
37
|
-
|
|
38
|
-
-- Better indenting
|
|
39
|
-
map("v", "<", "<gv")
|
|
40
|
-
map("v", ">", ">gv")
|
|
41
|
-
|
|
42
|
-
-- Delete to void register (prevent clipboard pollution)
|
|
43
|
-
map({ "n", "v" }, "x", '"_x', { desc = "Delete char (void register)" })
|
|
44
|
-
map({ "n", "v" }, "X", '"_X', { desc = "Delete char backward (void register)" })
|
|
45
|
-
map("n", "Del", '"_x', { desc = "Delete char (void register)" })
|
|
46
|
-
|
|
47
|
-
-- Paste over selection without clobbering register
|
|
48
|
-
map("v", "p", "P", { desc = "Paste (keep register)" })
|
|
49
|
-
|
|
50
|
-
-- Lazy
|
|
51
|
-
map("n", "<leader>l", "<cmd>Lazy<cr>", { desc = "Lazy" })
|
|
52
|
-
|
|
53
|
-
-- Quick access (User Customizations)
|
|
54
|
-
map("n", "<leader>w", ":w<CR>", { desc = "Save file" })
|
|
55
|
-
map("n", "<leader>q", ":q<CR>", { desc = "Quit" })
|
|
56
|
-
|
|
57
|
-
-- Python specific
|
|
58
|
-
map("n", "<leader>pr", ":w<CR>:!python3 %<CR>", { desc = "Run Python file" })
|
|
59
|
-
map("n", "<leader>pi", ":VenvSelect<CR>", { desc = "Select Python Env" })
|
|
60
|
-
map("n", "<leader>pt", ":!pytest<CR>", { desc = "Run Pytest" })
|
|
61
|
-
|
|
62
|
-
-- LSP (Global fallback; <leader>cf owned by conform.nvim in plugins/lsp.lua)
|
|
63
|
-
map("n", "<leader>ca", vim.lsp.buf.code_action, { desc = "Code actions" })
|
|
64
|
-
map("n", "<leader>cr", vim.lsp.buf.rename, { desc = "Rename symbol" })
|
|
65
|
-
|
|
66
|
-
-- Telescope
|
|
67
|
-
map("n", "<leader>ff", ":Telescope find_files<CR>", { desc = "Find files" })
|
|
68
|
-
map("n", "<leader>fg", ":Telescope live_grep<CR>", { desc = "Find text" })
|
|
69
|
-
map("n", "<leader>fb", ":Telescope buffers<CR>", { desc = "Buffers" })
|
|
70
|
-
map("n", "<leader>fp", ":Telescope oldfiles<CR>", { desc = "Recent files" })
|
|
71
|
-
map("n", "<leader>gw", ":Telescope git_worktree git_worktrees<CR>", { desc = "Worktrees" })
|
|
72
|
-
map("n", "<leader>gW", ":Telescope git_worktree create_git_worktree<CR>", { desc = "Create worktree" })
|
|
73
|
-
|
|
74
|
-
-- Terminal (ToggleTerm)
|
|
75
|
-
map("n", "<leader>tt", ":ToggleTerm direction=float<CR>", { desc = "Toggle terminal" })
|
|
76
|
-
map("t", "<Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
|
|
77
|
-
|
|
78
|
-
-- Testing keymaps owned by neotest in plugins/coding.lua
|
|
79
|
-
|
|
80
|
-
-- Debugging (DAP)
|
|
81
|
-
map("n", "<F5>", function()
|
|
82
|
-
require("dap").continue()
|
|
83
|
-
end, { desc = "Continue" })
|
|
84
|
-
map("n", "<F10>", function()
|
|
85
|
-
require("dap").step_over()
|
|
86
|
-
end, { desc = "Step over" })
|
|
87
|
-
map("n", "<F11>", function()
|
|
88
|
-
require("dap").step_into()
|
|
89
|
-
end, { desc = "Step into" })
|
|
90
|
-
map("n", "<F12>", function()
|
|
91
|
-
require("dap").step_out()
|
|
92
|
-
end, { desc = "Step out" })
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
-- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
2
|
-
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
3
|
-
if not vim.uv.fs_stat(lazypath) then
|
|
4
|
-
vim
|
|
5
|
-
.system({
|
|
6
|
-
"git",
|
|
7
|
-
"clone",
|
|
8
|
-
"--filter=blob:none",
|
|
9
|
-
"https://github.com/folke/lazy.nvim.git",
|
|
10
|
-
"--branch=stable",
|
|
11
|
-
lazypath,
|
|
12
|
-
})
|
|
13
|
-
:wait()
|
|
14
|
-
end
|
|
15
|
-
vim.opt.rtp:prepend(lazypath)
|
|
16
|
-
|
|
17
|
-
-- User-local plugin specs (not managed by chezmoi)
|
|
18
|
-
local _lazy_spec = {
|
|
19
|
-
{ import = "plugins" },
|
|
20
|
-
}
|
|
21
|
-
local _user_plugins = vim.fn.stdpath("config") .. "/lua/plugins.local"
|
|
22
|
-
if vim.uv.fs_stat(_user_plugins) then
|
|
23
|
-
table.insert(_lazy_spec, { import = "plugins.local" })
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
require("lazy").setup({
|
|
27
|
-
spec = _lazy_spec,
|
|
28
|
-
defaults = {
|
|
29
|
-
lazy = false,
|
|
30
|
-
version = false,
|
|
31
|
-
},
|
|
32
|
-
checker = { enabled = true },
|
|
33
|
-
performance = {
|
|
34
|
-
rtp = {
|
|
35
|
-
disabled_plugins = {
|
|
36
|
-
"gzip",
|
|
37
|
-
"tarPlugin",
|
|
38
|
-
"tohtml",
|
|
39
|
-
"tutor",
|
|
40
|
-
"zipPlugin",
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
})
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
-- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
2
|
-
vim.g.mapleader = " "
|
|
3
|
-
vim.g.maplocalleader = " "
|
|
4
|
-
|
|
5
|
-
local opt = vim.opt
|
|
6
|
-
|
|
7
|
-
opt.autowrite = true -- Enable auto write
|
|
8
|
-
opt.clipboard = "unnamedplus" -- Sync with system clipboard
|
|
9
|
-
opt.completeopt = "menu,menuone,noselect"
|
|
10
|
-
opt.conceallevel = 2 -- Hide * markup for bold and italic
|
|
11
|
-
opt.confirm = true -- Confirm to save changes before exiting modified buffer
|
|
12
|
-
opt.cursorline = true -- Enable highlighting of the current line
|
|
13
|
-
opt.expandtab = true -- Use spaces instead of tabs
|
|
14
|
-
opt.formatoptions = "jcroqlnt" -- tcqj
|
|
15
|
-
opt.grepformat = "%f:%l:%c:%m"
|
|
16
|
-
opt.grepprg = "rg --vimgrep"
|
|
17
|
-
opt.ignorecase = true -- Ignore case
|
|
18
|
-
opt.inccommand = "nosplit" -- preview incremental substitute
|
|
19
|
-
opt.laststatus = 3 -- global statusline
|
|
20
|
-
opt.list = true -- Show some invisible characters (tabs...
|
|
21
|
-
opt.mouse = "a" -- Enable mouse mode
|
|
22
|
-
opt.number = true -- Print line number
|
|
23
|
-
opt.pumblend = 10 -- Popup blend
|
|
24
|
-
opt.pumheight = 10 -- Maximum number of entries in a popup
|
|
25
|
-
opt.relativenumber = true -- Relative line numbers
|
|
26
|
-
opt.scrolloff = 4 -- Lines of context
|
|
27
|
-
opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp", "folds" }
|
|
28
|
-
opt.shiftround = true -- Round indent
|
|
29
|
-
opt.shiftwidth = 2 -- Size of an indent
|
|
30
|
-
opt.shortmess:append({ W = true, I = true, c = true, C = true })
|
|
31
|
-
opt.showmode = false -- Dont show mode since we have a statusline
|
|
32
|
-
opt.sidescrolloff = 8 -- Columns of context
|
|
33
|
-
opt.signcolumn = "yes" -- Always show the signcolumn
|
|
34
|
-
opt.smartcase = true -- Don't ignore case with capitals
|
|
35
|
-
opt.smartindent = true -- Insert indents automatically
|
|
36
|
-
opt.spelllang = { "en" }
|
|
37
|
-
opt.splitbelow = true -- Put new windows below current
|
|
38
|
-
opt.splitkeep = "screen"
|
|
39
|
-
opt.splitright = true -- Put new windows right of current
|
|
40
|
-
opt.tabstop = 2 -- Number of spaces tabs count for
|
|
41
|
-
opt.termguicolors = true -- True color support
|
|
42
|
-
opt.timeoutlen = 300
|
|
43
|
-
opt.undofile = true
|
|
44
|
-
opt.undolevels = 10000
|
|
45
|
-
opt.updatetime = 200 -- Save swap file and trigger CursorHold
|
|
46
|
-
opt.virtualedit = "block" -- Allow cursor to move where there is no text in visual block mode
|
|
47
|
-
opt.wildmode = "longest:full,full" -- Command-line completion mode
|
|
48
|
-
opt.winminwidth = 5 -- Minimum window width
|
|
49
|
-
opt.wrap = false -- Disable line wrap
|