@sebastienrousseau/dotfiles 0.2.499 → 0.2.501
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 +452 -0
- package/LICENSE +1283 -0
- package/README.md +322 -0
- package/docs/.vitepress/reports/localization-readability-audit.md +73 -0
- package/docs/AI.md +108 -0
- package/docs/CNAME +1 -0
- package/docs/COPYRIGHT +4 -3
- package/docs/NAMING_CONVENTIONS.md +102 -0
- package/docs/README.md +82 -0
- package/docs/_config.yml +59 -0
- package/docs/adr/ADR-001-ci-cd-pipeline.md +118 -0
- package/docs/adr/ADR-002-shell-performance.md +130 -0
- package/docs/adr/ADR-003-security-first.md +158 -0
- package/docs/adr/ADR-004-cli-architecture.md +171 -0
- package/docs/adr/ADR-005-chezmoi-choice.md +99 -0
- package/docs/adr/ADR-006-shell-selection.md +124 -0
- package/docs/adr/ADR-007-multi-shell-parity.md +62 -0
- package/docs/adr/ADR-008-alias-system-architecture.md +95 -0
- package/docs/adr/ADR-009-wallpaper-driven-theming.md +131 -0
- package/docs/adr/ADR-010-starship-transient-prompt.md +144 -0
- package/docs/adr/ADR-011-nushell-tier3-keep.md +144 -0
- package/docs/adr/README.md +39 -0
- package/docs/architecture/ARCHITECTURE.md +117 -0
- package/docs/architecture/INTEROP.md +44 -0
- package/docs/architecture/REPO_LAYOUT.md +241 -0
- package/docs/architecture/WALKTHROUGH.md +86 -0
- package/docs/architecture/fleet-deployment.md +77 -0
- package/docs/archive/EUXIS_2026_REVIEW.md +127 -0
- package/docs/archive/LEGACY_ROADMAP.md +160 -0
- package/docs/archive/MILESTONE_v0.2.493.md +47 -0
- package/docs/{PLAN.md → archive/PLAN.md} +50 -12
- package/docs/archive/REPO_AUDIT.md +31 -0
- package/docs/guides/INSTALL.md +144 -0
- package/docs/guides/NEOVIM_IDE_GUIDE.md +61 -0
- package/docs/guides/THEMING.md +230 -0
- package/docs/guides/TROUBLESHOOTING.md +176 -0
- package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +792 -0
- package/docs/index.md +43 -0
- package/docs/interop/A2A.md +39 -0
- package/docs/interop/POWERSHELL.md +102 -0
- package/docs/manual/00-introduction.md +89 -0
- package/docs/manual/01-concepts/01-architecture.md +138 -0
- package/docs/manual/01-concepts/02-trust-model.md +182 -0
- package/docs/manual/01-concepts/03-theme-engine.md +186 -0
- package/docs/manual/01-concepts/04-fleet.md +148 -0
- package/docs/manual/01-concepts/05-self-healing.md +204 -0
- package/docs/manual/02-tutorials/01-first-install.md +197 -0
- package/docs/manual/02-tutorials/02-add-wallpaper.md +216 -0
- package/docs/manual/02-tutorials/03-create-profile.md +244 -0
- package/docs/manual/02-tutorials/04-encrypt-secret.md +281 -0
- package/docs/manual/02-tutorials/05-deploy-fleet.md +283 -0
- package/docs/manual/03-reference/01-dot-cli.md +417 -0
- package/docs/manual/03-reference/02-config-files.md +265 -0
- package/docs/manual/03-reference/03-environment.md +124 -0
- package/docs/manual/03-reference/04-templates.md +190 -0
- package/docs/manual/03-reference/05-feature-flags.md +128 -0
- package/docs/manual/04-cookbook/01-recipes.md +285 -0
- package/docs/manual/04-cookbook/02-troubleshooting.md +351 -0
- package/docs/manual/04-cookbook/03-faq.md +175 -0
- package/docs/manual/05-appendices/A-platform-matrix.md +101 -0
- package/docs/manual/05-appendices/B-security-checklist.md +84 -0
- package/docs/manual/05-appendices/C-glossary.md +40 -0
- package/docs/manual/05-appendices/D-bibliography.md +58 -0
- package/docs/manual/05-appendices/E-license.md +38 -0
- package/docs/manual/_toc.yml +58 -0
- package/docs/manual/command-index.md +62 -0
- package/docs/manual/concept-index.md +168 -0
- package/docs/operations/ATTESTATION.md +44 -0
- package/docs/operations/CI_CADENCE.md +107 -0
- package/docs/operations/CI_COMPOSITES.md +156 -0
- package/docs/operations/COMPLETIONS.md +123 -0
- package/docs/operations/COVERAGE.md +148 -0
- package/docs/operations/DRIFT.md +107 -0
- package/docs/operations/MAINTENANCE.md +63 -0
- package/docs/operations/MIGRATION.md +109 -0
- package/docs/operations/OPERATIONS.md +188 -0
- package/docs/operations/PERFORMANCE.md +133 -0
- package/docs/operations/RELIABILITY.md +122 -0
- package/docs/{ROADMAP.md → operations/ROADMAP.md} +57 -39
- package/docs/operations/TESTING.md +199 -0
- package/docs/operations/TRACEABILITY.md +35 -0
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +65 -0
- package/docs/operations/VERSION_SYNC.md +393 -0
- package/docs/reference/ALIASES.md +131 -0
- package/docs/reference/ALIASES_CHEATSHEET.md +32 -0
- package/docs/reference/ALIASES_DEPRECATIONS.md +13 -0
- package/docs/reference/FEATURES.md +66 -0
- package/docs/reference/FONTS.md +112 -0
- package/docs/reference/PROFILES.md +69 -0
- package/docs/reference/SCREENSHOTS.md +121 -0
- package/docs/reference/SCRIPTS.md +71 -0
- package/docs/reference/SUPPORT_MATRIX.md +80 -0
- package/docs/reference/THEMES.md +117 -0
- package/docs/reference/TOOLS.md +109 -0
- package/docs/reference/UTILS.md +155 -0
- package/docs/security/AI_ACT_COMPLIANCE.md +94 -0
- package/docs/security/AUDIT_BYPASS.md +103 -0
- package/docs/security/AUTOMATION_SECRETS.md +26 -0
- package/docs/security/CI_EGRESS_ALLOWLIST.md +127 -0
- package/docs/security/COMPLIANCE.md +458 -0
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +86 -0
- package/docs/security/ENCRYPTION.md +57 -0
- package/docs/security/FMEA.md +159 -0
- package/docs/security/HISTORY_FILTERING.md +132 -0
- package/docs/security/INCIDENT_RESPONSE.md +579 -0
- package/docs/security/INSTALL_VERIFICATION.md +122 -0
- package/docs/security/KEYS.md +49 -0
- package/docs/security/KEY_ROTATION.md +223 -0
- package/docs/security/MCP_POLICY.md +78 -0
- package/docs/security/POLICY_RELEASES.md +37 -0
- package/docs/security/README.md +28 -0
- package/docs/security/SCORECARD.md +80 -0
- package/docs/security/SECRETS.md +158 -0
- package/docs/security/SECURITY.md +45 -0
- package/docs/security/SECURITY_CHECKLIST.md +55 -0
- package/docs/security/SHELL_EXEMPTIONS.md +145 -0
- package/docs/security/SOUP_REGISTER.md +36 -0
- package/docs/security/THREAT_MODEL.md +130 -0
- package/docs/security/VERIFICATION_VALIDATION.md +228 -0
- package/docs/themes/README.md +10 -0
- package/docs/themes/VISUAL_INTEGRITY_REPORT.md +30 -0
- package/docs/themes/hero-shot.svg +78 -0
- package/dot_config/.module-manifest.json +69 -0
- package/dot_config/ai/identity.md +23 -0
- package/dot_config/ai/patterns/architect.md +16 -0
- package/dot_config/ai/patterns/hardener.md +15 -0
- package/dot_config/ai/patterns/refactor.md +15 -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.tmpl +47 -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 +13 -0
- package/dot_config/dotfiles/grub/README.md +13 -0
- package/dot_config/dotfiles/lock/README.md +13 -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 +172 -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 +131 -0
- package/dot_config/fish/functions/_cached_eval_clear.fish +17 -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/hooks/executable_commit-msg +146 -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/cached_eval.nu +80 -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 +102 -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 +134 -0
- package/dot_config/shell/05-core-safety.sh +48 -0
- package/dot_config/shell/10-secrets.sh +41 -0
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +17 -0
- package/dot_config/shell/40-ls-colors.sh +49 -0
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +11 -0
- package/dot_config/shell/50-logic-functions.sh.tmpl +11 -0
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +65 -0
- package/dot_config/shell/90-ux-aliases.sh.tmpl +121 -0
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +55 -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 +284 -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 +10 -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 +635 -0
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +99 -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 +214 -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/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 +79 -0
- package/dot_local/bin/executable_cb +39 -0
- package/dot_local/bin/executable_dot +596 -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 +24 -0
- package/dot_local/bin/executable_open +38 -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 +177 -0
- package/dot_local/bin/executable_up +23 -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 +350 -0
- package/package.json +1 -1
- package/scripts/ci/check-copyright-headers.sh +96 -0
- package/scripts/ci/check-dangerous-chmod.sh +19 -0
- package/scripts/ci/check-deps-dev.sh +236 -0
- package/scripts/ci/check-insecure-tls.sh +61 -0
- package/scripts/ci/check-regression-traceability.sh +67 -0
- package/scripts/ci/check-shell-preamble.sh +106 -0
- package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
- package/scripts/ci/install-chezmoi-verified.sh +64 -0
- package/scripts/ci/run-coverage.sh +362 -0
- package/scripts/ci/validate-chezmoidata.sh +25 -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 +709 -0
- package/scripts/diagnostics/drift-dashboard.sh +201 -0
- package/scripts/diagnostics/health.sh +614 -0
- package/scripts/diagnostics/history-analysis.sh +85 -0
- package/scripts/diagnostics/mcp-doctor.sh +575 -0
- package/scripts/diagnostics/perf.sh +452 -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 +186 -0
- package/scripts/docs/build-manual.sh +883 -0
- package/scripts/docs/check-manual.sh +213 -0
- package/scripts/dot/commands/agent.sh +474 -0
- package/scripts/dot/commands/ai.sh +481 -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 +50 -0
- package/scripts/dot/lib/log.sh +200 -0
- package/scripts/dot/lib/platform.sh +99 -0
- package/scripts/dot/lib/ui.sh +518 -0
- package/scripts/dot/lib/utils.sh +377 -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 +92 -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 +86 -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/powershell-contract.ps1 +95 -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 +145 -0
- package/scripts/theme/rebuild-themes.sh +309 -0
- package/scripts/theme/switch.sh +431 -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,51 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
# shellcheck source=../dot/lib/ui.sh
|
|
7
|
+
# shellcheck disable=SC1091
|
|
8
|
+
source "$SCRIPT_DIR/../dot/lib/ui.sh"
|
|
9
|
+
# shellcheck source=../dot/lib/platform.sh
|
|
10
|
+
# shellcheck disable=SC1091
|
|
11
|
+
source "$SCRIPT_DIR/../dot/lib/platform.sh"
|
|
12
|
+
|
|
13
|
+
DRY_RUN=0
|
|
14
|
+
for arg in "$@"; do
|
|
15
|
+
case "$arg" in --dry-run | -n) DRY_RUN=1 ;; esac
|
|
16
|
+
done
|
|
17
|
+
_run_cmd() {
|
|
18
|
+
if [[ "$DRY_RUN" -eq 1 ]]; then ui_info "[dry-run]" "$*"; else "$@"; fi
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
ui_init
|
|
22
|
+
ui_header "USB Safety"
|
|
23
|
+
|
|
24
|
+
if [[ "$DRY_RUN" -eq 1 ]]; then
|
|
25
|
+
ui_info "Mode" "dry-run (no changes will be made)"
|
|
26
|
+
elif [ "${DOTFILES_USB_SAFETY:-}" != "1" ]; then
|
|
27
|
+
ui_warn "USB safety" "disabled by default"
|
|
28
|
+
ui_info "Re-run" "DOTFILES_USB_SAFETY=1"
|
|
29
|
+
exit 1
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
case "$(dot_platform_id)" in
|
|
33
|
+
linux | wsl)
|
|
34
|
+
if command -v gsettings >/dev/null; then
|
|
35
|
+
ui_info "Disabling" "GNOME automount for removable media"
|
|
36
|
+
_run_cmd gsettings set org.gnome.desktop.media-handling automount false || true
|
|
37
|
+
_run_cmd gsettings set org.gnome.desktop.media-handling automount-open false || true
|
|
38
|
+
else
|
|
39
|
+
ui_err "gsettings" "not found"
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
;;
|
|
43
|
+
macos)
|
|
44
|
+
ui_info "macOS" "no CLI toggle for USB automount"
|
|
45
|
+
ui_info "Use" "System Settings > General > Login Items > External disks"
|
|
46
|
+
;;
|
|
47
|
+
*)
|
|
48
|
+
ui_err "Unsupported OS" "USB safety"
|
|
49
|
+
exit 1
|
|
50
|
+
;;
|
|
51
|
+
esac
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
3
|
+
## Apply GNOME Theme — Apply Catppuccin themes to GNOME desktop.
|
|
4
|
+
##
|
|
5
|
+
## Configures GTK theme, icon theme, cursor theme, shell theme,
|
|
6
|
+
## fonts, and wallpaper using gsettings.
|
|
7
|
+
##
|
|
8
|
+
## # Requirements
|
|
9
|
+
## - gsettings: GNOME settings tool
|
|
10
|
+
## - gnome-extensions (optional): For shell themes
|
|
11
|
+
## - User Themes extension (optional): For custom shell themes
|
|
12
|
+
##
|
|
13
|
+
## # Usage
|
|
14
|
+
## apply-gnome-theme.sh catppuccin-mocha # Apply dark theme
|
|
15
|
+
## apply-gnome-theme.sh catppuccin-latte # Apply light theme
|
|
16
|
+
## apply-gnome-theme.sh current # Show current theme
|
|
17
|
+
## apply-gnome-theme.sh backup # Backup current settings
|
|
18
|
+
##
|
|
19
|
+
## # Platform Notes
|
|
20
|
+
## - GNOME 42+: Full color-scheme support
|
|
21
|
+
## - Older GNOME: Color scheme setting skipped
|
|
22
|
+
|
|
23
|
+
set -euo pipefail
|
|
24
|
+
|
|
25
|
+
THEME_NAME="${1:-}"
|
|
26
|
+
|
|
27
|
+
if [ -z "$THEME_NAME" ]; then
|
|
28
|
+
echo "Usage: $0 <theme-name>"
|
|
29
|
+
echo "Available themes: catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha"
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
# Colors for output (respect NO_COLOR: https://no-color.org)
|
|
34
|
+
if [[ -z "${NO_COLOR:-}" ]] && [[ -t 1 ]]; then
|
|
35
|
+
RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m'
|
|
36
|
+
BLUE='\033[0;34m' NC='\033[0m'
|
|
37
|
+
else
|
|
38
|
+
RED='' GREEN='' YELLOW='' BLUE='' NC=''
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
log() {
|
|
42
|
+
printf '%b\n' "${BLUE}[GNOME]${NC} $1"
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
warn() {
|
|
46
|
+
printf '%b\n' "${YELLOW}[WARN]${NC} $1"
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
error() {
|
|
50
|
+
printf '%b\n' "${RED}[ERROR]${NC} $1"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
success() {
|
|
54
|
+
printf '%b\n' "${GREEN}[SUCCESS]${NC} $1"
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
# Check if we're running GNOME
|
|
58
|
+
if [ "$XDG_CURRENT_DESKTOP" != "GNOME" ] && [ "$XDG_SESSION_DESKTOP" != "gnome" ]; then
|
|
59
|
+
warn "Not running GNOME desktop. Some settings may not apply."
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
# Function to check if gsettings is available
|
|
63
|
+
check_gsettings() {
|
|
64
|
+
if ! command -v gsettings &>/dev/null; then
|
|
65
|
+
error "gsettings command not found. Please install GLib development tools."
|
|
66
|
+
exit 1
|
|
67
|
+
fi
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
# Function to apply Catppuccin theme settings
|
|
71
|
+
apply_catppuccin_theme() {
|
|
72
|
+
local theme="$1"
|
|
73
|
+
local gtk_theme=""
|
|
74
|
+
local shell_theme=""
|
|
75
|
+
local icon_theme=""
|
|
76
|
+
local cursor_theme="Adwaita"
|
|
77
|
+
local color_scheme="prefer-light"
|
|
78
|
+
|
|
79
|
+
case "$theme" in
|
|
80
|
+
catppuccin-latte)
|
|
81
|
+
gtk_theme="Catppuccin-Latte-Standard-Blue-Light"
|
|
82
|
+
shell_theme="Catppuccin-Latte"
|
|
83
|
+
icon_theme="Papirus-Light"
|
|
84
|
+
cursor_theme="Catppuccin-Latte-Blue"
|
|
85
|
+
color_scheme="prefer-light"
|
|
86
|
+
;;
|
|
87
|
+
catppuccin-frappe)
|
|
88
|
+
gtk_theme="Catppuccin-Frappe-Standard-Blue-Dark"
|
|
89
|
+
shell_theme="Catppuccin-Frappe"
|
|
90
|
+
icon_theme="Papirus-Dark"
|
|
91
|
+
cursor_theme="Catppuccin-Frappe-Blue"
|
|
92
|
+
color_scheme="prefer-dark"
|
|
93
|
+
;;
|
|
94
|
+
catppuccin-macchiato)
|
|
95
|
+
gtk_theme="Catppuccin-Macchiato-Standard-Blue-Dark"
|
|
96
|
+
shell_theme="Catppuccin-Macchiato"
|
|
97
|
+
icon_theme="Papirus-Dark"
|
|
98
|
+
cursor_theme="Catppuccin-Macchiato-Blue"
|
|
99
|
+
color_scheme="prefer-dark"
|
|
100
|
+
;;
|
|
101
|
+
catppuccin-mocha)
|
|
102
|
+
gtk_theme="Catppuccin-Mocha-Standard-Blue-Dark"
|
|
103
|
+
shell_theme="Catppuccin-Mocha"
|
|
104
|
+
icon_theme="Papirus-Dark"
|
|
105
|
+
cursor_theme="Catppuccin-Mocha-Blue"
|
|
106
|
+
color_scheme="prefer-dark"
|
|
107
|
+
;;
|
|
108
|
+
*)
|
|
109
|
+
# Non-Catppuccin themes - use fallback
|
|
110
|
+
if [[ "$theme" == *"-dark"* ]] || [[ "$theme" == *"-night"* ]] || [[ "$theme" == *"-storm"* ]] || [[ "$theme" == *"-moon"* ]] || [[ "$theme" == *"-mocha"* ]]; then
|
|
111
|
+
gtk_theme="Adwaita-dark"
|
|
112
|
+
shell_theme=""
|
|
113
|
+
icon_theme="Papirus-Dark"
|
|
114
|
+
color_scheme="prefer-dark"
|
|
115
|
+
else
|
|
116
|
+
gtk_theme="Adwaita"
|
|
117
|
+
shell_theme=""
|
|
118
|
+
icon_theme="Papirus"
|
|
119
|
+
color_scheme="prefer-light"
|
|
120
|
+
fi
|
|
121
|
+
;;
|
|
122
|
+
esac
|
|
123
|
+
|
|
124
|
+
log "Applying GNOME theme: $theme"
|
|
125
|
+
|
|
126
|
+
# Apply GTK theme
|
|
127
|
+
log "Setting GTK theme to: $gtk_theme"
|
|
128
|
+
gsettings set org.gnome.desktop.interface gtk-theme "$gtk_theme"
|
|
129
|
+
|
|
130
|
+
# Apply icon theme
|
|
131
|
+
log "Setting icon theme to: $icon_theme"
|
|
132
|
+
gsettings set org.gnome.desktop.interface icon-theme "$icon_theme"
|
|
133
|
+
|
|
134
|
+
# Apply cursor theme
|
|
135
|
+
log "Setting cursor theme to: $cursor_theme"
|
|
136
|
+
gsettings set org.gnome.desktop.interface cursor-theme "$cursor_theme"
|
|
137
|
+
|
|
138
|
+
# Apply color scheme (GNOME 42+)
|
|
139
|
+
if gsettings list-keys org.gnome.desktop.interface | grep -q "color-scheme"; then
|
|
140
|
+
log "Setting color scheme to: $color_scheme"
|
|
141
|
+
gsettings set org.gnome.desktop.interface color-scheme "$color_scheme"
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
# Apply window manager theme
|
|
145
|
+
log "Setting window manager theme"
|
|
146
|
+
gsettings set org.gnome.desktop.wm.preferences theme "$gtk_theme"
|
|
147
|
+
|
|
148
|
+
# Apply shell theme (requires User Themes extension)
|
|
149
|
+
if [ -n "$shell_theme" ]; then
|
|
150
|
+
# Check if user-theme extension is enabled
|
|
151
|
+
if command -v gnome-extensions &>/dev/null; then
|
|
152
|
+
if gnome-extensions list --enabled | grep -q "user-theme"; then
|
|
153
|
+
log "Setting GNOME Shell theme to: $shell_theme"
|
|
154
|
+
gsettings set org.gnome.shell.extensions.user-theme name "$shell_theme"
|
|
155
|
+
else
|
|
156
|
+
warn "User Themes extension is not enabled. Shell theme not applied."
|
|
157
|
+
warn "Enable it with: gnome-extensions enable user-theme@gnome-shell-extensions.gcampax.github.com"
|
|
158
|
+
fi
|
|
159
|
+
else
|
|
160
|
+
# Fallback: try to set it anyway
|
|
161
|
+
log "Setting GNOME Shell theme to: $shell_theme"
|
|
162
|
+
gsettings set org.gnome.shell.extensions.user-theme name "$shell_theme" 2>/dev/null ||
|
|
163
|
+
warn "Could not set shell theme. User Themes extension may not be installed."
|
|
164
|
+
fi
|
|
165
|
+
fi
|
|
166
|
+
|
|
167
|
+
# Apply font settings
|
|
168
|
+
log "Setting font preferences"
|
|
169
|
+
gsettings set org.gnome.desktop.interface font-name 'Inter 10'
|
|
170
|
+
gsettings set org.gnome.desktop.interface document-font-name 'Inter 10'
|
|
171
|
+
gsettings set org.gnome.desktop.interface monospace-font-name 'JetBrains Mono 10'
|
|
172
|
+
gsettings set org.gnome.desktop.wm.preferences titlebar-font 'Inter Bold 10'
|
|
173
|
+
|
|
174
|
+
# Apply cursor size
|
|
175
|
+
gsettings set org.gnome.desktop.interface cursor-size 24
|
|
176
|
+
|
|
177
|
+
# Apply other interface settings
|
|
178
|
+
gsettings set org.gnome.desktop.interface enable-animations true
|
|
179
|
+
gsettings set org.gnome.desktop.interface enable-hot-corners true
|
|
180
|
+
gsettings set org.gnome.desktop.interface text-scaling-factor 1.0
|
|
181
|
+
|
|
182
|
+
# Apply window manager preferences
|
|
183
|
+
gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'
|
|
184
|
+
gsettings set org.gnome.mutter dynamic-workspaces true
|
|
185
|
+
gsettings set org.gnome.mutter edge-tiling true
|
|
186
|
+
|
|
187
|
+
# Apply wallpaper if available
|
|
188
|
+
apply_wallpaper "$theme"
|
|
189
|
+
|
|
190
|
+
success "GNOME theme '$theme' applied successfully!"
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
# Function to apply wallpaper
|
|
194
|
+
apply_wallpaper() {
|
|
195
|
+
local theme="$1"
|
|
196
|
+
local wallpaper_dir="${DOTFILES_WALLPAPER_DIR:-$HOME/Pictures/Wallpapers}"
|
|
197
|
+
local mode="light"
|
|
198
|
+
|
|
199
|
+
# Determine light/dark from theme name
|
|
200
|
+
case "$theme" in
|
|
201
|
+
*-latte) mode="light" ;;
|
|
202
|
+
*-frappe | *-macchiato | *-mocha) mode="dark" ;;
|
|
203
|
+
*-light*) mode="light" ;;
|
|
204
|
+
*-dark* | *-night* | *-storm* | *-moon*) mode="dark" ;;
|
|
205
|
+
esac
|
|
206
|
+
|
|
207
|
+
# Pick a random wallpaper matching the mode from curated collection
|
|
208
|
+
local wp=""
|
|
209
|
+
if [ -d "$wallpaper_dir" ]; then
|
|
210
|
+
wp="$(find "$wallpaper_dir" -maxdepth 1 -type f -iname "*-${mode}.jpg" 2>/dev/null | shuf -n 1 || true)"
|
|
211
|
+
fi
|
|
212
|
+
|
|
213
|
+
# Fallback: check Catppuccin system/user wallpapers
|
|
214
|
+
if [ -z "$wp" ]; then
|
|
215
|
+
local cat_flavor=""
|
|
216
|
+
case "$theme" in
|
|
217
|
+
catppuccin-latte) cat_flavor="latte" ;;
|
|
218
|
+
catppuccin-frappe) cat_flavor="frappe" ;;
|
|
219
|
+
catppuccin-macchiato) cat_flavor="macchiato" ;;
|
|
220
|
+
catppuccin-mocha) cat_flavor="mocha" ;;
|
|
221
|
+
esac
|
|
222
|
+
if [ -n "$cat_flavor" ]; then
|
|
223
|
+
for dir in /usr/share/backgrounds/catppuccin "$HOME/.local/share/backgrounds/catppuccin"; do
|
|
224
|
+
if [ -f "$dir/cat_${cat_flavor}.png" ]; then
|
|
225
|
+
wp="$dir/cat_${cat_flavor}.png"
|
|
226
|
+
break
|
|
227
|
+
fi
|
|
228
|
+
done
|
|
229
|
+
fi
|
|
230
|
+
fi
|
|
231
|
+
|
|
232
|
+
if [ -z "$wp" ]; then
|
|
233
|
+
warn "No ${mode} wallpapers found in $wallpaper_dir"
|
|
234
|
+
return
|
|
235
|
+
fi
|
|
236
|
+
|
|
237
|
+
log "Setting wallpaper: $wp"
|
|
238
|
+
|
|
239
|
+
# Set both light and dark URIs if we have a pair
|
|
240
|
+
local base="${wp%-${mode}.jpg}"
|
|
241
|
+
local light_wp="${base}-light.jpg"
|
|
242
|
+
local dark_wp="${base}-dark.jpg"
|
|
243
|
+
|
|
244
|
+
if [ -f "$light_wp" ] && [ -f "$dark_wp" ]; then
|
|
245
|
+
gsettings set org.gnome.desktop.background picture-uri "file://${light_wp}"
|
|
246
|
+
gsettings set org.gnome.desktop.background picture-uri-dark "file://${dark_wp}"
|
|
247
|
+
gsettings set org.gnome.desktop.screensaver picture-uri "file://${light_wp}"
|
|
248
|
+
else
|
|
249
|
+
gsettings set org.gnome.desktop.background picture-uri "file://$wp"
|
|
250
|
+
gsettings set org.gnome.desktop.background picture-uri-dark "file://$wp"
|
|
251
|
+
gsettings set org.gnome.desktop.screensaver picture-uri "file://$wp"
|
|
252
|
+
fi
|
|
253
|
+
gsettings set org.gnome.desktop.background picture-options "zoom"
|
|
254
|
+
|
|
255
|
+
success "Wallpaper set (${mode}): $(basename "$wp")"
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
# Function to backup current settings
|
|
259
|
+
backup_settings() {
|
|
260
|
+
local backup_file
|
|
261
|
+
backup_file="$HOME/.config/gnome-theme-backup-$(date +%Y%m%d-%H%M%S).dconf"
|
|
262
|
+
|
|
263
|
+
log "Backing up current GNOME settings to: $backup_file"
|
|
264
|
+
|
|
265
|
+
dconf dump /org/gnome/desktop/interface/ >"$backup_file.interface" 2>/dev/null || true
|
|
266
|
+
dconf dump /org/gnome/desktop/wm/preferences/ >"$backup_file.wm" 2>/dev/null || true
|
|
267
|
+
dconf dump /org/gnome/shell/extensions/user-theme/ >"$backup_file.shell" 2>/dev/null || true
|
|
268
|
+
|
|
269
|
+
if [ -f "$backup_file.interface" ]; then
|
|
270
|
+
success "Settings backed up successfully"
|
|
271
|
+
else
|
|
272
|
+
warn "Could not create backup. Continuing without backup."
|
|
273
|
+
fi
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
# Function to show current theme
|
|
277
|
+
show_current_theme() {
|
|
278
|
+
echo "Current GNOME theme settings:"
|
|
279
|
+
echo " GTK Theme: $(gsettings get org.gnome.desktop.interface gtk-theme)"
|
|
280
|
+
echo " Icon Theme: $(gsettings get org.gnome.desktop.interface icon-theme)"
|
|
281
|
+
echo " Cursor Theme: $(gsettings get org.gnome.desktop.interface cursor-theme)"
|
|
282
|
+
echo " Shell Theme: $(gsettings get org.gnome.shell.extensions.user-theme name 2>/dev/null || echo "'Not set or extension not available'")"
|
|
283
|
+
if gsettings list-keys org.gnome.desktop.interface | grep -q "color-scheme"; then
|
|
284
|
+
echo " Color Scheme: $(gsettings get org.gnome.desktop.interface color-scheme)"
|
|
285
|
+
fi
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
# Main execution
|
|
289
|
+
main() {
|
|
290
|
+
check_gsettings
|
|
291
|
+
|
|
292
|
+
case "$THEME_NAME" in
|
|
293
|
+
current)
|
|
294
|
+
show_current_theme
|
|
295
|
+
;;
|
|
296
|
+
backup)
|
|
297
|
+
backup_settings
|
|
298
|
+
;;
|
|
299
|
+
*)
|
|
300
|
+
# Check if theme files exist
|
|
301
|
+
theme_exists=false
|
|
302
|
+
|
|
303
|
+
case "$THEME_NAME" in
|
|
304
|
+
catppuccin-*)
|
|
305
|
+
for _d in "$HOME/.themes/Catppuccin-"*; do
|
|
306
|
+
if [ -d "$_d" ]; then
|
|
307
|
+
theme_exists=true
|
|
308
|
+
break
|
|
309
|
+
fi
|
|
310
|
+
done
|
|
311
|
+
;;
|
|
312
|
+
*)
|
|
313
|
+
theme_exists=true # Assume Adwaita and other system themes exist
|
|
314
|
+
;;
|
|
315
|
+
esac
|
|
316
|
+
|
|
317
|
+
if [ "$theme_exists" = "false" ]; then
|
|
318
|
+
warn "Catppuccin themes not found. Installing them first..."
|
|
319
|
+
"$HOME/.dotfiles/scripts/theme/install-catppuccin-themes.sh"
|
|
320
|
+
fi
|
|
321
|
+
|
|
322
|
+
backup_settings
|
|
323
|
+
apply_catppuccin_theme "$THEME_NAME"
|
|
324
|
+
;;
|
|
325
|
+
esac
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
main
|