@sebastienrousseau/dotfiles 0.2.469 → 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 -140
- 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 -382
- package/dist/lib/README.md +0 -86
- package/dist/lib/aliases/README.md +0 -57
- package/dist/lib/aliases/archives/README.md +0 -145
- package/dist/lib/aliases/archives/archives.aliases.sh +0 -114
- package/dist/lib/aliases/cd/README.md +0 -146
- package/dist/lib/aliases/cd/cd.aliases.sh +0 -51
- package/dist/lib/aliases/chmod/README.md +0 -160
- package/dist/lib/aliases/chmod/chmod.aliases.sh +0 -107
- 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 -70
- 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/list/README.md +0 -131
- package/dist/lib/aliases/list/list.aliases.sh +0 -132
- 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/python/python.aliases.sh +0 -141
- 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 -182
- package/dist/lib/aliases/rust/rust.aliases.sh +0 -119
- 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 -310
- 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 -167
- package/dist/lib/configurations/curl/cacert.pem +0 -3460
- package/dist/lib/configurations/curl/curlrc +0 -53
- 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 -48
- 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/prompt/prompt.sh +0 -81
- 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 -193
- package/dist/lib/configurations/wget/wgetrc +0 -40
- package/dist/lib/configurations/zsh/zshrc +0 -50
- package/dist/lib/configurations.sh +0 -45
- package/dist/lib/functions/README.md +0 -92
- package/dist/lib/functions/apihealth.sh +0 -277
- package/dist/lib/functions/apilatency.sh +0 -157
- package/dist/lib/functions/apiload.sh +0 -165
- package/dist/lib/functions/backup.sh +0 -143
- package/dist/lib/functions/cdls.sh +0 -60
- package/dist/lib/functions/curlheader.sh +0 -78
- package/dist/lib/functions/curlstatus.sh +0 -74
- package/dist/lib/functions/curltime.sh +0 -75
- package/dist/lib/functions/encode64.sh +0 -107
- package/dist/lib/functions/environment.sh +0 -78
- package/dist/lib/functions/extract.sh +0 -86
- package/dist/lib/functions/freespace.sh +0 -67
- package/dist/lib/functions/genpwd.sh +0 -105
- package/dist/lib/functions/goto.sh +0 -67
- package/dist/lib/functions/hexdump.sh +0 -96
- package/dist/lib/functions/hiddenfiles.sh +0 -77
- package/dist/lib/functions/hostinfo.sh +0 -98
- package/dist/lib/functions/hstats.sh +0 -75
- package/dist/lib/functions/httpdebug.sh +0 -113
- package/dist/lib/functions/kebabcase.sh +0 -61
- package/dist/lib/functions/keygen.sh +0 -194
- package/dist/lib/functions/last.sh +0 -112
- package/dist/lib/functions/logout.sh +0 -120
- package/dist/lib/functions/lowercase.sh +0 -61
- package/dist/lib/functions/matrix.sh +0 -216
- 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 -73
- package/dist/lib/functions/sentencecase.sh +0 -63
- package/dist/lib/functions/showhiddenfiles.sh +0 -14
- package/dist/lib/functions/size.sh +0 -16
- package/dist/lib/functions/snakecase.sh +0 -61
- package/dist/lib/functions/stopwatch.sh +0 -15
- package/dist/lib/functions/sysinfo.sh +0 -145
- package/dist/lib/functions/titlecase.sh +0 -65
- package/dist/lib/functions/uppercase.sh +0 -61
- 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 -46
- package/dist/lib/history.sh +0 -90
- package/dist/lib/paths/README.md +0 -52
- package/dist/lib/paths/custom.paths.sh +0 -40
- package/dist/lib/paths/default.paths.sh +0 -37
- package/dist/lib/paths.sh +0 -46
- 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/README.md
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
# Dotfiles Documentation
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**A modern, cross-platform shell environment built for developers.**
|
|
6
|
+
|
|
7
|
+
[Quick Start](#quick-start) · [Features](#features) · [Architecture](#architecture) · [Security](#security) · [Contributing](#contributing)
|
|
8
|
+
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
Welcome to the dotfiles documentation. This guide will help you install, configure, and customize your development environment across macOS, Linux, and WSL.
|
|
16
|
+
|
|
17
|
+
### What You'll Get
|
|
18
|
+
|
|
19
|
+
| Feature | Description |
|
|
20
|
+
|---------|-------------|
|
|
21
|
+
| 🚀 **Fast Shell** | Zsh with lazy loading, <500ms startup |
|
|
22
|
+
| 🔧 **Modern Tools** | Neovim, tmux, starship, fzf, ripgrep |
|
|
23
|
+
| 🔐 **Security First** | Encrypted secrets, credential management |
|
|
24
|
+
| 🎨 **Beautiful UI** | Nerd Fonts, themes, consistent styling |
|
|
25
|
+
| 📦 **Cross-Platform** | macOS, Linux, WSL2 support |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Table of Contents
|
|
30
|
+
|
|
31
|
+
### Getting Started
|
|
32
|
+
- [Installation Guide](INSTALL.md) — Set up your environment in minutes
|
|
33
|
+
- [Walkthrough](WALKTHROUGH.md) — Interactive tour of key features
|
|
34
|
+
- [Features Overview](FEATURES.md) — Complete feature list
|
|
35
|
+
|
|
36
|
+
### Core Documentation
|
|
37
|
+
- [Architecture](ARCHITECTURE.md) — System design and structure
|
|
38
|
+
- [Operations Guide](OPERATIONS.md) — Daily usage and maintenance
|
|
39
|
+
- [Troubleshooting](TROUBLESHOOTING.md) — Common issues and solutions
|
|
40
|
+
|
|
41
|
+
### Configuration
|
|
42
|
+
- [Aliases Reference](ALIASES.md) — Shell aliases and shortcuts
|
|
43
|
+
- [Keybindings](KEYS.md) — Keyboard shortcuts catalog
|
|
44
|
+
- [Tools Reference](TOOLS.md) — Installed tools and utilities
|
|
45
|
+
- [Utilities](UTILS.md) — Helper scripts and functions
|
|
46
|
+
|
|
47
|
+
### Customization
|
|
48
|
+
- [Fonts Guide](FONTS.md) — Nerd Fonts installation
|
|
49
|
+
- [Screenshots](SCREENSHOTS.md) — Visual gallery
|
|
50
|
+
- [Neovim IDE Guide](NEOVIM_IDE_GUIDE.md) — Editor configuration
|
|
51
|
+
|
|
52
|
+
### Security
|
|
53
|
+
- [Security Overview](SECURITY.md) — Security model and practices
|
|
54
|
+
- [Security Checklist](SECURITY_CHECKLIST.md) — Hardening guide
|
|
55
|
+
- [Secrets Management](SECRETS.md) — Encrypted credentials
|
|
56
|
+
|
|
57
|
+
### Development
|
|
58
|
+
- [Testing Guide](TESTING.md) — Test framework and coverage
|
|
59
|
+
- [Compliance](COMPLIANCE.md) — Standards and policies
|
|
60
|
+
- [Architecture Decisions](adr/) — ADRs for key decisions
|
|
61
|
+
|
|
62
|
+
### Platform-Specific
|
|
63
|
+
- [WSL2 + Nix Guide](WSL2_NIX_TROUBLESHOOTING.md) — Windows Subsystem for Linux
|
|
64
|
+
|
|
65
|
+
### Reference
|
|
66
|
+
- [Roadmap](ROADMAP.md) — Future plans and priorities
|
|
67
|
+
- [Legacy Roadmap](LEGACY_ROADMAP.md) — Historical context
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Quick Start
|
|
72
|
+
|
|
73
|
+
### Prerequisites
|
|
74
|
+
|
|
75
|
+
- macOS 12+, Ubuntu 22.04+, or Windows 11 with WSL2
|
|
76
|
+
- Git 2.30+
|
|
77
|
+
- curl or wget
|
|
78
|
+
|
|
79
|
+
### Installation
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# One-line install
|
|
83
|
+
curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh | bash
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Or clone and install manually:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
git clone https://github.com/sebastienrousseau/dotfiles.git ~/.dotfiles
|
|
90
|
+
cd ~/.dotfiles && ./install.sh
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### First Steps
|
|
94
|
+
|
|
95
|
+
After installation, run these commands to explore:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
dot help # Show all available commands
|
|
99
|
+
dot doctor # Check system health
|
|
100
|
+
dot learn # Interactive tour
|
|
101
|
+
dot keys # View keybindings
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Features
|
|
107
|
+
|
|
108
|
+
### Shell Environment
|
|
109
|
+
|
|
110
|
+
The shell configuration provides a fast, feature-rich experience:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
114
|
+
│ Startup Time: <500ms │ Plugin Manager: Zinit │
|
|
115
|
+
│ Prompt: Starship │ Completions: Lazy-loaded │
|
|
116
|
+
│ History: Shared │ Syntax: fast-syntax-highlighting │
|
|
117
|
+
└─────────────────────────────────────────────────────────────┘
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Key Features:**
|
|
121
|
+
- Intelligent command suggestions with autosuggestions
|
|
122
|
+
- Fuzzy finding with fzf for files, history, and git
|
|
123
|
+
- Git integration with delta for beautiful diffs
|
|
124
|
+
- Directory jumping with zoxide
|
|
125
|
+
|
|
126
|
+
### Development Tools
|
|
127
|
+
|
|
128
|
+
Pre-configured toolchains for modern development:
|
|
129
|
+
|
|
130
|
+
| Language | Tools |
|
|
131
|
+
|----------|-------|
|
|
132
|
+
| **Rust** | rustup, cargo, clippy, rustfmt |
|
|
133
|
+
| **Go** | go, golangci-lint |
|
|
134
|
+
| **Node.js** | nvm, npm, pnpm |
|
|
135
|
+
| **Python** | pyenv, pipx, uv |
|
|
136
|
+
|
|
137
|
+
### AI Integration
|
|
138
|
+
|
|
139
|
+
Built-in support for AI coding assistants:
|
|
140
|
+
|
|
141
|
+
- **aider** — AI pair programming
|
|
142
|
+
- **Claude** — Anthropic's assistant
|
|
143
|
+
- **GitHub Copilot** — Code suggestions
|
|
144
|
+
- **git-ai-commit** — AI-powered commit messages
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Architecture
|
|
149
|
+
|
|
150
|
+
The dotfiles follow a modular architecture:
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
~/.dotfiles/
|
|
154
|
+
├── dot_config/ # XDG config files
|
|
155
|
+
│ ├── nvim/ # Neovim configuration
|
|
156
|
+
│ ├── zsh/ # Zsh configuration layers
|
|
157
|
+
│ └── git/ # Git configuration
|
|
158
|
+
├── dot_local/bin/ # User scripts and tools
|
|
159
|
+
├── install/ # Installation scripts
|
|
160
|
+
│ └── provision/ # Tool provisioning
|
|
161
|
+
├── scripts/ # Operational scripts
|
|
162
|
+
│ ├── dot/commands/ # CLI command modules
|
|
163
|
+
│ ├── diagnostics/ # Health checks
|
|
164
|
+
│ ├── security/ # Security tools
|
|
165
|
+
│ └── tuning/ # Performance tuning
|
|
166
|
+
└── docs/ # Documentation (you are here)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Shell Layer System
|
|
170
|
+
|
|
171
|
+
Zsh configuration uses numbered layers for predictable loading:
|
|
172
|
+
|
|
173
|
+
| Range | Purpose | Examples |
|
|
174
|
+
|-------|---------|----------|
|
|
175
|
+
| 00-19 | Core | Environment, history, options |
|
|
176
|
+
| 20-49 | Middleware | Zinit, completions, plugins |
|
|
177
|
+
| 50-89 | Toolchain | Languages, package managers |
|
|
178
|
+
| 90-99 | UX | Prompt, aliases, keybindings |
|
|
179
|
+
|
|
180
|
+
### CLI Architecture
|
|
181
|
+
|
|
182
|
+
The `dot` CLI uses modular command dispatch:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
dot <command> [args]
|
|
186
|
+
│
|
|
187
|
+
├── core.sh # apply, sync, update, diff
|
|
188
|
+
├── diagnostics.sh # doctor, heal, benchmark
|
|
189
|
+
├── tools.sh # tools, new, packages
|
|
190
|
+
├── appearance.sh # theme, fonts, wallpaper
|
|
191
|
+
├── secrets.sh # secrets-init, secrets
|
|
192
|
+
├── security.sh # firewall, backup, encrypt
|
|
193
|
+
└── meta.sh # upgrade, docs, learn
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Security
|
|
199
|
+
|
|
200
|
+
Security is a core principle, not an afterthought.
|
|
201
|
+
|
|
202
|
+
### Secrets Management
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
dot secrets-init # Initialize age encryption
|
|
206
|
+
dot secrets # Edit encrypted secrets
|
|
207
|
+
dot ssh-key # Encrypt SSH keys
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Secrets are encrypted with [age](https://age-encryption.org/) and never stored in plaintext.
|
|
211
|
+
|
|
212
|
+
### Credential Management
|
|
213
|
+
|
|
214
|
+
Supported credential stores:
|
|
215
|
+
- **macOS** — Keychain integration
|
|
216
|
+
- **Linux** — libsecret / GNOME Keyring
|
|
217
|
+
- **Git** — git-credential-manager
|
|
218
|
+
|
|
219
|
+
### Security Hardening (Opt-in)
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
dot firewall # Configure firewall rules
|
|
223
|
+
dot telemetry # Disable OS telemetry
|
|
224
|
+
dot dns-doh # Enable DNS-over-HTTPS
|
|
225
|
+
dot encrypt-check # Verify disk encryption
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
All security modifications require explicit consent.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Contributing
|
|
233
|
+
|
|
234
|
+
We welcome contributions! Please see our guidelines:
|
|
235
|
+
|
|
236
|
+
1. **Fork** the repository
|
|
237
|
+
2. **Create** a feature branch
|
|
238
|
+
3. **Test** your changes with `dot doctor`
|
|
239
|
+
4. **Submit** a pull request
|
|
240
|
+
|
|
241
|
+
### Code Style
|
|
242
|
+
|
|
243
|
+
- Shell scripts: Follow ShellCheck recommendations
|
|
244
|
+
- Templates: Use `.chezmoitemplates/` for reusable logic
|
|
245
|
+
- Documentation: Use UPPERCASE.md naming convention
|
|
246
|
+
|
|
247
|
+
### Testing
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
./scripts/tests/framework/test_runner.sh # Unit tests
|
|
251
|
+
RUN_INTEGRATION=1 ./scripts/tests/framework/test_runner.sh # Integration
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Support
|
|
257
|
+
|
|
258
|
+
- **Issues**: [GitHub Issues](https://github.com/sebastienrousseau/dotfiles/issues)
|
|
259
|
+
- **Discussions**: [GitHub Discussions](https://github.com/sebastienrousseau/dotfiles/discussions)
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
<div align="center">
|
|
264
|
+
|
|
265
|
+
**[Back to Top](#dotfiles-documentation)**
|
|
266
|
+
|
|
267
|
+
Made with ❤️ by [Sebastien Rousseau](https://github.com/sebastienrousseau)
|
|
268
|
+
|
|
269
|
+
</div>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Repo Audit
|
|
2
|
+
|
|
3
|
+
## Source of truth
|
|
4
|
+
- `~/.dotfiles` (chezmoi source directory)
|
|
5
|
+
|
|
6
|
+
## Key directories
|
|
7
|
+
- `.chezmoitemplates/` - templated aliases, functions, paths
|
|
8
|
+
- `dot_config/` - configs mapped into `~/.config`
|
|
9
|
+
- `dot_local/` - binaries and local data (e.g., `dot` CLI)
|
|
10
|
+
- `scripts/` - diagnostics, tests, tooling
|
|
11
|
+
- `tests/` - sandbox Dockerfile
|
|
12
|
+
- `nix/` - optional Nix toolchain
|
|
13
|
+
|
|
14
|
+
## Notable dependencies
|
|
15
|
+
- `chezmoi`
|
|
16
|
+
- `zsh`, `starship`
|
|
17
|
+
- `neovim`
|
|
18
|
+
- `ripgrep`, `fd`, `bat`, `fzf`, `zoxide`
|
|
19
|
+
- `lazygit`
|
|
20
|
+
|
|
21
|
+
## Notes
|
|
22
|
+
- Repo-only files excluded via `.chezmoiignore`.
|
|
23
|
+
- Secrets are handled via `age` + `dot secrets` (see `docs/SECRETS.md`).
|
package/docs/ROADMAP.md
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Roadmap
|
|
2
|
+
|
|
3
|
+
This roadmap steers the project from a "feature-rich dotfiles repo" to an **Enterprise-Grade Shell Distribution**. The structure is organized by strategic pillars (**Trust**, **Predictability**, **Observability**) rather than linear phases, though the original 100-Phase vision is preserved within these categories.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Reproducibility
|
|
8
|
+
**Goal:** "Reproducible Shell Environments".
|
|
9
|
+
> *This distribution aims for deterministic rebuilds: the same tag yields the same environment across machines.*
|
|
10
|
+
|
|
11
|
+
- [ ] **Pinned Formulae**: Strict version locking for Homebrew bundle and Apt packages.
|
|
12
|
+
- [ ] **Binary Locking**: Future versions may replace bootstrap download helpers with checksum-verified artifacts once a portable verification strategy is finalized.
|
|
13
|
+
- [ ] **State Capture**: `chezmoi` templates that capture host-specific state for idempotence.
|
|
14
|
+
- [ ] **Manifests**: Optional `Brewfile.lock` or equivalent for Linux.
|
|
15
|
+
- [ ] **Cloud-Init (Phase 28)**: Generate `user-data` scripts for AWS/GCP bootstrapping.
|
|
16
|
+
- [ ] **Container Native (Phase 28)**: Base Docker image for devcontainers.
|
|
17
|
+
- [ ] **Terraform Provider (Phase 28)**: Custom provider to provision dotfiles state.
|
|
18
|
+
|
|
19
|
+
## Observability
|
|
20
|
+
**Goal:** "Observable Shell Lifecycle".
|
|
21
|
+
> *The shell is instrumented: failures, timing, and lifecycle events are visible by design.*
|
|
22
|
+
|
|
23
|
+
- [ ] **Audit Structuring**: JSON-structured logging for bootstrap and provisioning events.
|
|
24
|
+
- [ ] **Debug Modes**: First-class support for `DOTFILES_DEBUG=1` and `DOTFILES_TRACE=1`.
|
|
25
|
+
- [ ] **Telemetry (Local)**: Granular startup timing breakdown (init vs plugins vs prompt).
|
|
26
|
+
- [ ] **Health Dashboard (Phase 39)**: CLI view of system "health" metrics.
|
|
27
|
+
- [ ] **System Status (Phase 39)**: Real-time resource usage, battery, and network stats.
|
|
28
|
+
- [ ] **Update Manager (Phase 39)**: Visual interface for tool updates and migration.
|
|
29
|
+
|
|
30
|
+
## Secrets
|
|
31
|
+
**Goal:** "Explicit Secrets Model".
|
|
32
|
+
> *Secrets are never committed; sensitive state is encrypted or host-local by default.*
|
|
33
|
+
|
|
34
|
+
- [ ] **Secret Driver**: Native integration with 1Password/Bitwarden CLI via `chezmoi`.
|
|
35
|
+
- [ ] **Encryption**: Promoted use of `age` encryption for all private config files.
|
|
36
|
+
- [ ] **Leak Prevention (Phase 29)**: Pre-commit hooks (TruffleHog/Gitleaks) for high-entropy detection.
|
|
37
|
+
- [ ] **Vault Integration (Phase 29)**: Native HashiCorp Vault support.
|
|
38
|
+
- [ ] **Hardware Enclaves (Phase 29)**: Support for Secure Enclave/TPM key storage.
|
|
39
|
+
- [ ] **OIDC Auth (Phase 29)**: Keyless authentication via GitHub OIDC.
|
|
40
|
+
|
|
41
|
+
## Toolchain
|
|
42
|
+
**Goal:** "Composable Shell Layers".
|
|
43
|
+
> *The distribution is layered: core safety is mandatory, advanced features are opt-in.*
|
|
44
|
+
|
|
45
|
+
- [ ] **Core Layer**: XDG, PATH, Safety (`set -euo pipefail`). (Zero external deps).
|
|
46
|
+
- [ ] **UX Layer**: Prompt (Starship), Aliases, Completions.
|
|
47
|
+
- [ ] **Toolchain Layer**: Rust replacements (`eza`, `bat`, `ripgrep`).
|
|
48
|
+
- [ ] **Cross-Compiler Toolchain (Phase 34)**:
|
|
49
|
+
- [ ] **Multi-Arch**: `qemu-user-static` for ARM64/AMD64.
|
|
50
|
+
- [ ] **Wasm Target**: WebAssembly toolchain setup.
|
|
51
|
+
- [ ] **Embedded Dev**: Presets for Arduino/ESP32.
|
|
52
|
+
|
|
53
|
+
## Opt-in features
|
|
54
|
+
**Goal:** "Explicit Feature Flags".
|
|
55
|
+
> *Advanced features are gated behind explicit opt-in flags.*
|
|
56
|
+
|
|
57
|
+
- [ ] **Feature Toggles**: Environment variables (e.g., `ENABLE_AI=0`, `ENABLE_HISTORY_SYNC=0`).
|
|
58
|
+
- [ ] **Lazy Loading**: Strict lazy-loading for all non-core plugins.
|
|
59
|
+
- [ ] **Plugin Ecosystem (Phase 35)**:
|
|
60
|
+
- [ ] **Module Registry**: Public index of dotfiles modules.
|
|
61
|
+
- [ ] **Dependency Solving**: Semantic versioning for modules.
|
|
62
|
+
- [ ] **Verified Publishers**: Cryptographic signing for "Official" modules.
|
|
63
|
+
|
|
64
|
+
## Safety
|
|
65
|
+
**Goal:** "Documented Threat Model".
|
|
66
|
+
> *Security decisions are driven by an explicit, documented threat model.*
|
|
67
|
+
|
|
68
|
+
- [ ] **Threat Model Doc**: A lightweight document defining the trust boundary (Local Machine).
|
|
69
|
+
- [ ] **Supply Chain**: Verification steps for upstream dependencies.
|
|
70
|
+
- [ ] **Identity & Access (Phase 40)**:
|
|
71
|
+
- [ ] **SSH Certs**: Short-lived SSH Certificates.
|
|
72
|
+
- [ ] **YubiKey Bio**: Biometric enforcement for `sudo`.
|
|
73
|
+
- [ ] **PAM Modules**: Custom auth modules.
|
|
74
|
+
- [ ] **Auditd Rules**: Pre-configured audit rules.
|
|
75
|
+
|
|
76
|
+
## Validation
|
|
77
|
+
**Goal:** "Self-Validating Environment".
|
|
78
|
+
> *The environment can validate itself after installation or update.*
|
|
79
|
+
|
|
80
|
+
- [ ] **Smoke Tests**: Automated verification of key aliases (`ls`, `git`, `docker`).
|
|
81
|
+
- [ ] **CI Validation**: GitHub Actions workflow to boot and verify the shell syntax.
|
|
82
|
+
- [ ] **Chaos Engineering (Phase 41)**:
|
|
83
|
+
- [ ] **Config Chaos**: Randomly corrupt config files to test recovery.
|
|
84
|
+
- [ ] **Network Simulation**: Simulate high latency/packet loss.
|
|
85
|
+
- [ ] **Permission Fuzzing**: Verify strict umask behavior.
|
|
86
|
+
|
|
87
|
+
## Distribution
|
|
88
|
+
**Goal:** "Supported Platforms Matrix".
|
|
89
|
+
> *Only listed platforms are guaranteed to work; others are best-effort.*
|
|
90
|
+
|
|
91
|
+
- [ ] **Support Matrix**: Explicit table of OS/Version support (macOS 14+, Ubuntu 24.04+, WSL2).
|
|
92
|
+
- [ ] **Windows Deep Integration (Phase 53)**:
|
|
93
|
+
- [ ] **PowerShell Profile**: Mirror Zsh functionality.
|
|
94
|
+
- [ ] **WinGet**: Declarative package management.
|
|
95
|
+
- [ ] **WSL Bridge**: Seamless interop.
|
|
96
|
+
- [ ] **Linux Deep Integration (Phase 55)**:
|
|
97
|
+
- [ ] **Systemd User Units**: User service management.
|
|
98
|
+
- [ ] **Desktop Envs**: GNOME/KDE/Sway configs.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Future
|
|
103
|
+
|
|
104
|
+
### Domain-Specific Environments
|
|
105
|
+
- [ ] **Data Science (Phase 38)**: Conda/Mamba, GPU Config, Jupyter.
|
|
106
|
+
- [ ] **Network Topologies (Phase 56)**: Mesh Networks, Tor, Private VPNs.
|
|
107
|
+
- [ ] **Build Systems (Phase 57)**: Bazel, Maven/Gradle, CMake.
|
|
108
|
+
- [ ] **Financial Operations (Phase 63)**: Cost CLI, Ledger, Stock Tickers.
|
|
109
|
+
- [ ] **Game Development (Phase 64)**: Unity/Unreal CLI, Godot, Blender.
|
|
110
|
+
- [ ] **Scientific Computing (Phase 68)**: Latex, R/Julia, Pandoc.
|
|
111
|
+
- [ ] **Quantum Computing (Phase 69)**: Qiskit, Simulators.
|
|
112
|
+
- [ ] **Bio-Informatics (Phase 70)**: Genomics, PDB, FASTA.
|
|
113
|
+
|
|
114
|
+
### Enterprise & Operations
|
|
115
|
+
- [ ] **Collaborations (Phase 45)**: Pair Programming, Team Sync, ChatOps.
|
|
116
|
+
- [ ] **Database DevOps (Phase 46)**: DB Clients, Local Docker DBs, Migrations.
|
|
117
|
+
- [ ] **Serverless (Phase 47)**: Lambda, Edge Workers, Wasm.
|
|
118
|
+
- [ ] **Enterprise Fleet (Phase 30)**: MDM Profiles, Policy as Code.
|
|
119
|
+
- [ ] **Legal & Procurement (Phase 93)**: RFP Templates, Vendor Management.
|
|
120
|
+
- [ ] **Recruiting & HR (Phase 94)**: Resume Generators, coding interview sets.
|
|
121
|
+
|
|
122
|
+
### Accessibility & Legacy
|
|
123
|
+
- [ ] **Accessibility (Phase 36)**: Screen Reader optimization, High Contrast.
|
|
124
|
+
- [ ] **Legacy Modernization (Phase 42)**: Mainframe/Unix support, PowerShell Core.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Completed
|
|
129
|
+
|
|
130
|
+
### Core Foundations
|
|
131
|
+
- [x] **Universal Config (Chezmoi) (Phase 1)**
|
|
132
|
+
- [x] **Shell Environment (Phase 2)**
|
|
133
|
+
- [x] **Tool Modernization (Phase 3)**
|
|
134
|
+
- [x] **Performance Optimization (Phase 4)**
|
|
135
|
+
|
|
136
|
+
### Hardened Security
|
|
137
|
+
- [x] **Security & Validation (Phase 5)**
|
|
138
|
+
- [x] **Package Management (Phase 6)**
|
|
139
|
+
- [x] **Hardened Security (Phase 21)**
|
|
140
|
+
- [x] **Enterprise Core (Phase 23)**: SLSA, SBOM, Signed Releases.
|
|
141
|
+
- [x] **Legal & Licensing (Phase 92)**: FOSSology, Headers, CLA.
|
|
142
|
+
|
|
143
|
+
### Experience
|
|
144
|
+
- [x] **Documentation (Phase 25)**: DocSite, Interactive Tour.
|
|
145
|
+
- [x] **Self-Healing (Phase 27)**: Doctor, Auto-Repair.
|
|
146
|
+
- [x] **OS Bundling (Phase 26)**: XDG Compliance, Vendor Hooks.
|
|
147
|
+
- [x] **Predictive Shell (Phase 32)**: Autosuggest, Local LLM.
|
|
148
|
+
- [x] **Visual Layer (Phase 34)**: Yazi, Zellij, Ghostty.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Screenshots gallery
|
|
2
|
+
|
|
3
|
+
See how the dotfiles look across different themes and configurations.
|
|
4
|
+
|
|
5
|
+
## Theme gallery
|
|
6
|
+
|
|
7
|
+
### Catppuccin Mocha (default)
|
|
8
|
+
|
|
9
|
+
The default theme, Catppuccin Mocha, gives you a dark palette with warm, muted colors.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Terminal: Ghostty / WezTerm / Alacritty
|
|
13
|
+
Font: JetBrains Mono Nerd Font
|
|
14
|
+
Theme: Catppuccin Mocha
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Key colors:
|
|
18
|
+
- Background: `#1e1e2e`
|
|
19
|
+
- Foreground: `#cdd6f4`
|
|
20
|
+
- Accent Blue: `#89b4fa`
|
|
21
|
+
- Accent Red: `#f38ba8`
|
|
22
|
+
|
|
23
|
+
### Catppuccin Latte (light)
|
|
24
|
+
|
|
25
|
+
A light theme option for daytime use.
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Terminal: Ghostty / WezTerm / Alacritty
|
|
29
|
+
Font: JetBrains Mono Nerd Font
|
|
30
|
+
Theme: Catppuccin Latte
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Key colors:
|
|
34
|
+
- Background: `#eff1f5`
|
|
35
|
+
- Foreground: `#4c4f69`
|
|
36
|
+
- Accent Blue: `#1e66f5`
|
|
37
|
+
- Accent Red: `#d20f39`
|
|
38
|
+
|
|
39
|
+
## Terminal configurations
|
|
40
|
+
|
|
41
|
+
### Ghostty
|
|
42
|
+
|
|
43
|
+
Modern, native terminal with GPU acceleration.
|
|
44
|
+
|
|
45
|
+
Features:
|
|
46
|
+
- Native macOS integration
|
|
47
|
+
- Fast rendering
|
|
48
|
+
- Ligature support
|
|
49
|
+
- Custom key bindings
|
|
50
|
+
|
|
51
|
+
### WezTerm
|
|
52
|
+
|
|
53
|
+
Cross-platform terminal with Lua configuration.
|
|
54
|
+
|
|
55
|
+
Features:
|
|
56
|
+
- GPU acceleration
|
|
57
|
+
- Multiple windows/tabs
|
|
58
|
+
- Hyperlinks
|
|
59
|
+
- Image protocol support
|
|
60
|
+
|
|
61
|
+
### Alacritty
|
|
62
|
+
|
|
63
|
+
Minimal, fast terminal.
|
|
64
|
+
|
|
65
|
+
Features:
|
|
66
|
+
- Fast rendering
|
|
67
|
+
- Simple YAML config
|
|
68
|
+
- Vi mode
|
|
69
|
+
- Cross-platform
|
|
70
|
+
|
|
71
|
+
### Kitty
|
|
72
|
+
|
|
73
|
+
Feature-rich terminal.
|
|
74
|
+
|
|
75
|
+
Features:
|
|
76
|
+
- GPU rendering
|
|
77
|
+
- Ligatures
|
|
78
|
+
- Image support
|
|
79
|
+
- Keyboard protocol
|
|
80
|
+
|
|
81
|
+
## Prompt (Starship)
|
|
82
|
+
|
|
83
|
+
Your Starship prompt displays:
|
|
84
|
+
- Current directory
|
|
85
|
+
- Git branch and status
|
|
86
|
+
- Language versions (when relevant)
|
|
87
|
+
- Command duration
|
|
88
|
+
- Exit status
|
|
89
|
+
|
|
90
|
+
## Neovim
|
|
91
|
+
|
|
92
|
+
Your Neovim configuration includes:
|
|
93
|
+
- Catppuccin theme
|
|
94
|
+
- Treesitter syntax highlighting
|
|
95
|
+
- LSP integration
|
|
96
|
+
- Telescope fuzzy finder
|
|
97
|
+
- File tree (nvim-tree)
|
|
98
|
+
|
|
99
|
+
## tmux
|
|
100
|
+
|
|
101
|
+
Your tmux status bar displays:
|
|
102
|
+
- Session name
|
|
103
|
+
- Current window
|
|
104
|
+
- Host name
|
|
105
|
+
- Date and time
|
|
106
|
+
|
|
107
|
+
## Adding screenshots
|
|
108
|
+
|
|
109
|
+
To contribute screenshots:
|
|
110
|
+
|
|
111
|
+
1. Take a screenshot of your terminal
|
|
112
|
+
2. Save as PNG in `docs/themes/`
|
|
113
|
+
3. Add reference in this file
|
|
114
|
+
4. Submit a PR
|
|
115
|
+
|
|
116
|
+
Recommended screenshot size: 1920x1080 or 2560x1440
|
package/docs/SECRETS.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Secrets
|
|
2
|
+
|
|
3
|
+
You can encrypt secrets using `age` with `chezmoi`.
|
|
4
|
+
|
|
5
|
+
## Get started
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
dot secrets-init
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
The command creates `~/.config/chezmoi/key.txt` and prints your public key. It also updates `~/.config/chezmoi/chezmoi.toml` with the `age` backend settings.
|
|
12
|
+
|
|
13
|
+
> [!IMPORTANT]
|
|
14
|
+
> Verify that `age` is installed before running this command. You can install it through `brew`, `apt`, or your preferred toolchain.
|
|
15
|
+
|
|
16
|
+
## Enable encryption
|
|
17
|
+
|
|
18
|
+
Edit `~/.config/chezmoi/chezmoi.toml` (local only):
|
|
19
|
+
|
|
20
|
+
```toml
|
|
21
|
+
encryption = "age"
|
|
22
|
+
|
|
23
|
+
[age]
|
|
24
|
+
identity = "~/.config/chezmoi/key.txt"
|
|
25
|
+
recipient = "age1..."
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
You can also re-run:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
chezmoi init --apply --promptDefaults
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Edit secrets
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
dot secrets
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The command opens `~/.config/chezmoi/encrypted_secrets.age` for editing and applies changes when you save.
|
|
41
|
+
|
|
42
|
+
## Create secrets
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
dot secrets-create
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Then edit:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
dot secrets
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Encrypt an SSH key
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
dot ssh-key ~/.ssh/id_ed25519
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The command creates a local encrypted file at:
|
|
61
|
+
`~/.config/chezmoi/encrypted_id_ed25519.age`
|
|
62
|
+
|
|
63
|
+
If you want it tracked (encrypted) in your dotfiles, run:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
chezmoi add --encrypt ~/.config/chezmoi/encrypted_id_ed25519.age
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Important notes
|
|
70
|
+
|
|
71
|
+
> [!WARNING]
|
|
72
|
+
> Keep `~/.config/chezmoi/key.txt` private. Never commit this file to a public repository.
|
|
73
|
+
|
|
74
|
+
- You can share the public key freely for encrypting data.
|
|
75
|
+
- Consider rotating keys yearly (or after any potential leak).
|
|
76
|
+
To rotate: generate a new key, update `chezmoi.toml`, re-encrypt your secrets, and delete the old key.
|
package/docs/SECURITY.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
Learn how Dotfiles handles security and system modifications.
|
|
4
|
+
|
|
5
|
+
## Principles
|
|
6
|
+
|
|
7
|
+
- **Opt-In Only**: No hardening is applied unless the `DOTFILES_` variables are set to `1`.
|
|
8
|
+
- **Local Logging**: Actions are logged to `~/.local/share/dotfiles.log`. No telemetry.
|
|
9
|
+
- **No Hidden Sudo**: Sudo is only requested for system managers (apt, etc) and never cached indefinitely.
|
|
10
|
+
|
|
11
|
+
## Hardening
|
|
12
|
+
|
|
13
|
+
| Feature | Env Var | Action (macOS) | Action (Linux) |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| Firewall | `DOTFILES_FIREWALL` | Enables `socketfilterfw` + Stealth Mode | Configures UFW |
|
|
16
|
+
| Telemetry | `DOTFILES_TELEMETRY` | Disables Diagnostic plists | Disables `whoopsie`/`apport` |
|
|
17
|
+
| DNS-over-HTTPS | `DOTFILES_DOH` | Browser-level settings | Configures `resolvectl` |
|
|
18
|
+
| Idle Security | `DOTFILES_LOCK` | Sets screensaver idle time | Sets GNOME/KDE idle-delay |
|
|
19
|
+
|
|
20
|
+
## Secrets
|
|
21
|
+
|
|
22
|
+
Dotfiles uses **age** for encryption.
|
|
23
|
+
|
|
24
|
+
- **Initialization**: `dot secrets-init` creates a key at `~/.config/chezmoi/key.txt`.
|
|
25
|
+
- **Storage**: Secrets are stored as `.age` encrypted files.
|
|
26
|
+
- **Protection**: Private keys are never committed to the repo.
|
|
27
|
+
|
|
28
|
+
## Report an issue
|
|
29
|
+
|
|
30
|
+
If you discover a security vulnerability, please do not open a public issue. Follow the instructions in the Security Policy.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Security Release Checklist
|
|
2
|
+
|
|
3
|
+
Use this checklist before cutting any new release (e.g., `v0.x.x`) to ensure supply-chain integrity.
|
|
4
|
+
|
|
5
|
+
## 1. Supply Chain & Installer
|
|
6
|
+
- [ ] **Pinned Version**: Update `install.sh` `VERSION` variable to match the release tag.
|
|
7
|
+
- [ ] **Docs Sync**: Ensure `README.md` and `.github/PULL_REQUEST_TEMPLATE.md` installer URLs point to the new tag (not `main`).
|
|
8
|
+
- [ ] **Clean Build**: Verify `install.sh` does not curl random scripts from third parties without pinning.
|
|
9
|
+
|
|
10
|
+
## 2. Secrets & Leak Prevention
|
|
11
|
+
- [ ] **SSH Keys**: Scan `dot_ssh/` to ensure no private keys (`id_rsa`, `id_ed25519`) are committed.
|
|
12
|
+
- [ ] **Env Vars**: Check for hardcoded API tokens in `dot_config/` (use `age` encryption or environment variables instead).
|
|
13
|
+
- [ ] **Git History**: Run `git secrets` or similar to scan for accidental commits of credentials.
|
|
14
|
+
|
|
15
|
+
## 3. Platform Safety
|
|
16
|
+
- [ ] **WSL Check**: Verify `install.sh` detects WSL and does not try to install systemd services or macOS defaults.
|
|
17
|
+
- [ ] **Root usage**: Ensure no script requires `sudo` unnecessarily (Principle of Least Privilege).
|
|
18
|
+
|
|
19
|
+
## 4. Toolchain
|
|
20
|
+
- [ ] **Binary Integrity**: Check that `dot_local/bin/` scripts are pure shell/executable and match expected checksums (no binary blobs).
|
|
21
|
+
- [ ] **Dependency Scan**: Run `npm audit` / `cargo audit` if applicable (currently Node.js legacy is removed).
|
|
22
|
+
|
|
23
|
+
## 5. Final Verification
|
|
24
|
+
- [ ] **Docker Test**: Run `docker build -f Dockerfile.test .` to verify clean install.
|
|
25
|
+
- [ ] **Doctor**: Run `dot doctor` locally.
|