@sebastienrousseau/dotfiles 0.2.499 → 0.2.500
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +375 -0
- package/LICENSE +1283 -0
- package/README.md +284 -0
- package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
- package/docs/AI.md +102 -0
- package/docs/COPYRIGHT +4 -3
- package/docs/NAMING_CONVENTIONS.md +95 -0
- package/docs/README.md +78 -0
- package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
- package/docs/adr/ADR-002-shell-performance.md +121 -0
- package/docs/adr/ADR-003-security-first.md +140 -0
- package/docs/adr/ADR-004-cli-architecture.md +157 -0
- package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
- package/docs/adr/ADR-006-shell-selection.md +115 -0
- package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
- package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
- package/docs/adr/README.md +32 -0
- package/docs/architecture/ARCHITECTURE.md +113 -0
- package/docs/architecture/INTEROP.md +36 -0
- package/docs/architecture/REPO_LAYOUT.md +237 -0
- package/docs/architecture/WALKTHROUGH.md +82 -0
- package/docs/architecture/fleet-deployment.md +73 -0
- package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
- package/docs/archive/LEGACY_ROADMAP.md +142 -0
- package/docs/archive/MILESTONE_v0.2.493.md +43 -0
- package/docs/{PLAN.md → archive/PLAN.md} +4 -4
- package/docs/archive/REPO_AUDIT.md +23 -0
- package/docs/guides/INSTALL.md +140 -0
- package/docs/guides/NEOVIM_IDE_GUIDE.md +52 -0
- package/docs/guides/THEMING.md +222 -0
- package/docs/guides/TROUBLESHOOTING.md +148 -0
- package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +723 -0
- package/docs/index.md +39 -0
- package/docs/interop/A2A.md +32 -0
- package/docs/manual/00-introduction.md +85 -0
- package/docs/manual/01-concepts/01-architecture.md +134 -0
- package/docs/manual/01-concepts/02-trust-model.md +178 -0
- package/docs/manual/01-concepts/03-theme-engine.md +182 -0
- package/docs/manual/01-concepts/04-fleet.md +142 -0
- package/docs/manual/01-concepts/05-self-healing.md +197 -0
- package/docs/manual/02-tutorials/01-first-install.md +192 -0
- package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
- package/docs/manual/02-tutorials/03-create-profile.md +238 -0
- package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
- package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
- package/docs/manual/03-reference/01-dot-cli.md +413 -0
- package/docs/manual/03-reference/02-config-files.md +259 -0
- package/docs/manual/03-reference/03-environment.md +120 -0
- package/docs/manual/03-reference/04-templates.md +184 -0
- package/docs/manual/03-reference/05-feature-flags.md +118 -0
- package/docs/manual/04-cookbook/01-recipes.md +281 -0
- package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
- package/docs/manual/04-cookbook/03-faq.md +167 -0
- package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
- package/docs/manual/05-appendices/B-security-checklist.md +78 -0
- package/docs/manual/05-appendices/C-glossary.md +36 -0
- package/docs/manual/05-appendices/D-bibliography.md +54 -0
- package/docs/manual/05-appendices/E-license.md +34 -0
- package/docs/manual/_toc.yml +58 -0
- package/docs/manual/command-index.md +58 -0
- package/docs/manual/concept-index.md +164 -0
- package/docs/operations/ATTESTATION.md +39 -0
- package/docs/operations/MAINTENANCE.md +59 -0
- package/docs/operations/MIGRATION.md +101 -0
- package/docs/operations/OPERATIONS.md +164 -0
- package/docs/operations/RELIABILITY.md +116 -0
- package/docs/{ROADMAP.md → operations/ROADMAP.md} +22 -22
- package/docs/operations/TESTING.md +195 -0
- package/docs/operations/TRACEABILITY.md +31 -0
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
- package/docs/operations/VERSION_SYNC.md +344 -0
- package/docs/reference/ALIASES.md +124 -0
- package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
- package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
- package/docs/reference/FEATURES.md +62 -0
- package/docs/reference/FONTS.md +108 -0
- package/docs/reference/PROFILES.md +65 -0
- package/docs/reference/SCREENSHOTS.md +117 -0
- package/docs/reference/SCRIPTS.md +67 -0
- package/docs/reference/SUPPORT_MATRIX.md +74 -0
- package/docs/reference/THEMES.md +113 -0
- package/docs/reference/TOOLS.md +105 -0
- package/docs/reference/UTILS.md +151 -0
- package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
- package/docs/security/AUTOMATION_SECRETS.md +22 -0
- package/docs/security/COMPLIANCE.md +453 -0
- package/docs/security/ENCRYPTION.md +52 -0
- package/docs/security/FMEA.md +155 -0
- package/docs/security/INCIDENT_RESPONSE.md +575 -0
- package/docs/security/KEYS.md +45 -0
- package/docs/security/KEY_ROTATION.md +219 -0
- package/docs/security/MCP_POLICY.md +69 -0
- package/docs/security/POLICY_RELEASES.md +33 -0
- package/docs/security/README.md +24 -0
- package/docs/security/SECRETS.md +146 -0
- package/docs/security/SECURITY.md +41 -0
- package/docs/security/SECURITY_CHECKLIST.md +44 -0
- package/docs/security/SOUP_REGISTER.md +32 -0
- package/docs/security/THREAT_MODEL.md +120 -0
- package/docs/security/VERIFICATION_VALIDATION.md +224 -0
- package/docs/themes/README.md +6 -0
- package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
- package/docs/themes/hero-shot.svg +78 -0
- package/dot_config/.module-manifest.json +69 -0
- package/dot_config/ai/identity.md +20 -0
- package/dot_config/ai/patterns/architect.md +14 -0
- package/dot_config/ai/patterns/hardener.md +13 -0
- package/dot_config/ai/patterns/refactor.md +13 -0
- package/dot_config/aider/aider.conf.yml +32 -0
- package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
- package/dot_config/ansible/ansible.cfg +11 -0
- package/dot_config/atuin/config.toml +40 -0
- package/dot_config/bat/config +23 -0
- package/dot_config/brave-flags.conf.tmpl +7 -0
- package/dot_config/btop/btop.conf +16 -0
- package/dot_config/btop/themes/tokyonight.theme +34 -0
- package/dot_config/bun/bunfig.toml.tmpl +33 -0
- package/dot_config/claude/mcp_servers.json +20 -0
- package/dot_config/containers/containers.conf +14 -0
- package/dot_config/curl/dot_curlrc +18 -0
- package/dot_config/dlv/config.yml +39 -0
- package/dot_config/docker/config.json +15 -0
- package/dot_config/dotfiles/agent-card.json +29 -0
- package/dot_config/dotfiles/agent-profiles.json +92 -0
- package/dot_config/dotfiles/boot/README.md +11 -0
- package/dot_config/dotfiles/grub/README.md +11 -0
- package/dot_config/dotfiles/lock/README.md +11 -0
- package/dot_config/dotfiles/mcp-lock.json +33 -0
- package/dot_config/dotfiles/mcp-policy.json +52 -0
- package/dot_config/dotfiles/mcp-registry.json +47 -0
- package/dot_config/dotfiles/model-registry.json +20 -0
- package/dot_config/dotfiles/policy-bundles.json +38 -0
- package/dot_config/dotfiles/prompt-registry.json +16 -0
- package/dot_config/dotfiles/versions.env +18 -0
- package/dot_config/duf/duf.conf +6 -0
- package/dot_config/duti/defaults.duti +5 -0
- package/dot_config/emoji/emoji.txt +34 -0
- package/dot_config/environment.d/50-ssh-agent.conf +2 -0
- package/dot_config/environment.d/90-wayland.conf +19 -0
- package/dot_config/fastfetch/config.jsonc +28 -0
- package/dot_config/firefox/user.js.tmpl +58 -0
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
- package/dot_config/fish/completions/dot.fish.tmpl +115 -0
- package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
- package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
- package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
- package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
- package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
- package/dot_config/fish/config.fish.tmpl +44 -0
- package/dot_config/fish/fish_plugins +1 -0
- package/dot_config/fish/functions/_.fish +3 -0
- package/dot_config/fish/functions/_cached_eval.fish +58 -0
- package/dot_config/fish/functions/als.fish +46 -0
- package/dot_config/fish/functions/bg-upgrade.fish +7 -0
- package/dot_config/fish/functions/c.fish +3 -0
- package/dot_config/fish/functions/cat.fish +9 -0
- package/dot_config/fish/functions/d.fish +7 -0
- package/dot_config/fish/functions/dot.fish +34 -0
- package/dot_config/fish/functions/h.fish +3 -0
- package/dot_config/fish/functions/l.fish +7 -0
- package/dot_config/fish/functions/la.fish +7 -0
- package/dot_config/fish/functions/ll.fish +7 -0
- package/dot_config/fish/functions/log_error.fish +13 -0
- package/dot_config/fish/functions/log_info.fish +13 -0
- package/dot_config/fish/functions/lr.fish +7 -0
- package/dot_config/fish/functions/lra.fish +7 -0
- package/dot_config/fish/functions/ls.fish +7 -0
- package/dot_config/fish/functions/lt.fish +7 -0
- package/dot_config/fish/functions/lta.fish +7 -0
- package/dot_config/fish/functions/notify-run.fish +11 -0
- package/dot_config/fish/functions/q.fish +3 -0
- package/dot_config/fish/functions/silent-run.fish +7 -0
- package/dot_config/fish/functions/yy.fish +8 -0
- package/dot_config/flatpak/flatpak.list +4 -0
- package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
- package/dot_config/foot/foot.ini.tmpl +33 -0
- package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
- package/dot_config/fzf/fzf.zsh +48 -0
- package/dot_config/gem/gemrc +9 -0
- package/dot_config/gh/config.yml +12 -0
- package/dot_config/ghostty/config.tmpl +165 -0
- package/dot_config/git/allowed_signers.tmpl +18 -0
- package/dot_config/git/attributes +12 -0
- package/dot_config/git/commit-template +10 -0
- package/dot_config/git/ignore +27 -0
- package/dot_config/gnupg/gpg-agent.conf +11 -0
- package/dot_config/go/golangci.yml +118 -0
- package/dot_config/go/gopls.json +30 -0
- package/dot_config/goose/config.yaml +29 -0
- package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
- package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
- package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
- package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
- package/dot_config/htop/htoprc +20 -0
- package/dot_config/inputrc +2 -0
- package/dot_config/ipython/profile_default/ipython_config.py +19 -0
- package/dot_config/just/justfile +122 -0
- package/dot_config/k9s/config.yaml +65 -0
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
- package/dot_config/kanshi/config.tmpl +22 -0
- package/dot_config/karabiner/karabiner.json +14 -0
- package/dot_config/kitty/kitty.conf.tmpl +53 -0
- package/dot_config/lazydocker/config.yml +186 -0
- package/dot_config/lazygit/config.yml +35 -0
- package/dot_config/mako/config +47 -0
- package/dot_config/mas/masapps.txt +5 -0
- package/dot_config/micro/settings.json +3 -0
- package/dot_config/mimeapps.list +77 -0
- package/dot_config/minikube/config.json +13 -0
- package/dot_config/mise/config.toml +99 -0
- package/dot_config/mongosh/mongoshrc.js +68 -0
- package/dot_config/mpv/input.conf +47 -0
- package/dot_config/mpv/mpv.conf +47 -0
- package/dot_config/mycli/myclirc +67 -0
- package/dot_config/nano/nanorc +28 -0
- package/dot_config/ncdu/config +12 -0
- package/dot_config/niri/config.kdl.tmpl +327 -0
- package/dot_config/nushell/aliases.nu +18 -0
- package/dot_config/nushell/completions.nu.tmpl +52 -0
- package/dot_config/nushell/config.nu.tmpl +86 -0
- package/dot_config/nushell/env.nu.tmpl +94 -0
- package/dot_config/nushell/functions.nu.tmpl +17 -0
- package/dot_config/nvim/init.lua +18 -0
- package/dot_config/nvim/lazy-lock.json +58 -0
- package/dot_config/nvim/lua/config/autocmds.lua +107 -0
- package/dot_config/nvim/lua/config/keymaps.lua +92 -0
- package/dot_config/nvim/lua/config/lazy.lua +44 -0
- package/dot_config/nvim/lua/config/options.lua +49 -0
- package/dot_config/nvim/lua/plugins/ai.lua +75 -0
- package/dot_config/nvim/lua/plugins/coding.lua +216 -0
- package/dot_config/nvim/lua/plugins/completion.lua +60 -0
- package/dot_config/nvim/lua/plugins/dap.lua +412 -0
- package/dot_config/nvim/lua/plugins/editor.lua +55 -0
- package/dot_config/nvim/lua/plugins/git.lua +10 -0
- package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
- package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
- package/dot_config/nvim/lua/plugins/rust.lua +34 -0
- package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
- package/dot_config/nvim/lua/plugins/ui.lua +509 -0
- package/dot_config/paru/paru.conf +10 -0
- package/dot_config/pip/pip.conf.tmpl +32 -0
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
- package/dot_config/pueue/pueue.yml +34 -0
- package/dot_config/pypoetry/config.toml +6 -0
- package/dot_config/pyrightconfig.json +5 -0
- package/dot_config/raycast/README.md +13 -0
- package/dot_config/redis/redisclirc +41 -0
- package/dot_config/ripgrep/ripgreprc +21 -0
- package/dot_config/shell/00-core-paths.sh.tmpl +133 -0
- package/dot_config/shell/05-core-safety.sh +47 -0
- package/dot_config/shell/10-secrets.sh +40 -0
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
- package/dot_config/shell/40-ls-colors.sh +48 -0
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
- package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
- package/dot_config/shell/90-ux-aliases.sh.tmpl +120 -0
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +54 -0
- package/dot_config/shell/Brewfile +207 -0
- package/dot_config/shell/Brewfile.cask +92 -0
- package/dot_config/shell/Brewfile.cli +127 -0
- package/dot_config/shell/README.md +267 -0
- package/dot_config/shell/als_data.txt.tmpl +65 -0
- package/dot_config/shell/custom/auto_ls.zsh +20 -0
- package/dot_config/shell/custom/context_suggest.zsh +68 -0
- package/dot_config/shell/custom/error_analysis.zsh +45 -0
- package/dot_config/sops/dot_sops.yaml +23 -0
- package/dot_config/starship.toml.tmpl +202 -0
- package/dot_config/swaylock/config +43 -0
- package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
- package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
- package/dot_config/systemd/user/pueued.service +12 -0
- package/dot_config/systemd/user/ssh-agent.service +12 -0
- package/dot_config/task/Taskfile.yml +86 -0
- package/dot_config/tflint/tflint.hcl +9 -0
- package/dot_config/tmux/tmux.conf.tmpl +223 -0
- package/dot_config/topgrade.toml.tmpl +54 -0
- package/dot_config/user-dirs.dirs +9 -0
- package/dot_config/vscode/extensions.txt +11 -0
- package/dot_config/vscode/settings.json.tmpl +82 -0
- package/dot_config/waybar/config.jsonc.tmpl +90 -0
- package/dot_config/waybar/style.css.tmpl +211 -0
- package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
- package/dot_config/wget/wgetrc +12 -0
- package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
- package/dot_config/yarn/yarnrc.yml +36 -0
- package/dot_config/yazi/keymap.toml +67 -0
- package/dot_config/yazi/theme.toml +102 -0
- package/dot_config/yazi/yazi.toml +40 -0
- package/dot_config/zathura/zathurarc +52 -0
- package/dot_config/zellij/config.kdl.tmpl +79 -0
- package/dot_config/zsh/dot_zprofile +7 -0
- package/dot_config/zsh/dot_zshenv +5 -0
- package/dot_config/zsh/dot_zshrc.tmpl +498 -0
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
- package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +194 -0
- package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
- package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
- package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
- package/dot_local/bin/executable_ai-update +195 -0
- package/dot_local/bin/executable_ai_core +152 -0
- package/dot_local/bin/executable_antigravity +11 -0
- package/dot_local/bin/executable_b64 +84 -0
- package/dot_local/bin/executable_bm +77 -0
- package/dot_local/bin/executable_cb +39 -0
- package/dot_local/bin/executable_dot +589 -0
- package/dot_local/bin/executable_dot-ai +36 -0
- package/dot_local/bin/executable_dot-bootstrap +77 -0
- package/dot_local/bin/executable_dot-launch-or-focus +52 -0
- package/dot_local/bin/executable_dot-load-benchmark +31 -0
- package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
- package/dot_local/bin/executable_dot-theme-sync +952 -0
- package/dot_local/bin/executable_dot_completion +57 -0
- package/dot_local/bin/executable_dtags +28 -0
- package/dot_local/bin/executable_epoch +67 -0
- package/dot_local/bin/executable_extract +41 -0
- package/dot_local/bin/executable_gbd +52 -0
- package/dot_local/bin/executable_gd +42 -0
- package/dot_local/bin/executable_git-ai-commit +175 -0
- package/dot_local/bin/executable_git-ai-diff +169 -0
- package/dot_local/bin/executable_gl +101 -0
- package/dot_local/bin/executable_hash +161 -0
- package/dot_local/bin/executable_hashsum +160 -0
- package/dot_local/bin/executable_hex +115 -0
- package/dot_local/bin/executable_jsonv +78 -0
- package/dot_local/bin/executable_jwt +94 -0
- package/dot_local/bin/executable_kill-port +75 -0
- package/dot_local/bin/executable_lorem +118 -0
- package/dot_local/bin/executable_mkscript +35 -0
- package/dot_local/bin/executable_monitor +56 -0
- package/dot_local/bin/executable_myip +51 -0
- package/dot_local/bin/executable_notify +22 -0
- package/dot_local/bin/executable_open +36 -0
- package/dot_local/bin/executable_pw +27 -0
- package/dot_local/bin/executable_rec-start +46 -0
- package/dot_local/bin/executable_rec-stop +35 -0
- package/dot_local/bin/executable_regex +132 -0
- package/dot_local/bin/executable_start-niri +8 -0
- package/dot_local/bin/executable_tmux-sessionizer +314 -0
- package/dot_local/bin/executable_tour +175 -0
- package/dot_local/bin/executable_up +21 -0
- package/dot_local/bin/executable_update +142 -0
- package/dot_local/bin/executable_uuid +87 -0
- package/dot_local/bin/executable_win +32 -0
- package/dot_local/bin/executable_yamlv +57 -0
- package/dot_local/share/bash-completion/completions/dot +72 -0
- package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
- package/dot_local/share/man/man1/dot.1 +149 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/dot_local/share/zsh/completions/_dot +283 -0
- package/install.sh +342 -0
- package/package.json +1 -1
- package/scripts/ci/check-copyright-headers.sh +96 -0
- package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
- package/scripts/ci/install-chezmoi-verified.sh +64 -0
- package/scripts/ci/validate-ci-config.sh +224 -0
- package/scripts/demo/record.sh +42 -0
- package/scripts/diagnostics/a2a-conformance.sh +162 -0
- package/scripts/diagnostics/alias-governance.sh +137 -0
- package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
- package/scripts/diagnostics/aliases-manifest.sh +31 -0
- package/scripts/diagnostics/benchmark.sh +381 -0
- package/scripts/diagnostics/conflicts.sh +72 -0
- package/scripts/diagnostics/doctor-unified.sh +38 -0
- package/scripts/diagnostics/doctor.sh +541 -0
- package/scripts/diagnostics/drift-dashboard.sh +37 -0
- package/scripts/diagnostics/health.sh +597 -0
- package/scripts/diagnostics/history-analysis.sh +85 -0
- package/scripts/diagnostics/mcp-doctor.sh +575 -0
- package/scripts/diagnostics/perf.sh +225 -0
- package/scripts/diagnostics/scorecard.sh +118 -0
- package/scripts/diagnostics/secret-governance.sh +58 -0
- package/scripts/diagnostics/security-score.sh +438 -0
- package/scripts/diagnostics/smoke-test.sh +87 -0
- package/scripts/diagnostics/snapshot.sh +89 -0
- package/scripts/diagnostics/verify.sh +107 -0
- package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
- package/scripts/diagnostics/version-locks.sh +79 -0
- package/scripts/diagnostics/workstation-attestation.sh +181 -0
- package/scripts/docs/build-manual.sh +883 -0
- package/scripts/docs/check-manual.sh +213 -0
- package/scripts/dot/commands/agent.sh +465 -0
- package/scripts/dot/commands/ai.sh +416 -0
- package/scripts/dot/commands/aliases.sh +250 -0
- package/scripts/dot/commands/appearance.sh +80 -0
- package/scripts/dot/commands/core.sh +185 -0
- package/scripts/dot/commands/diagnostics.sh +229 -0
- package/scripts/dot/commands/fleet.sh +399 -0
- package/scripts/dot/commands/lint.sh +177 -0
- package/scripts/dot/commands/manual.sh +168 -0
- package/scripts/dot/commands/meta.sh +248 -0
- package/scripts/dot/commands/patterns.sh +54 -0
- package/scripts/dot/commands/restore.sh +231 -0
- package/scripts/dot/commands/secrets.sh +223 -0
- package/scripts/dot/commands/security.sh +76 -0
- package/scripts/dot/commands/tools.sh +469 -0
- package/scripts/dot/data/alias-deprecations.tsv +2 -0
- package/scripts/dot/lib/bento.sh +49 -0
- package/scripts/dot/lib/log.sh +194 -0
- package/scripts/dot/lib/platform.sh +98 -0
- package/scripts/dot/lib/ui.sh +507 -0
- package/scripts/dot/lib/utils.sh +372 -0
- package/scripts/fonts/install-nerd-fonts.sh +68 -0
- package/scripts/fonts/patch-fonts.sh +35 -0
- package/scripts/git-hooks/install.sh +11 -0
- package/scripts/git-hooks/pre-commit +12 -0
- package/scripts/git-hooks/pre-commit-audit.sh +145 -0
- package/scripts/git-hooks/pre-push +29 -0
- package/scripts/git-hooks/prepare-commit-msg +29 -0
- package/scripts/lib/secrets_provider.sh +158 -0
- package/scripts/maintenance/check-updates.sh +131 -0
- package/scripts/ops/ai-setup.sh +55 -0
- package/scripts/ops/bundle.sh +77 -0
- package/scripts/ops/chaos.sh +49 -0
- package/scripts/ops/chezmoi-apply.sh +270 -0
- package/scripts/ops/chezmoi-diff.sh +15 -0
- package/scripts/ops/chezmoi-remove.sh +45 -0
- package/scripts/ops/chezmoi-update.sh +48 -0
- package/scripts/ops/heal-chezmoi.sh +51 -0
- package/scripts/ops/heal-system.sh +128 -0
- package/scripts/ops/heal-tools.sh +340 -0
- package/scripts/ops/heal.sh +222 -0
- package/scripts/ops/post-apply-repair.sh +106 -0
- package/scripts/ops/prewarm.sh +127 -0
- package/scripts/ops/release.sh +252 -0
- package/scripts/ops/rollback.sh +589 -0
- package/scripts/ops/setup.sh +137 -0
- package/scripts/ops/teleport.sh +33 -0
- package/scripts/qa/coverage-baseline.sh +60 -0
- package/scripts/qa/docs-coverage.sh +111 -0
- package/scripts/qa/reliability-audit.sh +138 -0
- package/scripts/qa/traceability-coverage.sh +116 -0
- package/scripts/qa/validate-examples.sh +26 -0
- package/scripts/qa/wsl-contract.sh +11 -0
- package/scripts/release/package-policy-bundles.sh +125 -0
- package/scripts/secrets/age-init.sh +70 -0
- package/scripts/secrets/create-secrets-file.sh +45 -0
- package/scripts/secrets/encrypt-ssh-key.sh +43 -0
- package/scripts/security/backup.sh +57 -0
- package/scripts/security/dns-doh.sh +51 -0
- package/scripts/security/encryption-check.sh +54 -0
- package/scripts/security/enforce-policies.sh +334 -0
- package/scripts/security/firewall.sh +90 -0
- package/scripts/security/lock-configs.sh +57 -0
- package/scripts/security/lock-screen.sh +55 -0
- package/scripts/security/manage-secrets.sh +428 -0
- package/scripts/security/ssh-cert.sh +203 -0
- package/scripts/security/telemetry-kill.sh +50 -0
- package/scripts/security/usb-safety.sh +51 -0
- package/scripts/theme/apply-gnome-theme.sh +328 -0
- package/scripts/theme/extract-theme.py +677 -0
- package/scripts/theme/install-boot-logo.sh +62 -0
- package/scripts/theme/install-catppuccin-themes.sh +370 -0
- package/scripts/theme/install-cursors.sh +25 -0
- package/scripts/theme/install-file-icons.sh +26 -0
- package/scripts/theme/install-grub-theme.sh +61 -0
- package/scripts/theme/install-lock-icon.sh +30 -0
- package/scripts/theme/merge-wallpaper.sh +141 -0
- package/scripts/theme/rebuild-themes.sh +309 -0
- package/scripts/theme/switch.sh +421 -0
- package/scripts/theme/wallpaper-rotate.sh +136 -0
- package/scripts/theme/wallpaper-sync.sh +397 -0
- package/scripts/tools/cmatrix.sh +21 -0
- package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
- package/scripts/tools/emoji-picker.sh +48 -0
- package/scripts/tools/figlet-banner.sh +18 -0
- package/scripts/tools/log-rotate.sh +30 -0
- package/scripts/tools/lolcat-wrap.sh +19 -0
- package/scripts/tools/pipes.sh +48 -0
- package/scripts/tuning/linux.sh +185 -0
- package/scripts/tuning/macos.sh +55 -0
- package/scripts/uninstall.sh +85 -0
- package/scripts/version-sync.sh +487 -0
- package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
- package/templates/chezmoi-data/mac-m1.toml.example +16 -0
- package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
- package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
- package/templates/projects/go/.github/workflows/ci.yml +31 -0
- package/templates/projects/go/README.md +4 -0
- package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
- package/templates/projects/go/go.sum +0 -0
- package/templates/projects/molecule/README.md +7 -0
- package/templates/projects/molecule/converge.yml +7 -0
- package/templates/projects/molecule/molecule.yml +16 -0
- package/templates/projects/node/.github/workflows/ci.yml +30 -0
- package/templates/projects/node/README.md +4 -0
- package/templates/projects/node/package-lock.json +12 -0
- package/templates/projects/node/src/index.js +1 -0
- package/templates/projects/packer/README.md +15 -0
- package/templates/projects/packer/main.pkr.hcl +15 -0
- package/templates/projects/python/.github/workflows/ci.yml +34 -0
- package/templates/projects/python/README.md +4 -0
- package/templates/projects/python/pyproject.toml +15 -0
- package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
- package/templates/projects/python/tests/test_basic.py +1 -0
- package/docs/ARCHITECTURE.md +0 -62
- package/docs/COMPLIANCE.md +0 -47
- package/docs/OPERATIONS.md +0 -103
- package/docs/PR_DESCRIPTION.md +0 -150
- package/docs/ROADMAP_legacy.md +0 -556
- package/docs/SECURITY_CHECKLIST.md +0 -25
- package/docs/TASK.md +0 -99
- package/docs/WALKTHROUGH.md +0 -46
- package/scripts/backup.sh +0 -142
- package/scripts/banner.sh +0 -20
- package/scripts/benchmark.sh +0 -20
- package/scripts/build.sh +0 -41
- package/scripts/clean.sh +0 -31
- package/scripts/compile.sh +0 -54
- package/scripts/copy.sh +0 -108
- package/scripts/doctor.sh +0 -79
- package/scripts/dotfiles.sh +0 -63
- package/scripts/download.sh +0 -35
- package/scripts/help.sh +0 -57
- package/scripts/lock-configs.sh +0 -57
- package/scripts/package.sh +0 -46
- package/scripts/ssh.sh +0 -55
- package/scripts/teleport.sh +0 -23
- package/scripts/test-aliases.sh +0 -25
- package/scripts/test_smoke.sh +0 -88
- package/scripts/unpack.sh +0 -28
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# MyCLI Configuration (~/.config/mycli/myclirc)
|
|
2
|
+
# https://www.mycli.net/config
|
|
3
|
+
|
|
4
|
+
[main]
|
|
5
|
+
# Smart completion (auto-suggest table names, columns, etc.)
|
|
6
|
+
smart_completion = True
|
|
7
|
+
|
|
8
|
+
# Multi-line mode
|
|
9
|
+
multi_line = False
|
|
10
|
+
|
|
11
|
+
# Use Vi mode
|
|
12
|
+
key_bindings = emacs
|
|
13
|
+
|
|
14
|
+
# Auto-refresh completions after each query
|
|
15
|
+
auto_refresh_completions = True
|
|
16
|
+
|
|
17
|
+
# Table format (ascii, simple, fancy_grid, etc.)
|
|
18
|
+
table_format = fancy_grid
|
|
19
|
+
|
|
20
|
+
# Syntax highlighting style
|
|
21
|
+
syntax_style = monokai
|
|
22
|
+
|
|
23
|
+
# Show query execution time
|
|
24
|
+
timing = True
|
|
25
|
+
|
|
26
|
+
# Log queries to file
|
|
27
|
+
log_file = ~/.local/share/mycli/log
|
|
28
|
+
log_level = WARNING
|
|
29
|
+
|
|
30
|
+
# History file
|
|
31
|
+
history_file = ~/.local/share/mycli/history
|
|
32
|
+
|
|
33
|
+
# Enable pager for long output
|
|
34
|
+
enable_pager = True
|
|
35
|
+
pager = less -SRXF
|
|
36
|
+
|
|
37
|
+
# Warn before running destructive commands
|
|
38
|
+
destructive_warning = True
|
|
39
|
+
|
|
40
|
+
# Keyword casing
|
|
41
|
+
keyword_casing = upper
|
|
42
|
+
|
|
43
|
+
# Auto-vertical output when row too wide
|
|
44
|
+
auto_vertical_output = True
|
|
45
|
+
|
|
46
|
+
# Prompt format
|
|
47
|
+
prompt = '\t \u@\h:\d> '
|
|
48
|
+
prompt_continuation = '-> '
|
|
49
|
+
|
|
50
|
+
# Show bottom toolbar
|
|
51
|
+
show_bottom_toolbar = True
|
|
52
|
+
|
|
53
|
+
[colors]
|
|
54
|
+
# Override default colors
|
|
55
|
+
completion-menu.completion.current = 'bg:#00aaaa #000000'
|
|
56
|
+
completion-menu.completion = 'bg:#008888 #ffffff'
|
|
57
|
+
completion-menu.meta.completion.current = 'bg:#00aaaa #000000'
|
|
58
|
+
completion-menu.meta.completion = 'bg:#00aaaa #ffffff'
|
|
59
|
+
|
|
60
|
+
[favorite_queries]
|
|
61
|
+
# Shortcut queries (use \f <name> to run)
|
|
62
|
+
show_status = SHOW GLOBAL STATUS
|
|
63
|
+
show_vars = SHOW GLOBAL VARIABLES
|
|
64
|
+
show_proc = SHOW FULL PROCESSLIST
|
|
65
|
+
show_dbs = SHOW DATABASES
|
|
66
|
+
show_tables = SHOW TABLES
|
|
67
|
+
show_create = SHOW CREATE TABLE
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Nano Configuration
|
|
2
|
+
set atblanks
|
|
3
|
+
set autoindent
|
|
4
|
+
set backup
|
|
5
|
+
set boldtext
|
|
6
|
+
set bookstyle
|
|
7
|
+
set casesensitive
|
|
8
|
+
set constantshow
|
|
9
|
+
set historylog
|
|
10
|
+
set functioncolor cyan
|
|
11
|
+
set keycolor cyan
|
|
12
|
+
set linenumbers
|
|
13
|
+
set mouse
|
|
14
|
+
set noconvert
|
|
15
|
+
set numbercolor yellow
|
|
16
|
+
set preserve
|
|
17
|
+
set showcursor
|
|
18
|
+
set smarthome
|
|
19
|
+
set softwrap
|
|
20
|
+
set statuscolor black,yellow
|
|
21
|
+
set tabsize 4
|
|
22
|
+
set tabstospaces
|
|
23
|
+
set trimblanks
|
|
24
|
+
set titlecolor white,red
|
|
25
|
+
set whitespace "»⋅"
|
|
26
|
+
set wordbounds
|
|
27
|
+
set wordchars "_"
|
|
28
|
+
set zap
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
// Niri Configuration (v{{ .dotfiles_version }})
|
|
2
|
+
// Machine: {{ .chezmoi.hostname }} | Profile: {{ .profile }}
|
|
3
|
+
// KDL format: https://kdl.dev
|
|
4
|
+
{{- $hw := .hardware -}}
|
|
5
|
+
{{- $machine := .machine -}}
|
|
6
|
+
{{- if and $machine (ne $machine "") -}}
|
|
7
|
+
{{- $m := index .machines $machine -}}
|
|
8
|
+
{{- if $m -}}
|
|
9
|
+
{{- $hw = $m -}}
|
|
10
|
+
{{- end -}}
|
|
11
|
+
{{- end -}}
|
|
12
|
+
{{- $t := index .themes (default "macos-monterey-dark" .theme) -}}
|
|
13
|
+
{{- if not $t -}}{{- $t = index .themes "macos-monterey-dark" -}}{{- end }}
|
|
14
|
+
config-notification {
|
|
15
|
+
disable-failed
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
gestures {
|
|
19
|
+
hot-corners {
|
|
20
|
+
off
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Input device configuration.
|
|
25
|
+
// Find the full list of options on the wiki:
|
|
26
|
+
// https://github.com/YaLTeR/niri/wiki/Configuration:-Input
|
|
27
|
+
input {
|
|
28
|
+
keyboard {
|
|
29
|
+
xkb {
|
|
30
|
+
}
|
|
31
|
+
numlock
|
|
32
|
+
repeat-delay 250
|
|
33
|
+
repeat-rate 35
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Next sections include libinput settings.
|
|
37
|
+
// Omitting settings disables them, or leaves them at their default values.
|
|
38
|
+
// All commented-out settings here are examples, not defaults.
|
|
39
|
+
touchpad {
|
|
40
|
+
{{- if eq $hw.touchpad true }}
|
|
41
|
+
tap
|
|
42
|
+
dwt
|
|
43
|
+
dwtp
|
|
44
|
+
natural-scroll
|
|
45
|
+
{{- if ne (float64 $hw.touchpad_accel) 0.0 }}
|
|
46
|
+
accel-speed {{ $hw.touchpad_accel }}
|
|
47
|
+
{{- end }}
|
|
48
|
+
{{- if and $hw.touchpad_accel_profile (ne $hw.touchpad_accel_profile "adaptive") }}
|
|
49
|
+
accel-profile "{{ $hw.touchpad_accel_profile }}"
|
|
50
|
+
{{- end }}
|
|
51
|
+
{{- if eq $hw.profile "desktop" }}
|
|
52
|
+
disabled-on-external-mouse
|
|
53
|
+
{{- end }}
|
|
54
|
+
{{- else }}
|
|
55
|
+
off
|
|
56
|
+
{{- end }}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
mouse {
|
|
60
|
+
{{- if eq $hw.profile "desktop" }}
|
|
61
|
+
accel-profile "flat"
|
|
62
|
+
{{- end }}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
trackpoint {
|
|
66
|
+
// off
|
|
67
|
+
// natural-scroll
|
|
68
|
+
// accel-speed 0.2
|
|
69
|
+
// accel-profile "flat"
|
|
70
|
+
// scroll-method "on-button-down"
|
|
71
|
+
// scroll-button 273
|
|
72
|
+
// scroll-button-lock
|
|
73
|
+
// middle-emulation
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Uncomment this to make the mouse warp to the center of newly focused windows.
|
|
77
|
+
// warp-mouse-to-focus
|
|
78
|
+
|
|
79
|
+
// Focus windows and outputs automatically when moving the mouse into them.
|
|
80
|
+
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
|
|
81
|
+
// focus-follows-mouse max-scroll-amount="0%"
|
|
82
|
+
|
|
83
|
+
disable-power-key-handling
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
cursor {
|
|
87
|
+
hide-when-typing
|
|
88
|
+
hide-after-inactive-ms 3000
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
clipboard {
|
|
92
|
+
disable-primary
|
|
93
|
+
}
|
|
94
|
+
// Output configuration — hardware-aware via .chezmoidata/hardware.toml
|
|
95
|
+
// Run `niri msg outputs` to discover output names.
|
|
96
|
+
{{- if and $hw.output_name $hw.output_mode }}
|
|
97
|
+
output "{{ $hw.output_name }}" {
|
|
98
|
+
mode "{{ $hw.output_mode }}"
|
|
99
|
+
scale {{ $hw.scale }}
|
|
100
|
+
{{- if gt (int $hw.max_refresh) 60 }}
|
|
101
|
+
variable-refresh-rate
|
|
102
|
+
{{- end }}
|
|
103
|
+
}
|
|
104
|
+
{{- end }}
|
|
105
|
+
// Settings that influence how windows are positioned and sized.
|
|
106
|
+
// Find more information on the wiki:
|
|
107
|
+
// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout
|
|
108
|
+
layout {
|
|
109
|
+
// Set gaps around windows in logical pixels.
|
|
110
|
+
background-color "transparent"
|
|
111
|
+
// When to center a column when changing focus, options are:
|
|
112
|
+
// - "never", default behavior, focusing an off-screen column will keep at the left
|
|
113
|
+
// or right edge of the screen.
|
|
114
|
+
// - "always", the focused column will always be centered.
|
|
115
|
+
// - "on-overflow", focusing a column will center it if it doesn't fit
|
|
116
|
+
// together with the previously focused column.
|
|
117
|
+
center-focused-column "on-overflow"
|
|
118
|
+
always-center-single-column
|
|
119
|
+
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
|
|
120
|
+
preset-column-widths {
|
|
121
|
+
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
|
122
|
+
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
|
123
|
+
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
|
124
|
+
proportion 0.33333
|
|
125
|
+
proportion 0.5
|
|
126
|
+
proportion 0.66667
|
|
127
|
+
// Fixed sets the width in logical pixels exactly.
|
|
128
|
+
// fixed 1920
|
|
129
|
+
}
|
|
130
|
+
// You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
|
|
131
|
+
// preset-window-heights { }
|
|
132
|
+
// You can change the default width of the new windows.
|
|
133
|
+
default-column-width { proportion 0.5; }
|
|
134
|
+
// If you leave the brackets empty, the windows themselves will decide their initial width.
|
|
135
|
+
// default-column-width {}
|
|
136
|
+
// By default focus ring and border are rendered as a solid background rectangle
|
|
137
|
+
// behind windows. That is, they will show up through semitransparent windows.
|
|
138
|
+
// This is because windows using client-side decorations can have an arbitrary shape.
|
|
139
|
+
//
|
|
140
|
+
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
|
141
|
+
// Niri will draw focus ring and border *around* windows that agree to omit their
|
|
142
|
+
// client-side decorations.
|
|
143
|
+
//
|
|
144
|
+
// Alternatively, you can override it with a window rule called
|
|
145
|
+
// `draw-border-with-background`.
|
|
146
|
+
focus-ring {
|
|
147
|
+
active-color "{{ $t.ui.accent }}"
|
|
148
|
+
inactive-color "{{ $t.ui.border }}"
|
|
149
|
+
urgent-color "{{ $t.ui.error }}"
|
|
150
|
+
}
|
|
151
|
+
border {
|
|
152
|
+
active-color "{{ $t.ui.accent }}"
|
|
153
|
+
inactive-color "{{ $t.ui.border }}"
|
|
154
|
+
urgent-color "{{ $t.ui.error }}"
|
|
155
|
+
}
|
|
156
|
+
shadow {
|
|
157
|
+
softness 15
|
|
158
|
+
spread 5
|
|
159
|
+
offset x=0 y=5
|
|
160
|
+
color "{{ $t.term.bg }}70"
|
|
161
|
+
}
|
|
162
|
+
struts {
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
layer-rule {
|
|
166
|
+
match namespace="^quickshell$"
|
|
167
|
+
place-within-backdrop true
|
|
168
|
+
}
|
|
169
|
+
overview {
|
|
170
|
+
workspace-shadow {
|
|
171
|
+
off
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// Add lines like this to spawn processes at startup.
|
|
175
|
+
// Note that running niri as a session supports xdg-desktop-autostart,
|
|
176
|
+
// which may be more convenient to use.
|
|
177
|
+
// See the binds section below for more spawn examples.
|
|
178
|
+
// This line starts waybar, a commonly used bar for Wayland compositors.
|
|
179
|
+
|
|
180
|
+
// Idle management — lock screen after 5 min, monitors off after 10 min
|
|
181
|
+
spawn-at-startup "swayidle" "-w" "timeout" "300" "swaylock -f" "timeout" "600" "niri msg action power-off-monitors" "before-sleep" "swaylock -f"
|
|
182
|
+
|
|
183
|
+
// Clipboard persistence — text and image history via cliphist
|
|
184
|
+
spawn-at-startup "wl-paste" "--type" "text" "--watch" "cliphist" "store"
|
|
185
|
+
spawn-at-startup "wl-paste" "--type" "image" "--watch" "cliphist" "store"
|
|
186
|
+
|
|
187
|
+
environment {
|
|
188
|
+
XDG_CURRENT_DESKTOP "niri"
|
|
189
|
+
}
|
|
190
|
+
hotkey-overlay {
|
|
191
|
+
skip-at-startup
|
|
192
|
+
}
|
|
193
|
+
prefer-no-csd
|
|
194
|
+
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
|
195
|
+
animations {
|
|
196
|
+
workspace-switch {
|
|
197
|
+
spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001
|
|
198
|
+
}
|
|
199
|
+
window-open {
|
|
200
|
+
duration-ms 120
|
|
201
|
+
curve "ease-out-expo"
|
|
202
|
+
}
|
|
203
|
+
window-close {
|
|
204
|
+
duration-ms 120
|
|
205
|
+
curve "ease-out-quad"
|
|
206
|
+
}
|
|
207
|
+
horizontal-view-movement {
|
|
208
|
+
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
209
|
+
}
|
|
210
|
+
window-movement {
|
|
211
|
+
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
212
|
+
}
|
|
213
|
+
window-resize {
|
|
214
|
+
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
215
|
+
}
|
|
216
|
+
config-notification-open-close {
|
|
217
|
+
spring damping-ratio=1.0 stiffness=900 epsilon=0.001
|
|
218
|
+
}
|
|
219
|
+
screenshot-ui-open {
|
|
220
|
+
duration-ms 150
|
|
221
|
+
curve "ease-out-quad"
|
|
222
|
+
}
|
|
223
|
+
overview-open-close {
|
|
224
|
+
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// Window rules let you adjust behavior for individual windows.
|
|
228
|
+
// Find more information on the wiki:
|
|
229
|
+
// https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules
|
|
230
|
+
// Work around WezTerm's initial configure bug
|
|
231
|
+
// by setting an empty default-column-width.
|
|
232
|
+
window-rule {
|
|
233
|
+
// This regular expression is intentionally made as specific as possible,
|
|
234
|
+
// since this is the default config, and we want no false positives.
|
|
235
|
+
// You can get away with just app-id="wezterm" if you want.
|
|
236
|
+
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
|
237
|
+
default-column-width {}
|
|
238
|
+
}
|
|
239
|
+
window-rule {
|
|
240
|
+
match app-id=r#"^org\.gnome\."#
|
|
241
|
+
draw-border-with-background false
|
|
242
|
+
geometry-corner-radius 12
|
|
243
|
+
clip-to-geometry true
|
|
244
|
+
}
|
|
245
|
+
window-rule {
|
|
246
|
+
match app-id=r#"^gnome-control-center$"#
|
|
247
|
+
match app-id=r#"^pavucontrol$"#
|
|
248
|
+
match app-id=r#"^nm-connection-editor$"#
|
|
249
|
+
default-column-width { proportion 0.5; }
|
|
250
|
+
open-floating false
|
|
251
|
+
}
|
|
252
|
+
window-rule {
|
|
253
|
+
match app-id=r#"^gnome-calculator$"#
|
|
254
|
+
match app-id=r#"^galculator$"#
|
|
255
|
+
match app-id=r#"^blueman-manager$"#
|
|
256
|
+
match app-id=r#"^org\.gnome\.Nautilus$"#
|
|
257
|
+
match app-id=r#"^xdg-desktop-portal$"#
|
|
258
|
+
open-floating true
|
|
259
|
+
}
|
|
260
|
+
window-rule {
|
|
261
|
+
match app-id=r#"^steam$"# title=r#"^notificationtoasts_\d+_desktop$"#
|
|
262
|
+
default-floating-position x=10 y=10 relative-to="bottom-right"
|
|
263
|
+
open-focused false
|
|
264
|
+
}
|
|
265
|
+
window-rule {
|
|
266
|
+
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
|
267
|
+
match app-id="Alacritty"
|
|
268
|
+
match app-id="zen"
|
|
269
|
+
match app-id="com.mitchellh.ghostty"
|
|
270
|
+
match app-id="kitty"
|
|
271
|
+
draw-border-with-background false
|
|
272
|
+
}
|
|
273
|
+
window-rule {
|
|
274
|
+
match app-id="zoom"
|
|
275
|
+
open-floating true
|
|
276
|
+
}
|
|
277
|
+
window-rule {
|
|
278
|
+
match app-id="flameshot"
|
|
279
|
+
open-floating true
|
|
280
|
+
}
|
|
281
|
+
// Open dms windows as floating by default
|
|
282
|
+
window-rule {
|
|
283
|
+
match app-id=r#"org.quickshell$"#
|
|
284
|
+
open-floating true
|
|
285
|
+
}
|
|
286
|
+
// Visual focus hierarchy — dim unfocused windows
|
|
287
|
+
window-rule {
|
|
288
|
+
match is-focused=false
|
|
289
|
+
opacity 0.9
|
|
290
|
+
}
|
|
291
|
+
// Block sensitive apps from screen capture
|
|
292
|
+
window-rule {
|
|
293
|
+
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
|
294
|
+
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
|
295
|
+
match app-id=r#"^1Password$"#
|
|
296
|
+
block-out-from "screen-capture"
|
|
297
|
+
}
|
|
298
|
+
// Firefox PiP — float with fixed size, bottom-right
|
|
299
|
+
window-rule {
|
|
300
|
+
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
|
301
|
+
open-floating true
|
|
302
|
+
default-column-width { fixed 480; }
|
|
303
|
+
default-window-height { fixed 270; }
|
|
304
|
+
default-floating-position x=32 y=32 relative-to="bottom-right"
|
|
305
|
+
}
|
|
306
|
+
debug {
|
|
307
|
+
honor-xdg-activation-with-invalid-serial
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// Override to disable super+tab
|
|
311
|
+
recent-windows {
|
|
312
|
+
binds {
|
|
313
|
+
Alt+Tab { next-window scope="output"; }
|
|
314
|
+
Alt+Shift+Tab { previous-window scope="output"; }
|
|
315
|
+
Alt+grave { next-window filter="app-id"; }
|
|
316
|
+
Alt+Shift+grave { previous-window filter="app-id"; }
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Include dms files (colors owned by chezmoi, not dms/colors.kdl)
|
|
321
|
+
include "dms/layout.kdl"
|
|
322
|
+
include "dms/alttab.kdl"
|
|
323
|
+
include "dms/binds.kdl"
|
|
324
|
+
include "dms/outputs.kdl"
|
|
325
|
+
include "dms/cursor.kdl"
|
|
326
|
+
|
|
327
|
+
include "dms/windowrules.kdl"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Nushell aliases — bridged from bash alias library (Generated by Chezmoi)
|
|
2
|
+
# Edit .chezmoitemplates/aliases/ source files, not this file.
|
|
3
|
+
#
|
|
4
|
+
# Architecture: env.nu generates ~/.cache/nushell/bash-aliases.nu via bash bridge.
|
|
5
|
+
# This file is sourced from config.nu and loads the cached aliases.
|
|
6
|
+
# Only simple command aliases are bridged; complex bash syntax is skipped.
|
|
7
|
+
#
|
|
8
|
+
# Data flow: .chezmoitemplates/aliases/ -> 90/91-ux-aliases*.sh -> bash bridge -> cache
|
|
9
|
+
|
|
10
|
+
source ~/.cache/nushell/bash-aliases.nu
|
|
11
|
+
|
|
12
|
+
alias d = dot
|
|
13
|
+
alias dv = dot --version
|
|
14
|
+
alias dd = dot doctor
|
|
15
|
+
alias dm = dot mode list
|
|
16
|
+
alias da = dot agent list
|
|
17
|
+
alias dmc = dot mcp registry
|
|
18
|
+
alias datt = dot attest --json
|
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
mkdir ~/.cache/nushell
|
|
33
|
+
|
|
34
|
+
# Starship prompt
|
|
35
|
+
if (which starship | length) > 0 {
|
|
36
|
+
starship init nu | save -f ~/.cache/nushell/starship.nu
|
|
37
|
+
} else {
|
|
38
|
+
"" | save -f ~/.cache/nushell/starship.nu
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
# Zoxide directory jumper
|
|
42
|
+
if (which zoxide | length) > 0 {
|
|
43
|
+
zoxide init nushell | save -f ~/.cache/nushell/zoxide.nu
|
|
44
|
+
} else {
|
|
45
|
+
"" | save -f ~/.cache/nushell/zoxide.nu
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
# Atuin shell history
|
|
49
|
+
if (which atuin | length) > 0 {
|
|
50
|
+
atuin init nu | save -f ~/.cache/nushell/atuin.nu
|
|
51
|
+
} else {
|
|
52
|
+
"" | save -f ~/.cache/nushell/atuin.nu
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
# Generate Nushell alias cache from bash alias library
|
|
56
|
+
do -i {
|
|
57
|
+
bash --norc --noprofile -c '
|
|
58
|
+
source "$HOME/.config/shell/90-ux-aliases.sh" 2>/dev/null
|
|
59
|
+
source "$HOME/.config/shell/91-ux-aliases-lazy.sh" 2>/dev/null
|
|
60
|
+
alias -p 2>/dev/null | while IFS= read -r line; do
|
|
61
|
+
name="${line#alias }"
|
|
62
|
+
name="${name#-- }"
|
|
63
|
+
name="${name%%=*}"
|
|
64
|
+
# Only valid Nushell identifiers (letters, digits, hyphens, underscores)
|
|
65
|
+
[[ "$name" =~ ^[a-zA-Z_][a-zA-Z0-9_-]*$ ]] || continue
|
|
66
|
+
val="${line#*=}"
|
|
67
|
+
# Remove surrounding single quotes from bash alias output
|
|
68
|
+
val="${val#\'}"
|
|
69
|
+
val="${val%\'}"
|
|
70
|
+
# Skip syntax incompatible with Nushell aliases
|
|
71
|
+
case "$val" in
|
|
72
|
+
*\$\{*|*\$\(*) continue ;;
|
|
73
|
+
*\`*) continue ;;
|
|
74
|
+
*"[["*|*"&&"*|*"||"*) continue ;;
|
|
75
|
+
*";"*|*"|"*) continue ;;
|
|
76
|
+
*">"*|*"<"*) continue ;;
|
|
77
|
+
*"("*|*")"*) continue ;;
|
|
78
|
+
"") continue ;;
|
|
79
|
+
esac
|
|
80
|
+
printf "alias %s = %s\n" "$name" "$val"
|
|
81
|
+
done
|
|
82
|
+
' | save -f ~/.cache/nushell/bash-aliases.nu
|
|
83
|
+
}
|
|
84
|
+
# Carapace multi-shell completions
|
|
85
|
+
if (which carapace | length) > 0 {
|
|
86
|
+
carapace _carapace nushell | save -f ~/.cache/nushell/carapace.nu
|
|
87
|
+
} else {
|
|
88
|
+
"" | save -f ~/.cache/nushell/carapace.nu
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
# Ensure alias cache exists even if bash bridge failed
|
|
92
|
+
if not ($"($env.HOME)/.cache/nushell/bash-aliases.nu" | path exists) {
|
|
93
|
+
"" | save -f ~/.cache/nushell/bash-aliases.nu
|
|
94
|
+
}
|