@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.
Files changed (489) hide show
  1. package/CHANGELOG.md +285 -0
  2. package/README.md +236 -319
  3. package/docs/ALIASES.md +128 -0
  4. package/docs/ARCHITECTURE.md +229 -0
  5. package/docs/COMPLIANCE.md +47 -0
  6. package/docs/COPYRIGHT +7 -0
  7. package/docs/FEATURES.md +166 -0
  8. package/docs/FONTS.md +147 -0
  9. package/docs/INSTALL.md +119 -0
  10. package/docs/KEYS.md +40 -0
  11. package/docs/KEY_ROTATION.md +219 -0
  12. package/docs/LEGACY_ROADMAP.md +142 -0
  13. package/docs/NEOVIM_IDE_GUIDE.md +52 -0
  14. package/docs/OPERATIONS.md +130 -0
  15. package/docs/PLAN.md +161 -0
  16. package/docs/PR_DESCRIPTION.md +149 -0
  17. package/docs/README.md +269 -0
  18. package/docs/REPO_AUDIT.md +23 -0
  19. package/docs/ROADMAP.md +148 -0
  20. package/docs/SCREENSHOTS.md +116 -0
  21. package/docs/SECRETS.md +76 -0
  22. package/docs/SECURITY.md +30 -0
  23. package/docs/SECURITY_CHECKLIST.md +25 -0
  24. package/docs/TASK.md +99 -0
  25. package/docs/TESTING.md +190 -0
  26. package/docs/TOOLS.md +146 -0
  27. package/docs/TROUBLESHOOTING.md +112 -0
  28. package/docs/UTILS.md +105 -0
  29. package/docs/WALKTHROUGH.md +165 -0
  30. package/docs/WSL2_NIX_TROUBLESHOOTING.md +723 -0
  31. package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
  32. package/docs/adr/ADR-002-shell-performance.md +121 -0
  33. package/docs/adr/ADR-003-security-first.md +140 -0
  34. package/docs/adr/ADR-004-cli-architecture.md +157 -0
  35. package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
  36. package/docs/adr/ADR-006-shell-selection.md +115 -0
  37. package/docs/adr/README.md +33 -0
  38. package/docs/themes/README.md +20 -0
  39. package/dot_config/aider/aider.conf.yml +32 -0
  40. package/dot_config/alacritty/alacritty.toml.tmpl +483 -0
  41. package/dot_config/ansible/ansible.cfg.tmpl +11 -0
  42. package/dot_config/atuin/config.toml +23 -0
  43. package/dot_config/bat/config +8 -0
  44. package/dot_config/brave-flags.conf.tmpl +7 -0
  45. package/dot_config/btop/btop.conf +16 -0
  46. package/dot_config/btop/themes/tokyonight.theme +34 -0
  47. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  48. package/dot_config/claude/mcp_servers.json +49 -0
  49. package/dot_config/clippy.toml +55 -0
  50. package/dot_config/containers/containers.conf +14 -0
  51. package/dot_config/curl/dot_curlrc +18 -0
  52. package/dot_config/dlv/config.yml +39 -0
  53. package/dot_config/docker/config.json.tmpl +15 -0
  54. package/dot_config/dotfiles/boot/README.md +11 -0
  55. package/dot_config/dotfiles/grub/README.md +11 -0
  56. package/dot_config/dotfiles/lock/README.md +11 -0
  57. package/dot_config/dotfiles/versions.env.tmpl +19 -0
  58. package/dot_config/duf/duf.conf +6 -0
  59. package/dot_config/duti/defaults.duti +5 -0
  60. package/dot_config/emoji/emoji.txt +34 -0
  61. package/dot_config/fastfetch/config.jsonc +28 -0
  62. package/dot_config/firefox/user.js +8 -0
  63. package/dot_config/flatpak/flatpak.list +4 -0
  64. package/dot_config/fontconfig/fonts.conf.tmpl +44 -0
  65. package/dot_config/gh/config.yml +12 -0
  66. package/dot_config/ghostty/config.tmpl +661 -0
  67. package/dot_config/git/attributes +12 -0
  68. package/dot_config/git/config.tmpl +77 -0
  69. package/dot_config/git/ignore +27 -0
  70. package/dot_config/gnupg/gpg-agent.conf.tmpl +11 -0
  71. package/dot_config/go/aliases.sh +61 -0
  72. package/dot_config/go/env.sh +24 -0
  73. package/dot_config/go/golangci.yml +118 -0
  74. package/dot_config/go/gopls.json +30 -0
  75. package/dot_config/goose/config.yaml +29 -0
  76. package/dot_config/gtk-3.0/gtk.css.tmpl +305 -0
  77. package/dot_config/gtk-3.0/settings.ini.tmpl +66 -0
  78. package/dot_config/gtk-4.0/gtk.css.tmpl +309 -0
  79. package/dot_config/gtk-4.0/settings.ini.tmpl +21 -0
  80. package/dot_config/htop/htoprc +20 -0
  81. package/dot_config/ice/README.md +13 -0
  82. package/dot_config/inputrc +2 -0
  83. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +5 -0
  84. package/dot_config/just/justfile +104 -0
  85. package/dot_config/k9s/config.yaml.tmpl +65 -0
  86. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  87. package/dot_config/karabiner/karabiner.json +14 -0
  88. package/dot_config/kitty/kitty.conf.tmpl +517 -0
  89. package/dot_config/lazydocker/config.yml +186 -0
  90. package/dot_config/lazygit/config.yml +23 -0
  91. package/dot_config/lsd/config.yaml +19 -0
  92. package/dot_config/mas/masapps.txt +5 -0
  93. package/dot_config/minikube/config.json +13 -0
  94. package/dot_config/mise/config.toml +41 -0
  95. package/dot_config/mongosh/mongoshrc.js +67 -0
  96. package/dot_config/mycli/myclirc +67 -0
  97. package/dot_config/nano/nanorc +28 -0
  98. package/dot_config/ncdu/config +12 -0
  99. package/dot_config/nvim/init.lua +4 -0
  100. package/dot_config/nvim/lazy-lock.json +27 -0
  101. package/dot_config/nvim/lua/config/autocmds.lua +63 -0
  102. package/dot_config/nvim/lua/config/keymaps.lua +87 -0
  103. package/dot_config/nvim/lua/config/lazy.lua +34 -0
  104. package/dot_config/nvim/lua/config/options.lua +48 -0
  105. package/dot_config/nvim/lua/plugins/coding.lua +234 -0
  106. package/dot_config/nvim/lua/plugins/dap.lua +201 -0
  107. package/dot_config/nvim/lua/plugins/editor.lua +59 -0
  108. package/dot_config/nvim/lua/plugins/git.lua +9 -0
  109. package/dot_config/nvim/lua/plugins/lsp.lua +221 -0
  110. package/dot_config/nvim/lua/plugins/markdown.lua +17 -0
  111. package/dot_config/nvim/lua/plugins/rust.lua +33 -0
  112. package/dot_config/nvim/lua/plugins/sessions.lua +32 -0
  113. package/dot_config/nvim/lua/plugins/ui.lua +537 -0
  114. package/dot_config/nvim/snippets/all.lua +9 -0
  115. package/dot_config/nvim/snippets/python.lua +16 -0
  116. package/dot_config/pip/pip.conf.tmpl +32 -0
  117. package/dot_config/pypoetry/config.toml.tmpl +6 -0
  118. package/dot_config/pyrightconfig.json.tmpl +5 -0
  119. package/dot_config/raycast/README.md +13 -0
  120. package/dot_config/redis/redisclirc +41 -0
  121. package/dot_config/shell/00-container-detect.sh +53 -0
  122. package/dot_config/shell/00-core-paths.sh.tmpl +95 -0
  123. package/dot_config/shell/05-core-safety.sh.tmpl +13 -0
  124. package/dot_config/shell/40-ls-colors.sh.tmpl +31 -0
  125. package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
  126. package/dot_config/shell/90-theme-switch.sh +70 -0
  127. package/dot_config/shell/90-ux-aliases.sh.tmpl +35 -0
  128. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +23 -0
  129. package/dot_config/shell/Brewfile +207 -0
  130. package/dot_config/shell/Brewfile.cask +92 -0
  131. package/dot_config/shell/Brewfile.cli +119 -0
  132. package/dot_config/shell/README.md +267 -0
  133. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  134. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  135. package/dot_config/sops/dot_sops.yaml +23 -0
  136. package/dot_config/starship.toml.tmpl +124 -0
  137. package/dot_config/task/Taskfile.yml +86 -0
  138. package/dot_config/tflint/tflint.hcl.tmpl +9 -0
  139. package/dot_config/tmux/tmux.conf.tmpl +181 -0
  140. package/dot_config/topgrade/topgrade.toml.tmpl +42 -0
  141. package/dot_config/vscode/extensions.txt +11 -0
  142. package/dot_config/vscode/settings.json.tmpl +123 -0
  143. package/dot_config/waybar/style.css +8 -0
  144. package/dot_config/wezterm/wezterm.lua.tmpl +236 -0
  145. package/dot_config/wget/wgetrc +12 -0
  146. package/dot_config/yarn/yarnrc.yml.tmpl +36 -0
  147. package/dot_config/yazi/yazi.toml +40 -0
  148. package/dot_config/zellij/config.kdl +79 -0
  149. package/dot_config/zsh/dot_zprofile +13 -0
  150. package/dot_config/zsh/dot_zshenv +6 -0
  151. package/dot_config/zsh/dot_zshrc.tmpl +199 -0
  152. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +5 -0
  153. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  154. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +22 -0
  155. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +123 -0
  156. package/dot_config/zsh/rc.d/40-bell.zsh.tmpl +20 -0
  157. package/dot_config/zsh/rc.d/50-login-fortune.zsh.tmpl +9 -0
  158. package/dot_local/bin/executable_ai_core +130 -0
  159. package/dot_local/bin/executable_b64 +59 -0
  160. package/dot_local/bin/executable_dot +178 -0
  161. package/dot_local/bin/executable_dot_completion +55 -0
  162. package/dot_local/bin/executable_epoch +62 -0
  163. package/dot_local/bin/executable_extract +108 -0
  164. package/dot_local/bin/executable_git-ai-commit +160 -0
  165. package/dot_local/bin/executable_git-ai-diff +154 -0
  166. package/dot_local/bin/executable_hash +123 -0
  167. package/dot_local/bin/executable_hex +79 -0
  168. package/dot_local/bin/executable_ip +37 -0
  169. package/dot_local/bin/executable_jsonv +54 -0
  170. package/dot_local/bin/executable_jwt +78 -0
  171. package/dot_local/bin/executable_kill-port +59 -0
  172. package/dot_local/bin/executable_lorem +103 -0
  173. package/dot_local/bin/executable_regex +96 -0
  174. package/dot_local/bin/executable_tmux-sessionizer +187 -0
  175. package/dot_local/bin/executable_tour +137 -0
  176. package/dot_local/bin/executable_update +108 -0
  177. package/dot_local/bin/executable_uuid +57 -0
  178. package/dot_local/bin/executable_yamlv +39 -0
  179. package/dot_local/bin/executable_zig-install +89 -0
  180. package/dot_local/bin/voice_ops +7 -0
  181. package/dot_local/share/bash-completion/completions/dot +54 -0
  182. package/dot_local/share/zsh/completions/.keep +0 -0
  183. package/install.sh +255 -0
  184. package/package.json +52 -76
  185. package/scripts/ci/validate-ci-config.sh +222 -0
  186. package/scripts/demo/record.sh +41 -0
  187. package/scripts/diagnostics/benchmark.sh +201 -0
  188. package/scripts/diagnostics/doctor.sh +115 -0
  189. package/scripts/diagnostics/drift-dashboard.sh +26 -0
  190. package/scripts/diagnostics/health.sh +356 -0
  191. package/scripts/diagnostics/history-analysis.sh +77 -0
  192. package/scripts/diagnostics/security-score.sh +392 -0
  193. package/scripts/diagnostics/verify_state.sh +60 -0
  194. package/scripts/dot/commands/appearance.sh +63 -0
  195. package/scripts/dot/commands/core.sh +130 -0
  196. package/scripts/dot/commands/diagnostics.sh +100 -0
  197. package/scripts/dot/commands/meta.sh +117 -0
  198. package/scripts/dot/commands/restore.sh +209 -0
  199. package/scripts/dot/commands/secrets.sh +81 -0
  200. package/scripts/dot/commands/security.sh +73 -0
  201. package/scripts/dot/commands/tools.sh +228 -0
  202. package/scripts/dot/lib/utils.sh +72 -0
  203. package/scripts/fonts/install-nerd-fonts.sh +59 -0
  204. package/scripts/fonts/patch-fonts.sh +34 -0
  205. package/scripts/ops/chezmoi-apply.sh +42 -0
  206. package/scripts/ops/chezmoi-diff.sh +14 -0
  207. package/scripts/ops/chezmoi-remove.sh +43 -0
  208. package/scripts/ops/chezmoi-update.sh +16 -0
  209. package/scripts/ops/heal.sh +466 -0
  210. package/scripts/ops/health-check.sh +380 -0
  211. package/scripts/ops/rollback.sh +531 -0
  212. package/scripts/ops/teleport.sh +32 -0
  213. package/scripts/secrets/age-init.sh +69 -0
  214. package/scripts/secrets/create-secrets-file.sh +44 -0
  215. package/scripts/secrets/encrypt-ssh-key.sh +42 -0
  216. package/scripts/security/backup.sh +17 -0
  217. package/scripts/security/dns-doh.sh +29 -0
  218. package/scripts/security/encryption-check.sh +39 -0
  219. package/scripts/security/enforce-policies.sh +339 -0
  220. package/scripts/security/firewall.sh +34 -0
  221. package/scripts/security/lock-configs.sh +57 -0
  222. package/scripts/security/lock-screen.sh +33 -0
  223. package/scripts/security/manage-secrets.sh +415 -0
  224. package/scripts/security/telemetry-kill.sh +28 -0
  225. package/scripts/security/usb-safety.sh +29 -0
  226. package/scripts/tests/README.md +241 -0
  227. package/scripts/tests/benchmark.sh +91 -0
  228. package/scripts/tests/framework/assertions.sh +283 -0
  229. package/scripts/tests/framework/mocks.sh +201 -0
  230. package/scripts/tests/framework/test_runner.sh +189 -0
  231. package/scripts/tests/integration/test_install.sh +237 -0
  232. package/scripts/tests/performance/benchmark_runner.sh +156 -0
  233. package/scripts/tests/performance/regression_check.sh +73 -0
  234. package/scripts/tests/performance/stress_test.sh +65 -0
  235. package/scripts/tests/test-aliases.sh +25 -0
  236. package/scripts/tests/test-docker.sh +48 -0
  237. package/scripts/tests/unit/test_ai_aliases.sh +158 -0
  238. package/scripts/tests/unit/test_ai_cli_checks.sh +47 -0
  239. package/scripts/tests/unit/test_backup.sh +227 -0
  240. package/scripts/tests/unit/test_case_functions.sh +238 -0
  241. package/scripts/tests/unit/test_cd_aliases.sh +367 -0
  242. package/scripts/tests/unit/test_dot_cli.sh +217 -0
  243. package/scripts/tests/unit/test_encode64.sh +67 -0
  244. package/scripts/tests/unit/test_environment.sh +78 -0
  245. package/scripts/tests/unit/test_extract.sh +163 -0
  246. package/scripts/tests/unit/test_framework_edge_cases.sh +113 -0
  247. package/scripts/tests/unit/test_genpass.sh +298 -0
  248. package/scripts/tests/unit/test_install_edge_cases.sh +167 -0
  249. package/scripts/tests/unit/test_installers.sh +172 -0
  250. package/scripts/tests/unit/test_keygen.sh +68 -0
  251. package/scripts/tests/unit/test_logging.sh +96 -0
  252. package/scripts/tests/unit/test_os_detection_comprehensive.sh +388 -0
  253. package/scripts/tests/unit/test_package_managers_comprehensive.sh +321 -0
  254. package/scripts/tests/unit/test_prependpath.sh +66 -0
  255. package/scripts/tests/unit/test_prependpath_refactored.sh +89 -0
  256. package/scripts/tests/unit/test_rd.sh +230 -0
  257. package/scripts/tests/unit/test_security_fixes.sh +130 -0
  258. package/scripts/tests/unit/test_security_scripts.sh +87 -0
  259. package/scripts/tests/unit/test_template_validation.sh +238 -0
  260. package/scripts/tests/unit/test_utility_functions.sh +144 -0
  261. package/scripts/tests/unit/test_wave1_alias_split.sh +132 -0
  262. package/scripts/tests/unit/test_wave1_ci_pinning.sh +61 -0
  263. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +52 -0
  264. package/scripts/tests/unit/test_wave1_heal_fixes.sh +97 -0
  265. package/scripts/tests/unit/test_wave1_install_gpg.sh +35 -0
  266. package/scripts/tests/unit/test_wave1_zshenv_path.sh +89 -0
  267. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +115 -0
  268. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +75 -0
  269. package/scripts/tests/unit/test_zipf.sh +76 -0
  270. package/scripts/theme/apply-gnome-theme.sh +297 -0
  271. package/scripts/theme/install-boot-logo.sh +61 -0
  272. package/scripts/theme/install-catppuccin-themes.sh +346 -0
  273. package/scripts/theme/install-cursors.sh +24 -0
  274. package/scripts/theme/install-file-icons.sh +25 -0
  275. package/scripts/theme/install-grub-theme.sh +51 -0
  276. package/scripts/theme/install-lock-icon.sh +29 -0
  277. package/scripts/theme/switch.sh +250 -0
  278. package/scripts/theme/wallpaper-rotate.sh +82 -0
  279. package/scripts/theme/wallpaper-sync.sh +42 -0
  280. package/scripts/tools/cmatrix.sh +20 -0
  281. package/scripts/tools/detect-collisions.py +84 -0
  282. package/scripts/tools/emoji-picker.sh +45 -0
  283. package/scripts/tools/figlet-banner.sh +17 -0
  284. package/scripts/tools/log-rotate.sh +29 -0
  285. package/scripts/tools/lolcat-wrap.sh +18 -0
  286. package/scripts/tools/pipes.sh +47 -0
  287. package/scripts/tuning/linux.sh +175 -0
  288. package/scripts/tuning/macos.sh +46 -0
  289. package/templates/projects/go/README.md +7 -0
  290. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +7 -0
  291. package/templates/projects/go/go.mod +3 -0
  292. package/templates/projects/molecule/README.md +7 -0
  293. package/templates/projects/molecule/converge.yml +7 -0
  294. package/templates/projects/molecule/molecule.yml +16 -0
  295. package/templates/projects/node/README.md +7 -0
  296. package/templates/projects/node/package.json +10 -0
  297. package/templates/projects/node/src/index.js +2 -0
  298. package/templates/projects/packer/README.md +15 -0
  299. package/templates/projects/packer/main.pkr.hcl +15 -0
  300. package/templates/projects/python/README.md +7 -0
  301. package/templates/projects/python/pyproject.toml +25 -0
  302. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  303. package/templates/projects/python/tests/test_basic.py +2 -0
  304. package/dist/Makefile +0 -57
  305. package/dist/bin/backup.d.ts +0 -3
  306. package/dist/bin/backup.d.ts.map +0 -1
  307. package/dist/bin/backup.js +0 -4
  308. package/dist/bin/backup.js.map +0 -1
  309. package/dist/bin/constants.d.ts +0 -7
  310. package/dist/bin/constants.d.ts.map +0 -1
  311. package/dist/bin/constants.js +0 -2
  312. package/dist/bin/constants.js.map +0 -1
  313. package/dist/bin/copy.d.ts +0 -3
  314. package/dist/bin/copy.d.ts.map +0 -1
  315. package/dist/bin/copy.js +0 -3
  316. package/dist/bin/copy.js.map +0 -1
  317. package/dist/bin/dotfiles.d.ts +0 -3
  318. package/dist/bin/dotfiles.d.ts.map +0 -1
  319. package/dist/bin/dotfiles.js +0 -2
  320. package/dist/bin/dotfiles.js.map +0 -1
  321. package/dist/bin/download.d.ts +0 -3
  322. package/dist/bin/download.d.ts.map +0 -1
  323. package/dist/bin/download.js +0 -2
  324. package/dist/bin/download.js.map +0 -1
  325. package/dist/bin/index.d.ts +0 -2
  326. package/dist/bin/index.d.ts.map +0 -1
  327. package/dist/bin/index.js +0 -1
  328. package/dist/bin/index.js.map +0 -1
  329. package/dist/bin/transfer.d.ts +0 -3
  330. package/dist/bin/transfer.d.ts.map +0 -1
  331. package/dist/bin/transfer.js +0 -4
  332. package/dist/bin/transfer.js.map +0 -1
  333. package/dist/bin/unpack.d.ts +0 -3
  334. package/dist/bin/unpack.d.ts.map +0 -1
  335. package/dist/bin/unpack.js +0 -3
  336. package/dist/bin/unpack.js.map +0 -1
  337. package/dist/filesizes.txt +0 -380
  338. package/dist/lib/README.md +0 -12
  339. package/dist/lib/aliases/README.md +0 -55
  340. package/dist/lib/aliases/archives/README.md +0 -59
  341. package/dist/lib/aliases/archives/archives.aliases.sh +0 -157
  342. package/dist/lib/aliases/cd/README.md +0 -65
  343. package/dist/lib/aliases/cd/cd.aliases.sh +0 -73
  344. package/dist/lib/aliases/chmod/README.md +0 -109
  345. package/dist/lib/aliases/chmod/chmod.aliases.sh +0 -91
  346. package/dist/lib/aliases/clear/README.md +0 -37
  347. package/dist/lib/aliases/clear/clear.aliases.sh +0 -71
  348. package/dist/lib/aliases/configuration/README.md +0 -39
  349. package/dist/lib/aliases/configuration/configuration.aliases.sh +0 -73
  350. package/dist/lib/aliases/default/README.md +0 -40
  351. package/dist/lib/aliases/default/default.aliases.sh +0 -139
  352. package/dist/lib/aliases/dig/README.md +0 -37
  353. package/dist/lib/aliases/dig/dig.aliases.sh +0 -43
  354. package/dist/lib/aliases/disk-usage/README.md +0 -36
  355. package/dist/lib/aliases/disk-usage/du.aliases.sh +0 -84
  356. package/dist/lib/aliases/editor/README.md +0 -53
  357. package/dist/lib/aliases/editor/editor.aliases.sh +0 -26
  358. package/dist/lib/aliases/find/README.md +0 -46
  359. package/dist/lib/aliases/find/find.aliases.sh +0 -60
  360. package/dist/lib/aliases/gcloud/README.md +0 -63
  361. package/dist/lib/aliases/gcloud/gcloud.aliases.sh +0 -335
  362. package/dist/lib/aliases/git/README.md +0 -153
  363. package/dist/lib/aliases/git/git.aliases.sh +0 -544
  364. package/dist/lib/aliases/gnu/README.md +0 -89
  365. package/dist/lib/aliases/gnu/gnucoreutils-aliases.sh +0 -150
  366. package/dist/lib/aliases/heroku/README.md +0 -430
  367. package/dist/lib/aliases/heroku/heroku.aliases.sh +0 -1053
  368. package/dist/lib/aliases/interactive/README.md +0 -55
  369. package/dist/lib/aliases/interactive/interactive.aliases.sh +0 -50
  370. package/dist/lib/aliases/jekyll/README.md +0 -41
  371. package/dist/lib/aliases/jekyll/jekyll.aliases.sh +0 -54
  372. package/dist/lib/aliases/list/README.md +0 -42
  373. package/dist/lib/aliases/list/list.aliases.sh +0 -86
  374. package/dist/lib/aliases/macOS/README.md +0 -42
  375. package/dist/lib/aliases/macOS/macos.aliases.sh +0 -65
  376. package/dist/lib/aliases/make/README.md +0 -32
  377. package/dist/lib/aliases/make/make.aliases.sh +0 -35
  378. package/dist/lib/aliases/mkdir/README.md +0 -30
  379. package/dist/lib/aliases/mkdir/mkdir.aliases.sh +0 -29
  380. package/dist/lib/aliases/npm/README.md +0 -41
  381. package/dist/lib/aliases/npm/npm.aliases.sh +0 -61
  382. package/dist/lib/aliases/permission/README.md +0 -47
  383. package/dist/lib/aliases/permission/permission.aliases.sh +0 -73
  384. package/dist/lib/aliases/pnpm/README.md +0 -53
  385. package/dist/lib/aliases/pnpm/pnpm.aliases.sh +0 -76
  386. package/dist/lib/aliases/ps/README.md +0 -29
  387. package/dist/lib/aliases/ps/ps.aliases.sh +0 -20
  388. package/dist/lib/aliases/rsync/README.md +0 -25
  389. package/dist/lib/aliases/rsync/rsync.aliases.sh +0 -17
  390. package/dist/lib/aliases/rust/README.md +0 -61
  391. package/dist/lib/aliases/rust/rust.aliases.sh +0 -127
  392. package/dist/lib/aliases/subversion/README.md +0 -66
  393. package/dist/lib/aliases/subversion/subversion.aliases.sh +0 -47
  394. package/dist/lib/aliases/sudo/README.md +0 -27
  395. package/dist/lib/aliases/sudo/sudo.aliases.sh +0 -20
  396. package/dist/lib/aliases/tmux/README.md +0 -31
  397. package/dist/lib/aliases/tmux/tmux.aliases.sh +0 -36
  398. package/dist/lib/aliases/update/README.md +0 -38
  399. package/dist/lib/aliases/update/update.aliases.sh +0 -69
  400. package/dist/lib/aliases/uuid/README.md +0 -24
  401. package/dist/lib/aliases/uuid/uuid.aliases.sh +0 -19
  402. package/dist/lib/aliases/wget/README.md +0 -27
  403. package/dist/lib/aliases/wget/wget.aliases.sh +0 -22
  404. package/dist/lib/aliases.sh +0 -50
  405. package/dist/lib/configurations/README.md +0 -18
  406. package/dist/lib/configurations/bash/bashrc +0 -39
  407. package/dist/lib/configurations/curl/cacert.pem +0 -3460
  408. package/dist/lib/configurations/curl/curlrc +0 -56
  409. package/dist/lib/configurations/default/color.sh +0 -24
  410. package/dist/lib/configurations/default/constants.sh +0 -43
  411. package/dist/lib/configurations/default/editor.sh +0 -18
  412. package/dist/lib/configurations/default/prompt.sh +0 -39
  413. package/dist/lib/configurations/input/inputrc +0 -23
  414. package/dist/lib/configurations/jshint/jshintrc +0 -37
  415. package/dist/lib/configurations/nano/nanorc +0 -35
  416. package/dist/lib/configurations/profile/profile +0 -37
  417. package/dist/lib/configurations/tmux/default +0 -18
  418. package/dist/lib/configurations/tmux/display +0 -30
  419. package/dist/lib/configurations/tmux/linux +0 -18
  420. package/dist/lib/configurations/tmux/navigation +0 -30
  421. package/dist/lib/configurations/tmux/panes +0 -10
  422. package/dist/lib/configurations/tmux/theme +0 -29
  423. package/dist/lib/configurations/tmux/tmux +0 -21
  424. package/dist/lib/configurations/vim/vimrc +0 -73
  425. package/dist/lib/configurations/wget/wgetrc +0 -40
  426. package/dist/lib/configurations/zsh/zshrc +0 -51
  427. package/dist/lib/configurations.sh +0 -33
  428. package/dist/lib/functions/README.md +0 -78
  429. package/dist/lib/functions/cdls.sh +0 -14
  430. package/dist/lib/functions/curlheader.sh +0 -22
  431. package/dist/lib/functions/curlstatus.sh +0 -17
  432. package/dist/lib/functions/curltime.sh +0 -33
  433. package/dist/lib/functions/encode64.sh +0 -27
  434. package/dist/lib/functions/environment.sh +0 -38
  435. package/dist/lib/functions/extract.sh +0 -34
  436. package/dist/lib/functions/filehead.sh +0 -4
  437. package/dist/lib/functions/freespace.sh +0 -21
  438. package/dist/lib/functions/genpwd.sh +0 -41
  439. package/dist/lib/functions/goto.sh +0 -16
  440. package/dist/lib/functions/hidehiddenfiles.sh +0 -14
  441. package/dist/lib/functions/hostinfo.sh +0 -27
  442. package/dist/lib/functions/hstats.sh +0 -11
  443. package/dist/lib/functions/httpdebug.sh +0 -9
  444. package/dist/lib/functions/keygen.sh +0 -31
  445. package/dist/lib/functions/last.sh +0 -11
  446. package/dist/lib/functions/logout.sh +0 -12
  447. package/dist/lib/functions/lowercase.sh +0 -29
  448. package/dist/lib/functions/matrix.sh +0 -41
  449. package/dist/lib/functions/mount_read_only.sh +0 -11
  450. package/dist/lib/functions/myproc.sh +0 -9
  451. package/dist/lib/functions/prependpath.sh +0 -21
  452. package/dist/lib/functions/ql.sh +0 -9
  453. package/dist/lib/functions/rd.sh +0 -17
  454. package/dist/lib/functions/remove_disk.sh +0 -11
  455. package/dist/lib/functions/ren.sh +0 -13
  456. package/dist/lib/functions/showhiddenfiles.sh +0 -14
  457. package/dist/lib/functions/size.sh +0 -15
  458. package/dist/lib/functions/stopwatch.sh +0 -15
  459. package/dist/lib/functions/uppercase.sh +0 -29
  460. package/dist/lib/functions/view-source.sh +0 -9
  461. package/dist/lib/functions/vscode.sh +0 -32
  462. package/dist/lib/functions/whoisport.sh +0 -14
  463. package/dist/lib/functions/zipf.sh +0 -16
  464. package/dist/lib/functions.sh +0 -32
  465. package/dist/lib/history.sh +0 -142
  466. package/dist/lib/paths/ant/ant.paths.sh +0 -15
  467. package/dist/lib/paths/default/default.paths.sh +0 -19
  468. package/dist/lib/paths/homebrew/homebrew.paths.sh +0 -27
  469. package/dist/lib/paths/java/java.paths.sh +0 -19
  470. package/dist/lib/paths/maven/maven.paths.sh +0 -18
  471. package/dist/lib/paths/node/node.paths.sh +0 -15
  472. package/dist/lib/paths/nvm/nvm.paths.sh +0 -23
  473. package/dist/lib/paths/pnpm/pnpm.paths.sh +0 -15
  474. package/dist/lib/paths/python/python.paths.sh +0 -36
  475. package/dist/lib/paths/ruby/ruby.paths.sh +0 -25
  476. package/dist/lib/paths/tmux/tmux.paths.sh +0 -12
  477. package/dist/lib/paths.sh +0 -33
  478. package/dist/scripts/backup.sh +0 -95
  479. package/dist/scripts/banner.sh +0 -20
  480. package/dist/scripts/build.sh +0 -41
  481. package/dist/scripts/clean.sh +0 -31
  482. package/dist/scripts/compile.sh +0 -54
  483. package/dist/scripts/copy.sh +0 -108
  484. package/dist/scripts/dotfiles.sh +0 -63
  485. package/dist/scripts/download.sh +0 -35
  486. package/dist/scripts/help.sh +0 -57
  487. package/dist/scripts/ssh.sh +0 -55
  488. package/dist/scripts/unpack.sh +0 -28
  489. /package/{dist/lib/configurations → dot_config}/gem/gemrc +0 -0
@@ -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
@@ -0,0 +1,7 @@
1
+ /*
2
+ * 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.480) - <https://dotfiles.io>
3
+ * Made With ❤️ in London, United Kingdom
4
+ * Designed by Sebastien Rousseau
5
+ * Copyright (c) 2015-2026. All rights reserved.
6
+ * License: MIT
7
+ */
@@ -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