@sebastienrousseau/dotfiles 0.2.468 → 0.2.481
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 +285 -0
- package/README.md +236 -319
- package/docs/ALIASES.md +128 -0
- package/docs/ARCHITECTURE.md +229 -0
- package/docs/COMPLIANCE.md +47 -0
- package/docs/COPYRIGHT +7 -0
- package/docs/FEATURES.md +166 -0
- package/docs/FONTS.md +147 -0
- package/docs/INSTALL.md +119 -0
- package/docs/KEYS.md +40 -0
- package/docs/KEY_ROTATION.md +219 -0
- package/docs/LEGACY_ROADMAP.md +142 -0
- package/docs/NEOVIM_IDE_GUIDE.md +52 -0
- package/docs/OPERATIONS.md +130 -0
- package/docs/PLAN.md +161 -0
- package/docs/PR_DESCRIPTION.md +149 -0
- package/docs/README.md +269 -0
- package/docs/REPO_AUDIT.md +23 -0
- package/docs/ROADMAP.md +148 -0
- package/docs/SCREENSHOTS.md +116 -0
- package/docs/SECRETS.md +76 -0
- package/docs/SECURITY.md +30 -0
- package/docs/SECURITY_CHECKLIST.md +25 -0
- package/docs/TASK.md +99 -0
- package/docs/TESTING.md +190 -0
- package/docs/TOOLS.md +146 -0
- package/docs/TROUBLESHOOTING.md +112 -0
- package/docs/UTILS.md +105 -0
- package/docs/WALKTHROUGH.md +165 -0
- package/docs/WSL2_NIX_TROUBLESHOOTING.md +723 -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/README.md +33 -0
- package/docs/themes/README.md +20 -0
- package/dot_config/aider/aider.conf.yml +32 -0
- package/dot_config/alacritty/alacritty.toml.tmpl +483 -0
- package/dot_config/ansible/ansible.cfg.tmpl +11 -0
- package/dot_config/atuin/config.toml +23 -0
- package/dot_config/bat/config +8 -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 +49 -0
- package/dot_config/clippy.toml +55 -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.tmpl +15 -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/versions.env.tmpl +19 -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/fastfetch/config.jsonc +28 -0
- package/dot_config/firefox/user.js +8 -0
- package/dot_config/flatpak/flatpak.list +4 -0
- package/dot_config/fontconfig/fonts.conf.tmpl +44 -0
- package/dot_config/gh/config.yml +12 -0
- package/dot_config/ghostty/config.tmpl +661 -0
- package/dot_config/git/attributes +12 -0
- package/dot_config/git/config.tmpl +77 -0
- package/dot_config/git/ignore +27 -0
- package/dot_config/gnupg/gpg-agent.conf.tmpl +11 -0
- package/dot_config/go/aliases.sh +61 -0
- package/dot_config/go/env.sh +24 -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 +305 -0
- package/dot_config/gtk-3.0/settings.ini.tmpl +66 -0
- package/dot_config/gtk-4.0/gtk.css.tmpl +309 -0
- package/dot_config/gtk-4.0/settings.ini.tmpl +21 -0
- package/dot_config/htop/htoprc +20 -0
- package/dot_config/ice/README.md +13 -0
- package/dot_config/inputrc +2 -0
- package/dot_config/ipython/profile_default/ipython_config.py.tmpl +5 -0
- package/dot_config/just/justfile +104 -0
- package/dot_config/k9s/config.yaml.tmpl +65 -0
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
- package/dot_config/karabiner/karabiner.json +14 -0
- package/dot_config/kitty/kitty.conf.tmpl +517 -0
- package/dot_config/lazydocker/config.yml +186 -0
- package/dot_config/lazygit/config.yml +23 -0
- package/dot_config/lsd/config.yaml +19 -0
- package/dot_config/mas/masapps.txt +5 -0
- package/dot_config/minikube/config.json +13 -0
- package/dot_config/mise/config.toml +41 -0
- package/dot_config/mongosh/mongoshrc.js +67 -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/nvim/init.lua +4 -0
- package/dot_config/nvim/lazy-lock.json +27 -0
- package/dot_config/nvim/lua/config/autocmds.lua +63 -0
- package/dot_config/nvim/lua/config/keymaps.lua +87 -0
- package/dot_config/nvim/lua/config/lazy.lua +34 -0
- package/dot_config/nvim/lua/config/options.lua +48 -0
- package/dot_config/nvim/lua/plugins/coding.lua +234 -0
- package/dot_config/nvim/lua/plugins/dap.lua +201 -0
- package/dot_config/nvim/lua/plugins/editor.lua +59 -0
- package/dot_config/nvim/lua/plugins/git.lua +9 -0
- package/dot_config/nvim/lua/plugins/lsp.lua +221 -0
- package/dot_config/nvim/lua/plugins/markdown.lua +17 -0
- package/dot_config/nvim/lua/plugins/rust.lua +33 -0
- package/dot_config/nvim/lua/plugins/sessions.lua +32 -0
- package/dot_config/nvim/lua/plugins/ui.lua +537 -0
- package/dot_config/nvim/snippets/all.lua +9 -0
- package/dot_config/nvim/snippets/python.lua +16 -0
- package/dot_config/pip/pip.conf.tmpl +32 -0
- package/dot_config/pypoetry/config.toml.tmpl +6 -0
- package/dot_config/pyrightconfig.json.tmpl +5 -0
- package/dot_config/raycast/README.md +13 -0
- package/dot_config/redis/redisclirc +41 -0
- package/dot_config/shell/00-container-detect.sh +53 -0
- package/dot_config/shell/00-core-paths.sh.tmpl +95 -0
- package/dot_config/shell/05-core-safety.sh.tmpl +13 -0
- package/dot_config/shell/40-ls-colors.sh.tmpl +31 -0
- package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
- package/dot_config/shell/90-theme-switch.sh +70 -0
- package/dot_config/shell/90-ux-aliases.sh.tmpl +35 -0
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +23 -0
- package/dot_config/shell/Brewfile +207 -0
- package/dot_config/shell/Brewfile.cask +92 -0
- package/dot_config/shell/Brewfile.cli +119 -0
- package/dot_config/shell/README.md +267 -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 +124 -0
- package/dot_config/task/Taskfile.yml +86 -0
- package/dot_config/tflint/tflint.hcl.tmpl +9 -0
- package/dot_config/tmux/tmux.conf.tmpl +181 -0
- package/dot_config/topgrade/topgrade.toml.tmpl +42 -0
- package/dot_config/vscode/extensions.txt +11 -0
- package/dot_config/vscode/settings.json.tmpl +123 -0
- package/dot_config/waybar/style.css +8 -0
- package/dot_config/wezterm/wezterm.lua.tmpl +236 -0
- package/dot_config/wget/wgetrc +12 -0
- package/dot_config/yarn/yarnrc.yml.tmpl +36 -0
- package/dot_config/yazi/yazi.toml +40 -0
- package/dot_config/zellij/config.kdl +79 -0
- package/dot_config/zsh/dot_zprofile +13 -0
- package/dot_config/zsh/dot_zshenv +6 -0
- package/dot_config/zsh/dot_zshrc.tmpl +199 -0
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +5 -0
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
- package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +22 -0
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +123 -0
- package/dot_config/zsh/rc.d/40-bell.zsh.tmpl +20 -0
- package/dot_config/zsh/rc.d/50-login-fortune.zsh.tmpl +9 -0
- package/dot_local/bin/executable_ai_core +130 -0
- package/dot_local/bin/executable_b64 +59 -0
- package/dot_local/bin/executable_dot +178 -0
- package/dot_local/bin/executable_dot_completion +55 -0
- package/dot_local/bin/executable_epoch +62 -0
- package/dot_local/bin/executable_extract +108 -0
- package/dot_local/bin/executable_git-ai-commit +160 -0
- package/dot_local/bin/executable_git-ai-diff +154 -0
- package/dot_local/bin/executable_hash +123 -0
- package/dot_local/bin/executable_hex +79 -0
- package/dot_local/bin/executable_ip +37 -0
- package/dot_local/bin/executable_jsonv +54 -0
- package/dot_local/bin/executable_jwt +78 -0
- package/dot_local/bin/executable_kill-port +59 -0
- package/dot_local/bin/executable_lorem +103 -0
- package/dot_local/bin/executable_regex +96 -0
- package/dot_local/bin/executable_tmux-sessionizer +187 -0
- package/dot_local/bin/executable_tour +137 -0
- package/dot_local/bin/executable_update +108 -0
- package/dot_local/bin/executable_uuid +57 -0
- package/dot_local/bin/executable_yamlv +39 -0
- package/dot_local/bin/executable_zig-install +89 -0
- package/dot_local/bin/voice_ops +7 -0
- package/dot_local/share/bash-completion/completions/dot +54 -0
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/install.sh +255 -0
- package/package.json +52 -76
- package/scripts/ci/validate-ci-config.sh +222 -0
- package/scripts/demo/record.sh +41 -0
- package/scripts/diagnostics/benchmark.sh +201 -0
- package/scripts/diagnostics/doctor.sh +115 -0
- package/scripts/diagnostics/drift-dashboard.sh +26 -0
- package/scripts/diagnostics/health.sh +356 -0
- package/scripts/diagnostics/history-analysis.sh +77 -0
- package/scripts/diagnostics/security-score.sh +392 -0
- package/scripts/diagnostics/verify_state.sh +60 -0
- package/scripts/dot/commands/appearance.sh +63 -0
- package/scripts/dot/commands/core.sh +130 -0
- package/scripts/dot/commands/diagnostics.sh +100 -0
- package/scripts/dot/commands/meta.sh +117 -0
- package/scripts/dot/commands/restore.sh +209 -0
- package/scripts/dot/commands/secrets.sh +81 -0
- package/scripts/dot/commands/security.sh +73 -0
- package/scripts/dot/commands/tools.sh +228 -0
- package/scripts/dot/lib/utils.sh +72 -0
- package/scripts/fonts/install-nerd-fonts.sh +59 -0
- package/scripts/fonts/patch-fonts.sh +34 -0
- package/scripts/ops/chezmoi-apply.sh +42 -0
- package/scripts/ops/chezmoi-diff.sh +14 -0
- package/scripts/ops/chezmoi-remove.sh +43 -0
- package/scripts/ops/chezmoi-update.sh +16 -0
- package/scripts/ops/heal.sh +466 -0
- package/scripts/ops/health-check.sh +380 -0
- package/scripts/ops/rollback.sh +531 -0
- package/scripts/ops/teleport.sh +32 -0
- package/scripts/secrets/age-init.sh +69 -0
- package/scripts/secrets/create-secrets-file.sh +44 -0
- package/scripts/secrets/encrypt-ssh-key.sh +42 -0
- package/scripts/security/backup.sh +17 -0
- package/scripts/security/dns-doh.sh +29 -0
- package/scripts/security/encryption-check.sh +39 -0
- package/scripts/security/enforce-policies.sh +339 -0
- package/scripts/security/firewall.sh +34 -0
- package/scripts/security/lock-configs.sh +57 -0
- package/scripts/security/lock-screen.sh +33 -0
- package/scripts/security/manage-secrets.sh +415 -0
- package/scripts/security/telemetry-kill.sh +28 -0
- package/scripts/security/usb-safety.sh +29 -0
- package/scripts/tests/README.md +241 -0
- package/scripts/tests/benchmark.sh +91 -0
- package/scripts/tests/framework/assertions.sh +283 -0
- package/scripts/tests/framework/mocks.sh +201 -0
- package/scripts/tests/framework/test_runner.sh +189 -0
- package/scripts/tests/integration/test_install.sh +237 -0
- package/scripts/tests/performance/benchmark_runner.sh +156 -0
- package/scripts/tests/performance/regression_check.sh +73 -0
- package/scripts/tests/performance/stress_test.sh +65 -0
- package/scripts/tests/test-aliases.sh +25 -0
- package/scripts/tests/test-docker.sh +48 -0
- package/scripts/tests/unit/test_ai_aliases.sh +158 -0
- package/scripts/tests/unit/test_ai_cli_checks.sh +47 -0
- package/scripts/tests/unit/test_backup.sh +227 -0
- package/scripts/tests/unit/test_case_functions.sh +238 -0
- package/scripts/tests/unit/test_cd_aliases.sh +367 -0
- package/scripts/tests/unit/test_dot_cli.sh +217 -0
- package/scripts/tests/unit/test_encode64.sh +67 -0
- package/scripts/tests/unit/test_environment.sh +78 -0
- package/scripts/tests/unit/test_extract.sh +163 -0
- package/scripts/tests/unit/test_framework_edge_cases.sh +113 -0
- package/scripts/tests/unit/test_genpass.sh +298 -0
- package/scripts/tests/unit/test_install_edge_cases.sh +167 -0
- package/scripts/tests/unit/test_installers.sh +172 -0
- package/scripts/tests/unit/test_keygen.sh +68 -0
- package/scripts/tests/unit/test_logging.sh +96 -0
- package/scripts/tests/unit/test_os_detection_comprehensive.sh +388 -0
- package/scripts/tests/unit/test_package_managers_comprehensive.sh +321 -0
- package/scripts/tests/unit/test_prependpath.sh +66 -0
- package/scripts/tests/unit/test_prependpath_refactored.sh +89 -0
- package/scripts/tests/unit/test_rd.sh +230 -0
- package/scripts/tests/unit/test_security_fixes.sh +130 -0
- package/scripts/tests/unit/test_security_scripts.sh +87 -0
- package/scripts/tests/unit/test_template_validation.sh +238 -0
- package/scripts/tests/unit/test_utility_functions.sh +144 -0
- package/scripts/tests/unit/test_wave1_alias_split.sh +132 -0
- package/scripts/tests/unit/test_wave1_ci_pinning.sh +61 -0
- package/scripts/tests/unit/test_wave1_gitleaks_config.sh +52 -0
- package/scripts/tests/unit/test_wave1_heal_fixes.sh +97 -0
- package/scripts/tests/unit/test_wave1_install_gpg.sh +35 -0
- package/scripts/tests/unit/test_wave1_zshenv_path.sh +89 -0
- package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +115 -0
- package/scripts/tests/unit/test_wave2_dot_new_guard.sh +75 -0
- package/scripts/tests/unit/test_zipf.sh +76 -0
- package/scripts/theme/apply-gnome-theme.sh +297 -0
- package/scripts/theme/install-boot-logo.sh +61 -0
- package/scripts/theme/install-catppuccin-themes.sh +346 -0
- package/scripts/theme/install-cursors.sh +24 -0
- package/scripts/theme/install-file-icons.sh +25 -0
- package/scripts/theme/install-grub-theme.sh +51 -0
- package/scripts/theme/install-lock-icon.sh +29 -0
- package/scripts/theme/switch.sh +250 -0
- package/scripts/theme/wallpaper-rotate.sh +82 -0
- package/scripts/theme/wallpaper-sync.sh +42 -0
- package/scripts/tools/cmatrix.sh +20 -0
- package/scripts/tools/detect-collisions.py +84 -0
- package/scripts/tools/emoji-picker.sh +45 -0
- package/scripts/tools/figlet-banner.sh +17 -0
- package/scripts/tools/log-rotate.sh +29 -0
- package/scripts/tools/lolcat-wrap.sh +18 -0
- package/scripts/tools/pipes.sh +47 -0
- package/scripts/tuning/linux.sh +175 -0
- package/scripts/tuning/macos.sh +46 -0
- package/templates/projects/go/README.md +7 -0
- package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +7 -0
- package/templates/projects/go/go.mod +3 -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/README.md +7 -0
- package/templates/projects/node/package.json +10 -0
- package/templates/projects/node/src/index.js +2 -0
- package/templates/projects/packer/README.md +15 -0
- package/templates/projects/packer/main.pkr.hcl +15 -0
- package/templates/projects/python/README.md +7 -0
- package/templates/projects/python/pyproject.toml +25 -0
- package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
- package/templates/projects/python/tests/test_basic.py +2 -0
- package/dist/Makefile +0 -57
- package/dist/bin/backup.d.ts +0 -3
- package/dist/bin/backup.d.ts.map +0 -1
- package/dist/bin/backup.js +0 -4
- package/dist/bin/backup.js.map +0 -1
- package/dist/bin/constants.d.ts +0 -7
- package/dist/bin/constants.d.ts.map +0 -1
- package/dist/bin/constants.js +0 -2
- package/dist/bin/constants.js.map +0 -1
- package/dist/bin/copy.d.ts +0 -3
- package/dist/bin/copy.d.ts.map +0 -1
- package/dist/bin/copy.js +0 -3
- package/dist/bin/copy.js.map +0 -1
- package/dist/bin/dotfiles.d.ts +0 -3
- package/dist/bin/dotfiles.d.ts.map +0 -1
- package/dist/bin/dotfiles.js +0 -2
- package/dist/bin/dotfiles.js.map +0 -1
- package/dist/bin/download.d.ts +0 -3
- package/dist/bin/download.d.ts.map +0 -1
- package/dist/bin/download.js +0 -2
- package/dist/bin/download.js.map +0 -1
- package/dist/bin/index.d.ts +0 -2
- package/dist/bin/index.d.ts.map +0 -1
- package/dist/bin/index.js +0 -1
- package/dist/bin/index.js.map +0 -1
- package/dist/bin/transfer.d.ts +0 -3
- package/dist/bin/transfer.d.ts.map +0 -1
- package/dist/bin/transfer.js +0 -4
- package/dist/bin/transfer.js.map +0 -1
- package/dist/bin/unpack.d.ts +0 -3
- package/dist/bin/unpack.d.ts.map +0 -1
- package/dist/bin/unpack.js +0 -3
- package/dist/bin/unpack.js.map +0 -1
- package/dist/filesizes.txt +0 -380
- package/dist/lib/README.md +0 -12
- package/dist/lib/aliases/README.md +0 -55
- package/dist/lib/aliases/archives/README.md +0 -59
- package/dist/lib/aliases/archives/archives.aliases.sh +0 -157
- package/dist/lib/aliases/cd/README.md +0 -65
- package/dist/lib/aliases/cd/cd.aliases.sh +0 -73
- package/dist/lib/aliases/chmod/README.md +0 -109
- package/dist/lib/aliases/chmod/chmod.aliases.sh +0 -91
- package/dist/lib/aliases/clear/README.md +0 -37
- package/dist/lib/aliases/clear/clear.aliases.sh +0 -71
- package/dist/lib/aliases/configuration/README.md +0 -39
- package/dist/lib/aliases/configuration/configuration.aliases.sh +0 -73
- package/dist/lib/aliases/default/README.md +0 -40
- package/dist/lib/aliases/default/default.aliases.sh +0 -139
- package/dist/lib/aliases/dig/README.md +0 -37
- package/dist/lib/aliases/dig/dig.aliases.sh +0 -43
- package/dist/lib/aliases/disk-usage/README.md +0 -36
- package/dist/lib/aliases/disk-usage/du.aliases.sh +0 -84
- package/dist/lib/aliases/editor/README.md +0 -53
- package/dist/lib/aliases/editor/editor.aliases.sh +0 -26
- package/dist/lib/aliases/find/README.md +0 -46
- package/dist/lib/aliases/find/find.aliases.sh +0 -60
- package/dist/lib/aliases/gcloud/README.md +0 -63
- package/dist/lib/aliases/gcloud/gcloud.aliases.sh +0 -335
- package/dist/lib/aliases/git/README.md +0 -153
- package/dist/lib/aliases/git/git.aliases.sh +0 -544
- package/dist/lib/aliases/gnu/README.md +0 -89
- package/dist/lib/aliases/gnu/gnucoreutils-aliases.sh +0 -150
- package/dist/lib/aliases/heroku/README.md +0 -430
- package/dist/lib/aliases/heroku/heroku.aliases.sh +0 -1053
- package/dist/lib/aliases/interactive/README.md +0 -55
- package/dist/lib/aliases/interactive/interactive.aliases.sh +0 -50
- package/dist/lib/aliases/jekyll/README.md +0 -41
- package/dist/lib/aliases/jekyll/jekyll.aliases.sh +0 -54
- package/dist/lib/aliases/list/README.md +0 -42
- package/dist/lib/aliases/list/list.aliases.sh +0 -86
- package/dist/lib/aliases/macOS/README.md +0 -42
- package/dist/lib/aliases/macOS/macos.aliases.sh +0 -65
- package/dist/lib/aliases/make/README.md +0 -32
- package/dist/lib/aliases/make/make.aliases.sh +0 -35
- package/dist/lib/aliases/mkdir/README.md +0 -30
- package/dist/lib/aliases/mkdir/mkdir.aliases.sh +0 -29
- package/dist/lib/aliases/npm/README.md +0 -41
- package/dist/lib/aliases/npm/npm.aliases.sh +0 -61
- package/dist/lib/aliases/permission/README.md +0 -47
- package/dist/lib/aliases/permission/permission.aliases.sh +0 -73
- package/dist/lib/aliases/pnpm/README.md +0 -53
- package/dist/lib/aliases/pnpm/pnpm.aliases.sh +0 -76
- package/dist/lib/aliases/ps/README.md +0 -29
- package/dist/lib/aliases/ps/ps.aliases.sh +0 -20
- package/dist/lib/aliases/rsync/README.md +0 -25
- package/dist/lib/aliases/rsync/rsync.aliases.sh +0 -17
- package/dist/lib/aliases/rust/README.md +0 -61
- package/dist/lib/aliases/rust/rust.aliases.sh +0 -127
- package/dist/lib/aliases/subversion/README.md +0 -66
- package/dist/lib/aliases/subversion/subversion.aliases.sh +0 -47
- package/dist/lib/aliases/sudo/README.md +0 -27
- package/dist/lib/aliases/sudo/sudo.aliases.sh +0 -20
- package/dist/lib/aliases/tmux/README.md +0 -31
- package/dist/lib/aliases/tmux/tmux.aliases.sh +0 -36
- package/dist/lib/aliases/update/README.md +0 -38
- package/dist/lib/aliases/update/update.aliases.sh +0 -69
- package/dist/lib/aliases/uuid/README.md +0 -24
- package/dist/lib/aliases/uuid/uuid.aliases.sh +0 -19
- package/dist/lib/aliases/wget/README.md +0 -27
- package/dist/lib/aliases/wget/wget.aliases.sh +0 -22
- package/dist/lib/aliases.sh +0 -50
- package/dist/lib/configurations/README.md +0 -18
- package/dist/lib/configurations/bash/bashrc +0 -39
- package/dist/lib/configurations/curl/cacert.pem +0 -3460
- package/dist/lib/configurations/curl/curlrc +0 -56
- package/dist/lib/configurations/default/color.sh +0 -24
- package/dist/lib/configurations/default/constants.sh +0 -43
- package/dist/lib/configurations/default/editor.sh +0 -18
- package/dist/lib/configurations/default/prompt.sh +0 -39
- package/dist/lib/configurations/input/inputrc +0 -23
- package/dist/lib/configurations/jshint/jshintrc +0 -37
- package/dist/lib/configurations/nano/nanorc +0 -35
- package/dist/lib/configurations/profile/profile +0 -37
- package/dist/lib/configurations/tmux/default +0 -18
- package/dist/lib/configurations/tmux/display +0 -30
- package/dist/lib/configurations/tmux/linux +0 -18
- package/dist/lib/configurations/tmux/navigation +0 -30
- package/dist/lib/configurations/tmux/panes +0 -10
- package/dist/lib/configurations/tmux/theme +0 -29
- package/dist/lib/configurations/tmux/tmux +0 -21
- package/dist/lib/configurations/vim/vimrc +0 -73
- package/dist/lib/configurations/wget/wgetrc +0 -40
- package/dist/lib/configurations/zsh/zshrc +0 -51
- package/dist/lib/configurations.sh +0 -33
- package/dist/lib/functions/README.md +0 -78
- package/dist/lib/functions/cdls.sh +0 -14
- package/dist/lib/functions/curlheader.sh +0 -22
- package/dist/lib/functions/curlstatus.sh +0 -17
- package/dist/lib/functions/curltime.sh +0 -33
- package/dist/lib/functions/encode64.sh +0 -27
- package/dist/lib/functions/environment.sh +0 -38
- package/dist/lib/functions/extract.sh +0 -34
- package/dist/lib/functions/filehead.sh +0 -4
- package/dist/lib/functions/freespace.sh +0 -21
- package/dist/lib/functions/genpwd.sh +0 -41
- package/dist/lib/functions/goto.sh +0 -16
- package/dist/lib/functions/hidehiddenfiles.sh +0 -14
- package/dist/lib/functions/hostinfo.sh +0 -27
- package/dist/lib/functions/hstats.sh +0 -11
- package/dist/lib/functions/httpdebug.sh +0 -9
- package/dist/lib/functions/keygen.sh +0 -31
- package/dist/lib/functions/last.sh +0 -11
- package/dist/lib/functions/logout.sh +0 -12
- package/dist/lib/functions/lowercase.sh +0 -29
- package/dist/lib/functions/matrix.sh +0 -41
- package/dist/lib/functions/mount_read_only.sh +0 -11
- package/dist/lib/functions/myproc.sh +0 -9
- package/dist/lib/functions/prependpath.sh +0 -21
- package/dist/lib/functions/ql.sh +0 -9
- package/dist/lib/functions/rd.sh +0 -17
- package/dist/lib/functions/remove_disk.sh +0 -11
- package/dist/lib/functions/ren.sh +0 -13
- package/dist/lib/functions/showhiddenfiles.sh +0 -14
- package/dist/lib/functions/size.sh +0 -15
- package/dist/lib/functions/stopwatch.sh +0 -15
- package/dist/lib/functions/uppercase.sh +0 -29
- package/dist/lib/functions/view-source.sh +0 -9
- package/dist/lib/functions/vscode.sh +0 -32
- package/dist/lib/functions/whoisport.sh +0 -14
- package/dist/lib/functions/zipf.sh +0 -16
- package/dist/lib/functions.sh +0 -32
- package/dist/lib/history.sh +0 -142
- package/dist/lib/paths/ant/ant.paths.sh +0 -15
- package/dist/lib/paths/default/default.paths.sh +0 -19
- package/dist/lib/paths/homebrew/homebrew.paths.sh +0 -27
- package/dist/lib/paths/java/java.paths.sh +0 -19
- package/dist/lib/paths/maven/maven.paths.sh +0 -18
- package/dist/lib/paths/node/node.paths.sh +0 -15
- package/dist/lib/paths/nvm/nvm.paths.sh +0 -23
- package/dist/lib/paths/pnpm/pnpm.paths.sh +0 -15
- package/dist/lib/paths/python/python.paths.sh +0 -36
- package/dist/lib/paths/ruby/ruby.paths.sh +0 -25
- package/dist/lib/paths/tmux/tmux.paths.sh +0 -12
- package/dist/lib/paths.sh +0 -33
- package/dist/scripts/backup.sh +0 -95
- package/dist/scripts/banner.sh +0 -20
- package/dist/scripts/build.sh +0 -41
- package/dist/scripts/clean.sh +0 -31
- package/dist/scripts/compile.sh +0 -54
- package/dist/scripts/copy.sh +0 -108
- package/dist/scripts/dotfiles.sh +0 -63
- package/dist/scripts/download.sh +0 -35
- package/dist/scripts/help.sh +0 -57
- package/dist/scripts/ssh.sh +0 -55
- package/dist/scripts/unpack.sh +0 -28
- /package/{dist/lib/configurations → dot_config}/gem/gemrc +0 -0
package/docs/ALIASES.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Aliases
|
|
2
|
+
|
|
3
|
+
This page lists all shell aliases that the dotfiles provide.
|
|
4
|
+
|
|
5
|
+
## Organization
|
|
6
|
+
|
|
7
|
+
The repo organizes aliases in `~/.dotfiles/.chezmoitemplates/aliases/` by category. Each category has its own directory containing a `<name>.aliases.sh` file.
|
|
8
|
+
|
|
9
|
+
## Categories
|
|
10
|
+
|
|
11
|
+
### Navigation
|
|
12
|
+
|
|
13
|
+
| Alias | Command | Description |
|
|
14
|
+
|-------|---------|-------------|
|
|
15
|
+
| `..` | `cd ..` | Go up one directory |
|
|
16
|
+
| `...` | `cd ../..` | Go up two directories |
|
|
17
|
+
| `....` | `cd ../../..` | Go up three directories |
|
|
18
|
+
| `-` | `cd -` | Go to previous directory |
|
|
19
|
+
|
|
20
|
+
### Git
|
|
21
|
+
|
|
22
|
+
| Alias | Command | Description |
|
|
23
|
+
|-------|---------|-------------|
|
|
24
|
+
| `g` | `git` | Git shorthand |
|
|
25
|
+
| `ga` | `git add` | Stage files |
|
|
26
|
+
| `gaa` | `git add --all` | Stage all files |
|
|
27
|
+
| `gc` | `git commit` | Commit |
|
|
28
|
+
| `gcm` | `git commit -m` | Commit with message |
|
|
29
|
+
| `gco` | `git checkout` | Checkout |
|
|
30
|
+
| `gd` | `git diff` | Show diff |
|
|
31
|
+
| `gf` | `git fetch` | Fetch |
|
|
32
|
+
| `gl` | `git pull` | Pull |
|
|
33
|
+
| `gp` | `git push` | Push |
|
|
34
|
+
| `gst` | `git status` | Status |
|
|
35
|
+
| `lg` | `git log --graph --oneline` | Graph log |
|
|
36
|
+
| `lgui` | `lazygit` | Open lazygit |
|
|
37
|
+
|
|
38
|
+
### Docker
|
|
39
|
+
|
|
40
|
+
| Alias | Command | Description |
|
|
41
|
+
|-------|---------|-------------|
|
|
42
|
+
| `d` | `docker` | Docker shorthand |
|
|
43
|
+
| `dco` | `docker compose` | Docker Compose |
|
|
44
|
+
| `dps` | `docker ps` | List containers |
|
|
45
|
+
| `dpsa` | `docker ps -a` | List all containers |
|
|
46
|
+
| `di` | `docker images` | List images |
|
|
47
|
+
| `dexec` | `docker exec -it` | Execute in container |
|
|
48
|
+
| `denter` | `docker exec -it <container> /bin/bash` | Enter container |
|
|
49
|
+
| `dlogsf` | `docker logs -f` | Follow logs |
|
|
50
|
+
| `dl` | `docker logs` | Show logs |
|
|
51
|
+
| `dprune` | `docker system prune` | Clean up |
|
|
52
|
+
| `dprunea` | `docker system prune -a` | Clean up all |
|
|
53
|
+
| `lzd` | `lazydocker` | Open lazydocker |
|
|
54
|
+
|
|
55
|
+
### Kubernetes
|
|
56
|
+
|
|
57
|
+
| Alias | Command | Description |
|
|
58
|
+
|-------|---------|-------------|
|
|
59
|
+
| `k` | `kubectl` | kubectl shorthand |
|
|
60
|
+
| `kg` | `kubectl get` | Get resources |
|
|
61
|
+
| `kgp` | `kubectl get pods` | Get pods |
|
|
62
|
+
| `kga` | `kubectl get all` | Get all resources |
|
|
63
|
+
| `kd` | `kubectl describe` | Describe resource |
|
|
64
|
+
| `kdel` | `kubectl delete` | Delete resource |
|
|
65
|
+
| `kl` | `kubectl logs` | View logs |
|
|
66
|
+
| `kex` | `kubectl exec -it` | Execute in pod |
|
|
67
|
+
| `kaf` | `kubectl apply -f` | Apply from file |
|
|
68
|
+
| `kctx` | `kubectx` | Switch context |
|
|
69
|
+
| `kn` | `kubens` | Switch namespace |
|
|
70
|
+
| `klog` | `stern` | Multi-pod logs |
|
|
71
|
+
| `klint` | `kube-linter lint` | Lint manifests |
|
|
72
|
+
| `ksec` | `kubesec scan` | Security scan |
|
|
73
|
+
| `mk` | `minikube` | Minikube shorthand |
|
|
74
|
+
| `k9` | `k9s` | Open k9s |
|
|
75
|
+
|
|
76
|
+
### Modern replacements
|
|
77
|
+
|
|
78
|
+
| Alias | Command | Description |
|
|
79
|
+
|-------|---------|-------------|
|
|
80
|
+
| `ls` | `eza` | Modern ls |
|
|
81
|
+
| `ll` | `eza -la` | Long list |
|
|
82
|
+
| `la` | `eza -a` | List all |
|
|
83
|
+
| `lt` | `eza --tree` | Tree view |
|
|
84
|
+
| `cat` | `bat` | Syntax highlighted cat |
|
|
85
|
+
|
|
86
|
+
### File operations
|
|
87
|
+
|
|
88
|
+
| Alias | Command | Description |
|
|
89
|
+
|-------|---------|-------------|
|
|
90
|
+
| `cp` | `cp -iv` | Interactive verbose copy |
|
|
91
|
+
| `mv` | `mv -iv` | Interactive verbose move |
|
|
92
|
+
| `rm` | `rm -iv` | Interactive verbose remove |
|
|
93
|
+
| `mkdir` | `mkdir -pv` | Create dirs with parents |
|
|
94
|
+
|
|
95
|
+
### System
|
|
96
|
+
|
|
97
|
+
| Alias | Command | Description |
|
|
98
|
+
|-------|---------|-------------|
|
|
99
|
+
| `ports` | `netstat -tulanp` | Show open ports |
|
|
100
|
+
| `myip` | `curl ifconfig.me` | Show public IP |
|
|
101
|
+
| `path` | `echo $PATH \| tr ':' '\n'` | Show PATH entries |
|
|
102
|
+
|
|
103
|
+
### Dotfiles
|
|
104
|
+
|
|
105
|
+
| Alias | Command | Description |
|
|
106
|
+
|-------|---------|-------------|
|
|
107
|
+
| `dot` | `~/.local/bin/dot` | Dotfiles CLI |
|
|
108
|
+
| `dotcd` | `cd ~/.dotfiles` | Go to dotfiles |
|
|
109
|
+
| `dotedit` | `$EDITOR ~/.dotfiles` | Edit dotfiles |
|
|
110
|
+
|
|
111
|
+
## Adding custom aliases
|
|
112
|
+
|
|
113
|
+
1. Create a new file in the appropriate category:
|
|
114
|
+
```bash
|
|
115
|
+
vim ~/.dotfiles/.chezmoitemplates/aliases/mycategory/mycategory.aliases.sh
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
2. Define your aliases:
|
|
119
|
+
```bash
|
|
120
|
+
# shellcheck shell=bash
|
|
121
|
+
# My Custom Aliases
|
|
122
|
+
alias myalias='my-command'
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
3. Apply changes:
|
|
126
|
+
```bash
|
|
127
|
+
chezmoi apply
|
|
128
|
+
```
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# How it works
|
|
2
|
+
|
|
3
|
+
v0.2.480 constitutes a portable **shell distribution** that `chezmoi` manages. This document outlines the core architectural decisions and system design.
|
|
4
|
+
|
|
5
|
+
## Core philosophy
|
|
6
|
+
|
|
7
|
+
- **XDG-first**: Configuration strictly maps to `~/.config/` (XDG Base Directory specification). This approach avoids `~/.foo` file sprawl in the home directory.
|
|
8
|
+
- **Single entrypoint**: `dot_zshenv` acts as the bootloader. Zsh loads it immediately and sets up the environment (XDG variables, PATH) before any other initialization runs.
|
|
9
|
+
- **Zero-dependency bootstrap**: The installation process relies only on `curl` and `git` (and `chezmoi`, which the installer fetches automatically).
|
|
10
|
+
- **Lazy-by-default**: Heavy tooling (fnm, nvm, SDKMAN, tool-specific aliases) is deferred until first use or after the first prompt to keep shell startup fast.
|
|
11
|
+
|
|
12
|
+
## Architecture diagram
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
DOTFILES ARCHITECTURE
|
|
16
|
+
================================================================================
|
|
17
|
+
|
|
18
|
+
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
19
|
+
│ INSTALLATION │
|
|
20
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
21
|
+
│ │ curl │───▶│ install │───▶│ chezmoi │───▶│ apply │ │
|
|
22
|
+
│ │ │ │ .sh │ │ init │ │ │ │
|
|
23
|
+
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
|
|
24
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
25
|
+
│
|
|
26
|
+
▼
|
|
27
|
+
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
28
|
+
│ SHELL STARTUP │
|
|
29
|
+
│ │
|
|
30
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
31
|
+
│ │ .zshenv │───▶│ .zshrc │───▶│ aliases │───▶│functions │ │
|
|
32
|
+
│ │(bootload)│ │ │ │ │ │ │ │
|
|
33
|
+
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
|
|
34
|
+
│ │ │
|
|
35
|
+
│ ▼ │
|
|
36
|
+
│ ┌──────────┐ │
|
|
37
|
+
│ │ XDG vars │ │
|
|
38
|
+
│ │ PATH │ │
|
|
39
|
+
│ └──────────┘ │
|
|
40
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
41
|
+
│
|
|
42
|
+
▼
|
|
43
|
+
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
44
|
+
│ CONFIGURATION LAYERS │
|
|
45
|
+
│ │
|
|
46
|
+
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
|
47
|
+
│ │ ~/.config/ │ │
|
|
48
|
+
│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ │
|
|
49
|
+
│ │ │ nvim │ │ git │ │ shell │ │ghostty │ │ tmux │ │ │
|
|
50
|
+
│ │ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ │ │
|
|
51
|
+
│ └─────────────────────────────────────────────────────────────────────┘ │
|
|
52
|
+
│ │
|
|
53
|
+
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
|
54
|
+
│ │ ~/.local/bin/ │ │
|
|
55
|
+
│ │ ┌────────┐ ┌────────┐ ┌────────┐ │ │
|
|
56
|
+
│ │ │ dot │ │scripts │ │ utils │ │ │
|
|
57
|
+
│ │ └────────┘ └────────┘ └────────┘ │ │
|
|
58
|
+
│ └─────────────────────────────────────────────────────────────────────┘ │
|
|
59
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Directory structure
|
|
64
|
+
|
|
65
|
+
The repository follows standard `chezmoi` conventions.
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
~/.dotfiles/
|
|
69
|
+
├── dot_config/ # Maps to ~/.config/
|
|
70
|
+
│ ├── atuin/ # Shell history
|
|
71
|
+
│ ├── ghostty/ # Terminal emulator
|
|
72
|
+
│ ├── shell/ # Core shell logic (aliases, functions)
|
|
73
|
+
│ ├── nvim/ # Neovim IDE configuration
|
|
74
|
+
│ ├── tmux/ # Terminal multiplexer
|
|
75
|
+
│ ├── git/ # Git configuration
|
|
76
|
+
│ ├── lazygit/ # Lazygit TUI
|
|
77
|
+
│ ├── mycli/ # MySQL CLI
|
|
78
|
+
│ ├── mongosh/ # MongoDB Shell
|
|
79
|
+
│ ├── redis/ # Redis CLI
|
|
80
|
+
│ ├── minikube/ # Minikube config
|
|
81
|
+
│ └── zsh/ # Zsh-specific config
|
|
82
|
+
├── dot_local/ # Maps to ~/.local/
|
|
83
|
+
│ └── bin/ # Scripts added to PATH
|
|
84
|
+
├── dot_zshenv # The environment bootloader
|
|
85
|
+
├── dot_psqlrc # PostgreSQL CLI config
|
|
86
|
+
├── dot_sqliterc # SQLite CLI config
|
|
87
|
+
├── .chezmoitemplates/ # Reusable logic blocks
|
|
88
|
+
│ ├── aliases/ # Alias definitions by category
|
|
89
|
+
│ ├── functions/ # Shell functions
|
|
90
|
+
│ └── paths/ # PATH configurations
|
|
91
|
+
├── nix/ # Nix flake for optional toolchain
|
|
92
|
+
│ └── flake.nix
|
|
93
|
+
├── install/ # Installation scripts
|
|
94
|
+
│ ├── helpers/ # Helper scripts
|
|
95
|
+
│ └── provision/ # OS-specific provisioning
|
|
96
|
+
└── install.sh # Universal bootstrapping script
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Data flow
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
103
|
+
│ chezmoi │────▶│ templates │────▶│ target dir │
|
|
104
|
+
│ source │ │ (.tmpl) │ │ (~/.*) │
|
|
105
|
+
└──────────────┘ └──────────────┘ └──────────────┘
|
|
106
|
+
│ │ │
|
|
107
|
+
│ ▼ │
|
|
108
|
+
│ ┌──────────────┐ │
|
|
109
|
+
│ │ .chezmoidata │ │
|
|
110
|
+
│ │ (data) │ │
|
|
111
|
+
│ └──────────────┘ │
|
|
112
|
+
│ │
|
|
113
|
+
└───────────────────┬─────────────────────┘
|
|
114
|
+
│
|
|
115
|
+
▼
|
|
116
|
+
┌──────────────┐
|
|
117
|
+
│ hooks │
|
|
118
|
+
│ (scripts) │
|
|
119
|
+
└──────────────┘
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Shell startup flow
|
|
123
|
+
|
|
124
|
+
Zsh loads files in a specific order. Dotfiles uses this to layer configuration predictably.
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
dot_zshenv # Phase 0: XDG vars, essential PATH (~/.local/bin, Homebrew)
|
|
128
|
+
└─▶ dot_config/zsh/dot_zshrc # Phase 1: Main orchestrator
|
|
129
|
+
├─▶ rc.d/10-env.zsh # Phase 2: Environment variables
|
|
130
|
+
├─▶ rc.d/20-zinit.zsh # Phase 3: Plugin manager (Zinit)
|
|
131
|
+
├─▶ rc.d/30-options.zsh # Phase 4: History, keybindings, lazy-loaders (fnm, nvm, SDKMAN)
|
|
132
|
+
├─▶ rc.d/40-plugins.zsh # Phase 5: Zinit plugins
|
|
133
|
+
├─▶ rc.d/50-vi-mode.zsh # Phase 6: Vi-mode configuration
|
|
134
|
+
│
|
|
135
|
+
├─▶ shell/00-core-paths # Phase 7: Full PATH construction
|
|
136
|
+
├─▶ shell/05-core-safety # Phase 8: Safety defaults (umask, etc.)
|
|
137
|
+
├─▶ shell/40-ls-colors # Phase 9: LS_COLORS
|
|
138
|
+
├─▶ shell/50-logic-funcs # Phase 10: Shell functions (60+)
|
|
139
|
+
├─▶ shell/90-ux-aliases # Phase 11: Core aliases (eager, ~40KB)
|
|
140
|
+
│
|
|
141
|
+
├─▶ [precmd hook] # Phase 12: Lazy-load tool aliases (~137KB, after first prompt)
|
|
142
|
+
│ └─▶ shell/91-ux-aliases-lazy
|
|
143
|
+
│
|
|
144
|
+
├─▶ atuin init # Phase 13: Shell history
|
|
145
|
+
├─▶ starship init # Phase 14: Prompt
|
|
146
|
+
├─▶ zoxide init # Phase 15: Smart cd
|
|
147
|
+
└─▶ fzf init # Phase 16: Fuzzy finder
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### rc.d load order
|
|
151
|
+
|
|
152
|
+
Files under `~/.config/zsh/rc.d/` are sourced in **glob order** (alphabetical by filename). The numeric prefix controls execution order:
|
|
153
|
+
|
|
154
|
+
| Range | Purpose | Examples |
|
|
155
|
+
|-------|---------|---------|
|
|
156
|
+
| `10-*` | Environment variables, exports | `10-env.zsh` |
|
|
157
|
+
| `20-*` | Plugin manager bootstrap | `20-zinit.zsh` |
|
|
158
|
+
| `30-*` | Shell options, lazy-loaders | `30-options.zsh` |
|
|
159
|
+
| `40-*` | Plugin declarations | `40-plugins.zsh` |
|
|
160
|
+
| `50-*` | Input mode (vi-mode) | `50-vi-mode.zsh` |
|
|
161
|
+
|
|
162
|
+
### shell/ load order
|
|
163
|
+
|
|
164
|
+
Files under `~/.config/shell/` are sourced explicitly by `dot_zshrc` in lexical order:
|
|
165
|
+
|
|
166
|
+
| Range | Purpose | Examples |
|
|
167
|
+
|-------|---------|---------|
|
|
168
|
+
| `00-19` | Core: PATH, safety | `00-core-paths.sh`, `05-core-safety.sh` |
|
|
169
|
+
| `40-49` | Middleware: colors, exports | `40-ls-colors.sh` |
|
|
170
|
+
| `50-89` | Toolchain: functions | `50-logic-functions.sh` |
|
|
171
|
+
| `90-99` | UX: aliases, prompts | `90-ux-aliases.sh` (eager), `91-ux-aliases-lazy.sh` (deferred) |
|
|
172
|
+
|
|
173
|
+
### Alias system
|
|
174
|
+
|
|
175
|
+
Aliases are defined in `.chezmoitemplates/aliases/` with one directory per category:
|
|
176
|
+
|
|
177
|
+
```text
|
|
178
|
+
.chezmoitemplates/aliases/
|
|
179
|
+
├── cd/cd.aliases.sh # Directory navigation
|
|
180
|
+
├── git/git.aliases.sh # Git shortcuts
|
|
181
|
+
├── docker/docker.aliases.sh # Container management
|
|
182
|
+
├── kubernetes/kubernetes.aliases.sh
|
|
183
|
+
├── python/python.aliases.sh
|
|
184
|
+
├── rust/rust.aliases.sh
|
|
185
|
+
└── ... (50+ categories, each with README.md)
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
At `chezmoi apply` time, Chezmoi's `glob` function discovers all `*.aliases.sh` files and aggregates them into two output files:
|
|
189
|
+
|
|
190
|
+
- **`90-ux-aliases.sh`** — 14 core categories (cd, git, editor, sudo, etc.) loaded eagerly at startup.
|
|
191
|
+
- **`91-ux-aliases-lazy.sh`** — 35+ tool-specific categories (docker, kubernetes, terraform, etc.) loaded after the first prompt via a `precmd` hook.
|
|
192
|
+
|
|
193
|
+
**Ordering convention:** Templates are included in **alphabetical order** by their file path. This is implicit — renaming a file changes its load position. At current scale (~50 categories) this is acceptable; if the count exceeds ~100, consider introducing an explicit manifest.
|
|
194
|
+
|
|
195
|
+
## Modern toolchain
|
|
196
|
+
|
|
197
|
+
Dotfiles replaces legacy Unix tools with high-performance Rust alternatives:
|
|
198
|
+
|
|
199
|
+
| Legacy | Modern replacement | Purpose |
|
|
200
|
+
| :--- | :--- | :--- |
|
|
201
|
+
| `ls` | `eza` | Modern file listing with git integration |
|
|
202
|
+
| `cat` | `bat` | Syntax highlighted file viewing |
|
|
203
|
+
| `grep` | `ripgrep` (`rg`) | High-performance search |
|
|
204
|
+
| `cd` | `zoxide` | Smart directory jumping |
|
|
205
|
+
| `history` | `atuin` | Syncable, encrypted SQLite history |
|
|
206
|
+
| `find` | `fd` | Developer-friendly filesystem search |
|
|
207
|
+
| `vim` | `neovim` | Lua-extensible IDE |
|
|
208
|
+
| `diff` | `delta` | Syntax-highlighted diffs |
|
|
209
|
+
|
|
210
|
+
## Predictive shell strategy
|
|
211
|
+
|
|
212
|
+
- **AI integration**: The shell integrates AI features through the `ai_core` wrapper.
|
|
213
|
+
- **Autosuggestions**: Context-aware completion based on shell history.
|
|
214
|
+
- **Error analysis**: Hooks send failed command context to local LLMs or GitHub Copilot for explanation.
|
|
215
|
+
|
|
216
|
+
## Security posture
|
|
217
|
+
|
|
218
|
+
- **Hardened defaults**: Shell scripts run with `set -euo pipefail` to fail fast.
|
|
219
|
+
- **Supply chain safety**:
|
|
220
|
+
- **Pinned installation**: Installers reference specific Git tags (for example, `v0.2.480`), not `main`.
|
|
221
|
+
- **Immutable history**: All logic stays version-controlled and reviewable through `chezmoi diff`.
|
|
222
|
+
- **Audit logging**: Dotfiles logs all mutations to `~/.local/share/dotfiles.log`.
|
|
223
|
+
- **Encryption**: `age` encrypts all sensitive data.
|
|
224
|
+
|
|
225
|
+
## Compatibility
|
|
226
|
+
|
|
227
|
+
- **macOS**: Full support (Homebrew, defaults).
|
|
228
|
+
- **Linux**: Debian/Ubuntu support (apt-get).
|
|
229
|
+
- **Windows**: WSL2 support.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Compliance
|
|
2
|
+
|
|
3
|
+
This document maps the dotfiles configuration and tooling to standard regulatory frameworks (SOC 2, ISO 27001, GDPR).
|
|
4
|
+
|
|
5
|
+
## Controls
|
|
6
|
+
|
|
7
|
+
### SOC 2 Type II
|
|
8
|
+
|
|
9
|
+
| Control | Description | Dotfiles Implementation |
|
|
10
|
+
| :--- | :--- | :--- |
|
|
11
|
+
| **CC6.1** | Logical Access Security | `zsh` restricted permissions, SSH key management via `1Password`/Agents. |
|
|
12
|
+
| **CC6.8** | Unauthorized Code Protection | `enable-signing` enforces GPG/SSH signed commits. `slsa-framework` workflow. |
|
|
13
|
+
| **CC8.1** | Change Management | All changes managed via git (Infrastructure as Code). `lock-configs` for immutability. |
|
|
14
|
+
| **A1.2** | Audit Logs | `~/.local/share/dotfiles.log` tracks all configuration applications (`chezmoi apply`). |
|
|
15
|
+
|
|
16
|
+
### ISO 27001
|
|
17
|
+
|
|
18
|
+
| Control | Description | Dotfiles Implementation |
|
|
19
|
+
| :--- | :--- | :--- |
|
|
20
|
+
| **A.9.1.1** | Access Control Policy | Principle of Least Privilege in filesystem permissions (umask 022/077). |
|
|
21
|
+
| **A.12.1.2** | Change Management | Git-based version control with CI/CD verification (`ci.yml`, `security-release.yml`). |
|
|
22
|
+
| **A.14.2.5** | Secure Engineering | `scan-licenses` (FOSSology) and `check-cla` ensure legal/security compliance. |
|
|
23
|
+
|
|
24
|
+
### GDPR / HIPAA (Privacy)
|
|
25
|
+
|
|
26
|
+
| Requirement | Description | Dotfiles Implementation |
|
|
27
|
+
| :--- | :--- | :--- |
|
|
28
|
+
| **Data minimization** | Limit data collection | `privacy-mode` disables CLI telemetry (Dotnet, Brew, Functions). |
|
|
29
|
+
| **Integrity** | Protect against tampering | `lock-configs` prevents unauthorized modification of shell history/config. |
|
|
30
|
+
|
|
31
|
+
## Security
|
|
32
|
+
|
|
33
|
+
### Immutability
|
|
34
|
+
Lock critical configuration files to prevent tampering:
|
|
35
|
+
```bash
|
|
36
|
+
lock-configs # Sets chflags uchg (macOS) or chattr +i (Linux)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Forensic audit
|
|
40
|
+
Dotfiles logs all `chezmoi` operations. To view audit trails, run:
|
|
41
|
+
```bash
|
|
42
|
+
dot audit
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Supply chain security
|
|
46
|
+
- **SBOM**: The CI pipeline generates an SBOM for every release (SPDX format).
|
|
47
|
+
- **Provenance**: SLSA Level 3 build attestation.
|
package/docs/COPYRIGHT
ADDED
package/docs/FEATURES.md
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# Feature Flags
|
|
2
|
+
|
|
3
|
+
Feature flags control which components and configurations are enabled in your dotfiles setup. They are defined in `.chezmoidata.toml` and used throughout template files to conditionally include or exclude functionality.
|
|
4
|
+
|
|
5
|
+
## Configuration
|
|
6
|
+
|
|
7
|
+
Feature flags are configured in the `.chezmoidata.toml` file:
|
|
8
|
+
|
|
9
|
+
```toml
|
|
10
|
+
[features]
|
|
11
|
+
zsh = true
|
|
12
|
+
nvim = true
|
|
13
|
+
tmux = true
|
|
14
|
+
gui = true
|
|
15
|
+
secrets = true
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Available Feature Flags
|
|
19
|
+
|
|
20
|
+
| Flag | Default | Purpose | Dependencies | Impact |
|
|
21
|
+
|------|---------|---------|--------------|---------|
|
|
22
|
+
| `zsh` | `true` | Enable Zsh shell configuration and optimizations | - | Controls Zsh-specific configs, aliases, and shell enhancements |
|
|
23
|
+
| `nvim` | `true` | Enable Neovim editor configuration | - | Manages Neovim configs, plugins, and editor-specific settings |
|
|
24
|
+
| `tmux` | `true` | Enable tmux terminal multiplexer configuration | - | Controls tmux configs, key bindings, and session management |
|
|
25
|
+
| `gui` | `true` | Enable GUI application configurations | Desktop environment | Manages GUI app configs, window managers, and desktop settings |
|
|
26
|
+
| `secrets` | `true` | Enable secrets management and encryption tools | GPG, Age, SSH keys | Controls access to encrypted configs and secure credential storage |
|
|
27
|
+
|
|
28
|
+
## How Feature Flags Work
|
|
29
|
+
|
|
30
|
+
### Template Processing
|
|
31
|
+
|
|
32
|
+
Feature flags are processed in the Zsh configuration template (`dot_config/zsh/dot_zshrc.tmpl`) where they:
|
|
33
|
+
|
|
34
|
+
1. **Set defaults**: If not explicitly defined, all features default to `true`
|
|
35
|
+
2. **Export environment variables**: Active features are exported as `DOTFILES_FEATURES`
|
|
36
|
+
3. **Enable conditional loading**: Allow selective inclusion of shell configurations
|
|
37
|
+
|
|
38
|
+
### Example Usage
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# In template files, feature flags are referenced as:
|
|
42
|
+
{{- $features := default (dict "zsh" true "nvim" true "tmux" true "gui" true "secrets" true) .features -}}
|
|
43
|
+
|
|
44
|
+
# Export enabled features to environment
|
|
45
|
+
export DOTFILES_FEATURES="{{ join "," $enabled }}"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Runtime Access
|
|
49
|
+
|
|
50
|
+
Once processed, you can check active features in your shell:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# View all enabled features
|
|
54
|
+
echo $DOTFILES_FEATURES
|
|
55
|
+
|
|
56
|
+
# Check if a specific feature is enabled
|
|
57
|
+
if [[ "$DOTFILES_FEATURES" == *"nvim"* ]]; then
|
|
58
|
+
echo "Neovim configuration is active"
|
|
59
|
+
fi
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Modifying Feature Flags
|
|
63
|
+
|
|
64
|
+
### Enable/Disable Features
|
|
65
|
+
|
|
66
|
+
Edit `.chezmoidata.toml`:
|
|
67
|
+
|
|
68
|
+
```toml
|
|
69
|
+
[features]
|
|
70
|
+
zsh = true
|
|
71
|
+
nvim = true
|
|
72
|
+
tmux = false # Disable tmux configuration
|
|
73
|
+
gui = false # Disable GUI configurations
|
|
74
|
+
secrets = true
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Apply Changes
|
|
78
|
+
|
|
79
|
+
After modifying feature flags, apply the changes:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
chezmoi apply
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Profile-Specific Overrides
|
|
86
|
+
|
|
87
|
+
For machine-specific configurations, you can override feature flags in your local chezmoi config (`~/.config/chezmoi/chezmoi.toml`):
|
|
88
|
+
|
|
89
|
+
```toml
|
|
90
|
+
[data.features]
|
|
91
|
+
gui = false # Override: disable GUI on this machine
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Feature Flag Dependencies
|
|
95
|
+
|
|
96
|
+
### Core Dependencies
|
|
97
|
+
|
|
98
|
+
- **zsh**: Core shell functionality - recommended to keep enabled
|
|
99
|
+
- **nvim**: Independent - can be disabled if using alternative editors
|
|
100
|
+
- **tmux**: Independent - can be disabled if not using terminal multiplexer
|
|
101
|
+
|
|
102
|
+
### Conditional Dependencies
|
|
103
|
+
|
|
104
|
+
- **gui**: Requires desktop environment; automatically ignored on headless systems
|
|
105
|
+
- **secrets**: Required for encrypted configurations; disable only if not using secure storage
|
|
106
|
+
|
|
107
|
+
## Architecture Notes
|
|
108
|
+
|
|
109
|
+
### Default Behavior
|
|
110
|
+
|
|
111
|
+
The feature flag system uses a **fail-safe default** approach:
|
|
112
|
+
- If `.chezmoidata.toml` is missing features, all flags default to `true`
|
|
113
|
+
- This ensures the dotfiles work out-of-the-box without configuration
|
|
114
|
+
|
|
115
|
+
### Performance Impact
|
|
116
|
+
|
|
117
|
+
- **Enabled features**: Include additional configurations and may load more shell plugins
|
|
118
|
+
- **Disabled features**: Reduce startup time and memory usage by excluding unnecessary components
|
|
119
|
+
|
|
120
|
+
### Template Resolution
|
|
121
|
+
|
|
122
|
+
Feature flags are resolved during chezmoi template processing, not at runtime. This means:
|
|
123
|
+
- Changes require `chezmoi apply` to take effect
|
|
124
|
+
- No runtime performance penalty for checking feature status
|
|
125
|
+
- Configurations are pre-compiled based on active features
|
|
126
|
+
|
|
127
|
+
## Troubleshooting
|
|
128
|
+
|
|
129
|
+
### Check Current Features
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# View active features
|
|
133
|
+
echo $DOTFILES_FEATURES
|
|
134
|
+
|
|
135
|
+
# View profile and theme
|
|
136
|
+
echo "Profile: $DOTFILES_PROFILE"
|
|
137
|
+
echo "Theme: $DOTFILES_THEME"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Verify Configuration
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Check chezmoi data
|
|
144
|
+
chezmoi data
|
|
145
|
+
|
|
146
|
+
# Test template processing
|
|
147
|
+
chezmoi execute-template '{{ .features.zsh }}'
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Reset to Defaults
|
|
151
|
+
|
|
152
|
+
If you encounter issues, reset to default configuration:
|
|
153
|
+
|
|
154
|
+
```toml
|
|
155
|
+
[features]
|
|
156
|
+
zsh = true
|
|
157
|
+
nvim = true
|
|
158
|
+
tmux = true
|
|
159
|
+
gui = true
|
|
160
|
+
secrets = true
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
**Last Updated**: 2026-01-31
|
|
166
|
+
**Dotfiles Version**: v0.2.480
|