@sebastienrousseau/dotfiles 0.2.481 → 0.2.499

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 (317) hide show
  1. package/docs/ARCHITECTURE.md +29 -196
  2. package/docs/COMPLIANCE.md +10 -10
  3. package/docs/COPYRIGHT +3 -4
  4. package/docs/OPERATIONS.md +38 -65
  5. package/docs/PLAN.md +3 -3
  6. package/docs/PR_DESCRIPTION.md +85 -84
  7. package/docs/ROADMAP.md +11 -11
  8. package/docs/ROADMAP_legacy.md +556 -0
  9. package/docs/SECURITY_CHECKLIST.md +1 -1
  10. package/docs/TASK.md +4 -4
  11. package/docs/WALKTHROUGH.md +33 -152
  12. package/package.json +17 -5
  13. package/scripts/backup.sh +142 -0
  14. package/scripts/banner.sh +20 -0
  15. package/scripts/benchmark.sh +20 -0
  16. package/scripts/build.sh +41 -0
  17. package/scripts/clean.sh +31 -0
  18. package/scripts/compile.sh +54 -0
  19. package/scripts/copy.sh +108 -0
  20. package/scripts/{tools/detect-collisions.py → detect-collisions.py} +1 -1
  21. package/scripts/doctor.sh +79 -0
  22. package/scripts/dotfiles.sh +63 -0
  23. package/scripts/download.sh +35 -0
  24. package/scripts/help.sh +57 -0
  25. package/scripts/lock-configs.sh +57 -0
  26. package/scripts/package.sh +46 -0
  27. package/scripts/ssh.sh +55 -0
  28. package/scripts/teleport.sh +23 -0
  29. package/scripts/{tests/test-aliases.sh → test-aliases.sh} +3 -3
  30. package/scripts/test_smoke.sh +88 -0
  31. package/scripts/unpack.sh +28 -0
  32. package/scripts/{diagnostics/verify_state.sh → verify_state.sh} +21 -21
  33. package/templates/projects/go/README.md +0 -4
  34. package/templates/projects/node/README.md +0 -4
  35. package/templates/projects/python/README.md +0 -4
  36. package/templates/projects/python/pyproject.toml +0 -15
  37. package/CHANGELOG.md +0 -285
  38. package/LICENSE +0 -1283
  39. package/README.md +0 -315
  40. package/docs/ALIASES.md +0 -128
  41. package/docs/FEATURES.md +0 -166
  42. package/docs/FONTS.md +0 -147
  43. package/docs/INSTALL.md +0 -119
  44. package/docs/KEYS.md +0 -40
  45. package/docs/KEY_ROTATION.md +0 -219
  46. package/docs/LEGACY_ROADMAP.md +0 -142
  47. package/docs/NEOVIM_IDE_GUIDE.md +0 -52
  48. package/docs/README.md +0 -269
  49. package/docs/REPO_AUDIT.md +0 -23
  50. package/docs/SCREENSHOTS.md +0 -116
  51. package/docs/SECRETS.md +0 -76
  52. package/docs/SECURITY.md +0 -30
  53. package/docs/TESTING.md +0 -190
  54. package/docs/TOOLS.md +0 -146
  55. package/docs/TROUBLESHOOTING.md +0 -112
  56. package/docs/UTILS.md +0 -105
  57. package/docs/WSL2_NIX_TROUBLESHOOTING.md +0 -723
  58. package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -101
  59. package/docs/adr/ADR-002-shell-performance.md +0 -121
  60. package/docs/adr/ADR-003-security-first.md +0 -140
  61. package/docs/adr/ADR-004-cli-architecture.md +0 -157
  62. package/docs/adr/ADR-005-chezmoi-choice.md +0 -89
  63. package/docs/adr/ADR-006-shell-selection.md +0 -115
  64. package/docs/adr/README.md +0 -33
  65. package/docs/themes/README.md +0 -20
  66. package/dot_config/aider/aider.conf.yml +0 -32
  67. package/dot_config/alacritty/alacritty.toml.tmpl +0 -483
  68. package/dot_config/ansible/ansible.cfg.tmpl +0 -11
  69. package/dot_config/atuin/config.toml +0 -23
  70. package/dot_config/bat/config +0 -8
  71. package/dot_config/brave-flags.conf.tmpl +0 -7
  72. package/dot_config/btop/btop.conf +0 -16
  73. package/dot_config/btop/themes/tokyonight.theme +0 -34
  74. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  75. package/dot_config/claude/mcp_servers.json +0 -49
  76. package/dot_config/clippy.toml +0 -55
  77. package/dot_config/containers/containers.conf +0 -14
  78. package/dot_config/curl/dot_curlrc +0 -18
  79. package/dot_config/dlv/config.yml +0 -39
  80. package/dot_config/docker/config.json.tmpl +0 -15
  81. package/dot_config/dotfiles/boot/README.md +0 -11
  82. package/dot_config/dotfiles/grub/README.md +0 -11
  83. package/dot_config/dotfiles/lock/README.md +0 -11
  84. package/dot_config/dotfiles/versions.env.tmpl +0 -19
  85. package/dot_config/duf/duf.conf +0 -6
  86. package/dot_config/duti/defaults.duti +0 -5
  87. package/dot_config/emoji/emoji.txt +0 -34
  88. package/dot_config/fastfetch/config.jsonc +0 -28
  89. package/dot_config/firefox/user.js +0 -8
  90. package/dot_config/flatpak/flatpak.list +0 -4
  91. package/dot_config/fontconfig/fonts.conf.tmpl +0 -44
  92. package/dot_config/gem/gemrc +0 -9
  93. package/dot_config/gh/config.yml +0 -12
  94. package/dot_config/ghostty/config.tmpl +0 -661
  95. package/dot_config/git/attributes +0 -12
  96. package/dot_config/git/config.tmpl +0 -77
  97. package/dot_config/git/ignore +0 -27
  98. package/dot_config/gnupg/gpg-agent.conf.tmpl +0 -11
  99. package/dot_config/go/aliases.sh +0 -61
  100. package/dot_config/go/env.sh +0 -24
  101. package/dot_config/go/golangci.yml +0 -118
  102. package/dot_config/go/gopls.json +0 -30
  103. package/dot_config/goose/config.yaml +0 -29
  104. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -305
  105. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -66
  106. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -309
  107. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -21
  108. package/dot_config/htop/htoprc +0 -20
  109. package/dot_config/ice/README.md +0 -13
  110. package/dot_config/inputrc +0 -2
  111. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +0 -5
  112. package/dot_config/just/justfile +0 -104
  113. package/dot_config/k9s/config.yaml.tmpl +0 -65
  114. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  115. package/dot_config/karabiner/karabiner.json +0 -14
  116. package/dot_config/kitty/kitty.conf.tmpl +0 -517
  117. package/dot_config/lazydocker/config.yml +0 -186
  118. package/dot_config/lazygit/config.yml +0 -23
  119. package/dot_config/lsd/config.yaml +0 -19
  120. package/dot_config/mas/masapps.txt +0 -5
  121. package/dot_config/minikube/config.json +0 -13
  122. package/dot_config/mise/config.toml +0 -41
  123. package/dot_config/mongosh/mongoshrc.js +0 -67
  124. package/dot_config/mycli/myclirc +0 -67
  125. package/dot_config/nano/nanorc +0 -28
  126. package/dot_config/ncdu/config +0 -12
  127. package/dot_config/nvim/init.lua +0 -4
  128. package/dot_config/nvim/lazy-lock.json +0 -27
  129. package/dot_config/nvim/lua/config/autocmds.lua +0 -63
  130. package/dot_config/nvim/lua/config/keymaps.lua +0 -87
  131. package/dot_config/nvim/lua/config/lazy.lua +0 -34
  132. package/dot_config/nvim/lua/config/options.lua +0 -48
  133. package/dot_config/nvim/lua/plugins/coding.lua +0 -234
  134. package/dot_config/nvim/lua/plugins/dap.lua +0 -201
  135. package/dot_config/nvim/lua/plugins/editor.lua +0 -59
  136. package/dot_config/nvim/lua/plugins/git.lua +0 -9
  137. package/dot_config/nvim/lua/plugins/lsp.lua +0 -221
  138. package/dot_config/nvim/lua/plugins/markdown.lua +0 -17
  139. package/dot_config/nvim/lua/plugins/rust.lua +0 -33
  140. package/dot_config/nvim/lua/plugins/sessions.lua +0 -32
  141. package/dot_config/nvim/lua/plugins/ui.lua +0 -537
  142. package/dot_config/nvim/snippets/all.lua +0 -9
  143. package/dot_config/nvim/snippets/python.lua +0 -16
  144. package/dot_config/pip/pip.conf.tmpl +0 -32
  145. package/dot_config/pypoetry/config.toml.tmpl +0 -6
  146. package/dot_config/pyrightconfig.json.tmpl +0 -5
  147. package/dot_config/raycast/README.md +0 -13
  148. package/dot_config/redis/redisclirc +0 -41
  149. package/dot_config/shell/00-container-detect.sh +0 -53
  150. package/dot_config/shell/00-core-paths.sh.tmpl +0 -95
  151. package/dot_config/shell/05-core-safety.sh.tmpl +0 -13
  152. package/dot_config/shell/40-ls-colors.sh.tmpl +0 -31
  153. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -10
  154. package/dot_config/shell/90-theme-switch.sh +0 -70
  155. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -35
  156. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -23
  157. package/dot_config/shell/Brewfile +0 -207
  158. package/dot_config/shell/Brewfile.cask +0 -92
  159. package/dot_config/shell/Brewfile.cli +0 -119
  160. package/dot_config/shell/README.md +0 -267
  161. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  162. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  163. package/dot_config/sops/dot_sops.yaml +0 -23
  164. package/dot_config/starship.toml.tmpl +0 -124
  165. package/dot_config/task/Taskfile.yml +0 -86
  166. package/dot_config/tflint/tflint.hcl.tmpl +0 -9
  167. package/dot_config/tmux/tmux.conf.tmpl +0 -181
  168. package/dot_config/topgrade/topgrade.toml.tmpl +0 -42
  169. package/dot_config/vscode/extensions.txt +0 -11
  170. package/dot_config/vscode/settings.json.tmpl +0 -123
  171. package/dot_config/waybar/style.css +0 -8
  172. package/dot_config/wezterm/wezterm.lua.tmpl +0 -236
  173. package/dot_config/wget/wgetrc +0 -12
  174. package/dot_config/yarn/yarnrc.yml.tmpl +0 -36
  175. package/dot_config/yazi/yazi.toml +0 -40
  176. package/dot_config/zellij/config.kdl +0 -79
  177. package/dot_config/zsh/dot_zprofile +0 -13
  178. package/dot_config/zsh/dot_zshenv +0 -6
  179. package/dot_config/zsh/dot_zshrc.tmpl +0 -199
  180. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -5
  181. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  182. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +0 -22
  183. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -123
  184. package/dot_config/zsh/rc.d/40-bell.zsh.tmpl +0 -20
  185. package/dot_config/zsh/rc.d/50-login-fortune.zsh.tmpl +0 -9
  186. package/dot_local/bin/executable_ai_core +0 -130
  187. package/dot_local/bin/executable_b64 +0 -59
  188. package/dot_local/bin/executable_dot +0 -178
  189. package/dot_local/bin/executable_dot_completion +0 -55
  190. package/dot_local/bin/executable_epoch +0 -62
  191. package/dot_local/bin/executable_extract +0 -108
  192. package/dot_local/bin/executable_git-ai-commit +0 -160
  193. package/dot_local/bin/executable_git-ai-diff +0 -154
  194. package/dot_local/bin/executable_hash +0 -123
  195. package/dot_local/bin/executable_hex +0 -79
  196. package/dot_local/bin/executable_ip +0 -37
  197. package/dot_local/bin/executable_jsonv +0 -54
  198. package/dot_local/bin/executable_jwt +0 -78
  199. package/dot_local/bin/executable_kill-port +0 -59
  200. package/dot_local/bin/executable_lorem +0 -103
  201. package/dot_local/bin/executable_regex +0 -96
  202. package/dot_local/bin/executable_tmux-sessionizer +0 -187
  203. package/dot_local/bin/executable_tour +0 -137
  204. package/dot_local/bin/executable_update +0 -108
  205. package/dot_local/bin/executable_uuid +0 -57
  206. package/dot_local/bin/executable_yamlv +0 -39
  207. package/dot_local/bin/executable_zig-install +0 -89
  208. package/dot_local/bin/voice_ops +0 -7
  209. package/dot_local/share/bash-completion/completions/dot +0 -54
  210. package/dot_local/share/zsh/completions/.keep +0 -0
  211. package/install.sh +0 -255
  212. package/scripts/ci/validate-ci-config.sh +0 -222
  213. package/scripts/demo/record.sh +0 -41
  214. package/scripts/diagnostics/benchmark.sh +0 -201
  215. package/scripts/diagnostics/doctor.sh +0 -115
  216. package/scripts/diagnostics/drift-dashboard.sh +0 -26
  217. package/scripts/diagnostics/health.sh +0 -356
  218. package/scripts/diagnostics/history-analysis.sh +0 -77
  219. package/scripts/diagnostics/security-score.sh +0 -392
  220. package/scripts/dot/commands/appearance.sh +0 -63
  221. package/scripts/dot/commands/core.sh +0 -130
  222. package/scripts/dot/commands/diagnostics.sh +0 -100
  223. package/scripts/dot/commands/meta.sh +0 -117
  224. package/scripts/dot/commands/restore.sh +0 -209
  225. package/scripts/dot/commands/secrets.sh +0 -81
  226. package/scripts/dot/commands/security.sh +0 -73
  227. package/scripts/dot/commands/tools.sh +0 -228
  228. package/scripts/dot/lib/utils.sh +0 -72
  229. package/scripts/fonts/install-nerd-fonts.sh +0 -59
  230. package/scripts/fonts/patch-fonts.sh +0 -34
  231. package/scripts/ops/chezmoi-apply.sh +0 -42
  232. package/scripts/ops/chezmoi-diff.sh +0 -14
  233. package/scripts/ops/chezmoi-remove.sh +0 -43
  234. package/scripts/ops/chezmoi-update.sh +0 -16
  235. package/scripts/ops/heal.sh +0 -466
  236. package/scripts/ops/health-check.sh +0 -380
  237. package/scripts/ops/rollback.sh +0 -531
  238. package/scripts/ops/teleport.sh +0 -32
  239. package/scripts/secrets/age-init.sh +0 -69
  240. package/scripts/secrets/create-secrets-file.sh +0 -44
  241. package/scripts/secrets/encrypt-ssh-key.sh +0 -42
  242. package/scripts/security/backup.sh +0 -17
  243. package/scripts/security/dns-doh.sh +0 -29
  244. package/scripts/security/encryption-check.sh +0 -39
  245. package/scripts/security/enforce-policies.sh +0 -339
  246. package/scripts/security/firewall.sh +0 -34
  247. package/scripts/security/lock-configs.sh +0 -57
  248. package/scripts/security/lock-screen.sh +0 -33
  249. package/scripts/security/manage-secrets.sh +0 -415
  250. package/scripts/security/telemetry-kill.sh +0 -28
  251. package/scripts/security/usb-safety.sh +0 -29
  252. package/scripts/tests/README.md +0 -241
  253. package/scripts/tests/benchmark.sh +0 -91
  254. package/scripts/tests/framework/assertions.sh +0 -283
  255. package/scripts/tests/framework/mocks.sh +0 -201
  256. package/scripts/tests/framework/test_runner.sh +0 -189
  257. package/scripts/tests/integration/test_install.sh +0 -237
  258. package/scripts/tests/performance/benchmark_runner.sh +0 -156
  259. package/scripts/tests/performance/regression_check.sh +0 -73
  260. package/scripts/tests/performance/stress_test.sh +0 -65
  261. package/scripts/tests/test-docker.sh +0 -48
  262. package/scripts/tests/unit/test_ai_aliases.sh +0 -158
  263. package/scripts/tests/unit/test_ai_cli_checks.sh +0 -47
  264. package/scripts/tests/unit/test_backup.sh +0 -227
  265. package/scripts/tests/unit/test_case_functions.sh +0 -238
  266. package/scripts/tests/unit/test_cd_aliases.sh +0 -367
  267. package/scripts/tests/unit/test_dot_cli.sh +0 -217
  268. package/scripts/tests/unit/test_encode64.sh +0 -67
  269. package/scripts/tests/unit/test_environment.sh +0 -78
  270. package/scripts/tests/unit/test_extract.sh +0 -163
  271. package/scripts/tests/unit/test_framework_edge_cases.sh +0 -113
  272. package/scripts/tests/unit/test_genpass.sh +0 -298
  273. package/scripts/tests/unit/test_install_edge_cases.sh +0 -167
  274. package/scripts/tests/unit/test_installers.sh +0 -172
  275. package/scripts/tests/unit/test_keygen.sh +0 -68
  276. package/scripts/tests/unit/test_logging.sh +0 -96
  277. package/scripts/tests/unit/test_os_detection_comprehensive.sh +0 -388
  278. package/scripts/tests/unit/test_package_managers_comprehensive.sh +0 -321
  279. package/scripts/tests/unit/test_prependpath.sh +0 -66
  280. package/scripts/tests/unit/test_prependpath_refactored.sh +0 -89
  281. package/scripts/tests/unit/test_rd.sh +0 -230
  282. package/scripts/tests/unit/test_security_fixes.sh +0 -130
  283. package/scripts/tests/unit/test_security_scripts.sh +0 -87
  284. package/scripts/tests/unit/test_template_validation.sh +0 -238
  285. package/scripts/tests/unit/test_utility_functions.sh +0 -144
  286. package/scripts/tests/unit/test_wave1_alias_split.sh +0 -132
  287. package/scripts/tests/unit/test_wave1_ci_pinning.sh +0 -61
  288. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +0 -52
  289. package/scripts/tests/unit/test_wave1_heal_fixes.sh +0 -97
  290. package/scripts/tests/unit/test_wave1_install_gpg.sh +0 -35
  291. package/scripts/tests/unit/test_wave1_zshenv_path.sh +0 -89
  292. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +0 -115
  293. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +0 -75
  294. package/scripts/tests/unit/test_zipf.sh +0 -76
  295. package/scripts/theme/apply-gnome-theme.sh +0 -297
  296. package/scripts/theme/install-boot-logo.sh +0 -61
  297. package/scripts/theme/install-catppuccin-themes.sh +0 -346
  298. package/scripts/theme/install-cursors.sh +0 -24
  299. package/scripts/theme/install-file-icons.sh +0 -25
  300. package/scripts/theme/install-grub-theme.sh +0 -51
  301. package/scripts/theme/install-lock-icon.sh +0 -29
  302. package/scripts/theme/switch.sh +0 -250
  303. package/scripts/theme/wallpaper-rotate.sh +0 -82
  304. package/scripts/theme/wallpaper-sync.sh +0 -42
  305. package/scripts/tools/cmatrix.sh +0 -20
  306. package/scripts/tools/emoji-picker.sh +0 -45
  307. package/scripts/tools/figlet-banner.sh +0 -17
  308. package/scripts/tools/log-rotate.sh +0 -29
  309. package/scripts/tools/lolcat-wrap.sh +0 -18
  310. package/scripts/tools/pipes.sh +0 -47
  311. package/scripts/tuning/linux.sh +0 -175
  312. package/scripts/tuning/macos.sh +0 -46
  313. package/templates/projects/molecule/README.md +0 -7
  314. package/templates/projects/molecule/converge.yml +0 -7
  315. package/templates/projects/molecule/molecule.yml +0 -16
  316. package/templates/projects/packer/README.md +0 -15
  317. package/templates/projects/packer/main.pkr.hcl +0 -15
@@ -1,228 +1,61 @@
1
- # How it works
1
+ # Architecture & Design
2
2
 
3
- v0.2.480 constitutes a portable **shell distribution** that `chezmoi` manages. This document outlines the core architectural decisions and system design.
3
+ v0.2.471 constitutes a portable **Shell Distribution** managed by `chezmoi`. This document outlines the core architectural decisions and system design.
4
4
 
5
- ## Core philosophy
5
+ ## 1. Core Philosophy
6
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.
7
+ - **XDG-First**: configuration is strictly mapped to `~/.config/` (XDG Base Directory specification). We avoid `~/.foo` file sprawl in the home directory.
8
+ - **Single Entrypoint**: `dot_zshenv` acts as the "Bootloader". It is loaded by Zsh immediately and sets up the environment (XDG variables, PATH) before any other initialization occurs.
9
+ - **Zero-Dependency Bootstrap**: The installation process relies only on `curl` and `git` (and `chezmoi`, which it self-installs).
11
10
 
12
- ## Architecture diagram
11
+ ## 2. Directory Structure
13
12
 
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.
13
+ The repository follows standard `chezmoi` conventions:
66
14
 
67
15
  ```text
68
- ~/.dotfiles/
69
- ├── dot_config/ # Maps to ~/.config/
16
+ ~/.local/share/chezmoi/
17
+ ├── dot_config/ # Mapped to ~/.config/
70
18
  │ ├── atuin/ # Shell history
71
19
  │ ├── ghostty/ # Terminal emulator
72
20
  │ ├── shell/ # Core shell logic (aliases, functions)
73
21
  │ ├── 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
22
+ └── zsh/ # Zsh specific config
23
+ ├── dot_local/ # Mapped to ~/.local/
24
+ └── bin/ # User scripts (added to PATH)
25
+ ├── dot_zshenv # The Environment Bootloader
87
26
  ├── .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
27
  └── install.sh # Universal bootstrapping script
97
28
  ```
98
29
 
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
30
+ ## 3. Modern Toolchain
196
31
 
197
- Dotfiles replaces legacy Unix tools with high-performance Rust alternatives:
32
+ We replace distinct Unix legacy tools with high-performance Rust alternatives:
198
33
 
199
- | Legacy | Modern replacement | Purpose |
34
+ | Legacy | Modern Replacement | Purpose |
200
35
  | :--- | :--- | :--- |
201
36
  | `ls` | `eza` | Modern file listing with git integration |
202
37
  | `cat` | `bat` | Syntax highlighted file viewing |
203
- | `grep` | `ripgrep` (`rg`) | High-performance search |
38
+ | `grep` | `ripgrep` (`rg`) | Blazing fast search |
204
39
  | `cd` | `zoxide` | Smart directory jumping |
205
40
  | `history` | `atuin` | Syncable, encrypted SQLite history |
206
- | `find` | `fd` | Developer-friendly filesystem search |
41
+ | `find` | `fd` | User-friendly filesystem search |
207
42
  | `vim` | `neovim` | Lua-extensible IDE |
208
- | `diff` | `delta` | Syntax-highlighted diffs |
209
43
 
210
- ## Predictive shell strategy
44
+ ## 4. Predictive Shell Strategy
211
45
 
212
- - **AI integration**: The shell integrates AI features through the `ai_core` wrapper.
46
+ - **AI Integration**: The shell is "AI Aware" via the `ai_core` wrapper.
213
47
  - **Autosuggestions**: Context-aware completion based on shell history.
214
- - **Error analysis**: Hooks send failed command context to local LLMs or GitHub Copilot for explanation.
48
+ - **Error Analysis**: Hooks to send failed command context to local LLMs or GitHub Copilot for explanation.
215
49
 
216
- ## Security posture
50
+ ## 5. Security Posture
217
51
 
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.
52
+ - **Hardened Defaults**: Shell scripts run with `set -euo pipefail` to fail fast.
53
+ - **Supply Chain Safety**:
54
+ - **Pinned Installation**: Installers reference specific Git tags (e.g., `v0.2.471`), not `main`.
55
+ - **Immutable History**: Logic logic is version controlled and reviewable via `chezmoi diff`.
56
+ - **Audit Logging**: All mutations are logged to `~/.dotfiles_audit.log`.
224
57
 
225
- ## Compatibility
58
+ ## 6. Compatibility
226
59
 
227
60
  - **macOS**: Full support (Homebrew, defaults).
228
61
  - **Linux**: Debian/Ubuntu support (apt-get).
@@ -1,8 +1,8 @@
1
- # Compliance
1
+ # Regulatory Compliance & Security Controls
2
2
 
3
3
  This document maps the dotfiles configuration and tooling to standard regulatory frameworks (SOC 2, ISO 27001, GDPR).
4
4
 
5
- ## Controls
5
+ ## 🛡️ Control Mappings
6
6
 
7
7
  ### SOC 2 Type II
8
8
 
@@ -11,7 +11,7 @@ This document maps the dotfiles configuration and tooling to standard regulatory
11
11
  | **CC6.1** | Logical Access Security | `zsh` restricted permissions, SSH key management via `1Password`/Agents. |
12
12
  | **CC6.8** | Unauthorized Code Protection | `enable-signing` enforces GPG/SSH signed commits. `slsa-framework` workflow. |
13
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`). |
14
+ | **A1.2** | Audit Logs | `dotfiles_audit.log` tracks all configuration applications (`chezmoi apply`). |
15
15
 
16
16
  ### ISO 27001
17
17
 
@@ -25,23 +25,23 @@ This document maps the dotfiles configuration and tooling to standard regulatory
25
25
 
26
26
  | Requirement | Description | Dotfiles Implementation |
27
27
  | :--- | :--- | :--- |
28
- | **Data minimization** | Limit data collection | `privacy-mode` disables CLI telemetry (Dotnet, Brew, Functions). |
28
+ | **Data Minimization** | Limit data collection | `privacy-mode` disables CLI telemetry (Dotnet, Brew, Functions). |
29
29
  | **Integrity** | Protect against tampering | `lock-configs` prevents unauthorized modification of shell history/config. |
30
30
 
31
- ## Security
31
+ ## 🔒 Security Features
32
32
 
33
33
  ### Immutability
34
- Lock critical configuration files to prevent tampering:
34
+ Critical configuration files can be locked to prevent tampering:
35
35
  ```bash
36
36
  lock-configs # Sets chflags uchg (macOS) or chattr +i (Linux)
37
37
  ```
38
38
 
39
- ### Forensic audit
40
- Dotfiles logs all `chezmoi` operations. To view audit trails, run:
39
+ ### Forensic Audit
40
+ All `chezmoi` operations are logged. View audit trails:
41
41
  ```bash
42
42
  dot audit
43
43
  ```
44
44
 
45
- ### Supply chain security
46
- - **SBOM**: The CI pipeline generates an SBOM for every release (SPDX format).
45
+ ### Supply Chain Security
46
+ - **SBOM**: Generated for every release (SPDX format).
47
47
  - **Provenance**: SLSA Level 3 build attestation.
package/docs/COPYRIGHT CHANGED
@@ -1,7 +1,6 @@
1
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.
2
+ * 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.471) - <https://dotfiles.io>
3
+ * Made with in London, UK by Sebastien Rousseau
4
+ * Copyright (c) 2015-2024. All rights reserved
6
5
  * License: MIT
7
6
  */
@@ -1,15 +1,15 @@
1
- # Discover operations
1
+ # Operational Guide
2
2
 
3
- This guide covers the core workflows to keep your dotfiles running well across platforms.
3
+ This document outlines the standard workflows to **Maintain**, **Update**, and **Operate** your dotfiles environment across all supported platforms.
4
4
 
5
5
  ---
6
6
 
7
- ## Platforms
7
+ ## 🏗️ Platform-Specific Operations
8
8
 
9
- ### macOS
10
- **Primary manager**: `Homebrew`
9
+ ### 🍎 macOS
10
+ **Primary Manager**: `Homebrew`
11
11
 
12
- - **Update system**:
12
+ - **Update System**:
13
13
  ```bash
14
14
  # Updates Dotfiles AND Homebrew packages
15
15
  chezmoi update
@@ -17,13 +17,13 @@ This guide covers the core workflows to keep your dotfiles running well across p
17
17
  *Behind the scenes, this runs `brew bundle install` to match the `Brewfile.lock.json`.*
18
18
 
19
19
  - **Troubleshooting**:
20
- - **Permission issues**: `sudo chown -R $(whoami) $(brew --prefix)/*`
20
+ - **Permission Issues**: `sudo chown -R $(whoami) $(brew --prefix)/*`
21
21
  - **Drift**: Run `brew bundle cleanup` to remove unmanaged packages.
22
22
 
23
- ### Linux (Debian, Ubuntu, ZorinOS, Kali)
24
- **Primary manager**: `apt-get` / `snap`
23
+ ### 🐧 Linux (Debian, Ubuntu, ZorinOS, Kali)
24
+ **Primary Manager**: `apt-get` / `snap`
25
25
 
26
- - **Update system**:
26
+ - **Update System**:
27
27
  ```bash
28
28
  # 1. Update OS packages
29
29
  sudo apt update && sudo apt upgrade -y
@@ -31,100 +31,73 @@ This guide covers the core workflows to keep your dotfiles running well across p
31
31
  # 2. Update Dotfiles
32
32
  chezmoi update
33
33
  ```
34
- > [!NOTE]
35
- > On Linux, `chezmoi` focuses on configuration. Package updates work best with the OS package manager to avoid `sudo` conflicts.
34
+ *Note: `chezmoi` on Linux focuses on configuration. Package updates are often best handled by the OS package manager to avoid `sudo` conflicts.*
36
35
 
37
36
  - **Troubleshooting**:
38
- - **Font issues**: If icons are missing, run `./install/provision/run_onchange_50-install-fonts.sh` manually.
39
- - **ZorinOS/GNOME**: Custom keybindings may require `dconf load` if Chezmoi does not apply them automatically.
37
+ - **Font Issues**: If icons are missing, run `./provision/run_onchange_50-install-fonts.sh` manually.
38
+ - **ZorinOS/Gnome**: Custom keybindings may need `dconf load` if not applied automatically.
40
39
 
41
- ### Windows (WSL2)
42
- **Primary manager**: `apt-get` (inside WSL)
40
+ ### 🪟 Windows (WSL2)
41
+ **Primary Manager**: `apt-get` (inside WSL)
43
42
 
44
- - **Update system**: Same as **Linux**.
43
+ - **Update System**: Same as **Linux**.
45
44
 
46
- - **WSL specifics**:
47
- - **Access Windows files**: WSL mounts Windows drives at `/mnt/c/`.
48
- - **Clipboard**: Dotfiles configures `win32yank.exe` automatically for clipboard sharing.
49
- - **Performance**: Keep project files inside the Linux filesystem (`~/projects`), NOT in `/mnt/c/`, for 100x better IO performance.
45
+ - **WSL Specifics**:
46
+ - **Access Windows Files**: Windows drives are mounted at `/mnt/c/`.
47
+ - **Clipboard**: The setup configures `win32yank.exe` automatically for clipboard sharing.
48
+ - **Performance**: We recommend keeping project files inside the Linux filesystem (`~/projects`), NOT in `/mnt/c/`, for 100x better IO performance.
50
49
 
51
50
  ---
52
51
 
53
- ## Workflows
52
+ ## 🔄 Common Workflows
54
53
 
55
- ### Apply changes
54
+ ### Applying Changes
56
55
  After editing any config file:
57
56
  ```bash
58
- dot apply
57
+ chezmoi apply
59
58
  ```
60
59
  *Triggers: `dot_zshrc` reload, audit logging.*
61
60
 
62
- ### Roll back
63
- If an update breaks your setup, revert:
61
+ ### Rolling Back
62
+ If an update breaks your setup:
64
63
  ```bash
65
- cd ~/.dotfiles
64
+ cd ~/.local/share/chezmoi
66
65
  git reset --hard HEAD@{1} # Go back 1 operation
67
66
  chezmoi apply
68
67
  ```
69
68
 
70
- ### Debug
71
- If something runs slow or appears broken:
69
+ ### Debugging
70
+ If something feels slow or broken:
72
71
 
73
- 1. **Check health**:
72
+ 1. **Check Health**:
74
73
  ```bash
75
74
  dot doctor
76
75
  ```
77
- 2. **Verbose mode**:
76
+ 2. **Verbose Mode**:
78
77
  ```bash
79
- DOTFILES_DEBUG=1 dot apply
78
+ DOTFILES_DEBUG=1 chezmoi apply
80
79
  ```
81
80
 
82
81
  ---
83
82
 
84
- ## Tools
85
-
86
- ### Make it yours
87
- - **Wallpaper rotation**:
88
- ```bash
89
- ~/.dotfiles/scripts/theme/wallpaper-rotate.sh --interval 300
90
- ```
91
- - **Cursor theme (Linux)**:
92
- ```bash
93
- DOTFILES_CURSOR_THEME=Papirus ~/.dotfiles/scripts/theme/install-cursors.sh
94
- ```
95
- - **File icons (Linux/macOS)**:
96
- ```bash
97
- DOTFILES_ICON_THEME=Papirus ~/.dotfiles/scripts/theme/install-file-icons.sh
98
- ```
99
- - **Lock icon (Linux)**:
100
- ```bash
101
- DOTFILES_LOCK_ICON=~/.config/dotfiles/lock/icon.png ~/.dotfiles/scripts/theme/install-lock-icon.sh
102
- ```
103
- - **GRUB theme (Linux)**:
104
- ```bash
105
- sudo ~/.dotfiles/scripts/theme/install-grub-theme.sh --apply
106
- ```
107
- - **Boot logo (Linux)**:
108
- ```bash
109
- sudo ~/.dotfiles/scripts/theme/install-boot-logo.sh --apply
110
- ```
83
+ ## 🛠️ Tool-Specific Guides
111
84
 
112
- ### Atuin
85
+ ### 📦 Atuin (History Sync)
113
86
  - **Login**: `atuin login`
114
87
  - **Sync**: `atuin sync`
115
88
  - **Search**: `Ctrl-r` (Global history search)
116
89
 
117
- ### Zoxide
90
+ ### 🚀 Zoxide (Smart CD)
118
91
  - **Jump**: `z project` matches `~/dev/project`
119
92
  - **Query**: `zi` (Interactive selection)
120
93
 
121
- ### Yazi
94
+ ### 🌳 Yazi (File Manager)
122
95
  - **Open**: Type `y`
123
96
  - **Preview**: Spacebar to preview files
124
97
  - **Quit**: `q`
125
98
 
126
99
  ---
127
100
 
128
- ## Security policy
129
- - **GPG/SSH**: All commits use SSH signing.
130
- - **Audit log**: Review `~/.local/share/dotfiles.log` for a timeline of all changes that Dotfiles applied.
101
+ ## 🔐 Security Policy
102
+ - **GPG/SSH**: All commits are SSH signed.
103
+ - **Audit Log**: Review `~/.dotfiles_audit.log` for a timeline of all changes applied to your system.
package/docs/PLAN.md CHANGED
@@ -96,7 +96,7 @@ Establish a "Trust Layer" for the dotfiles ecosystem, ensuring supply chain secu
96
96
  Enable the system to self-diagnose and repair configuration drift.
97
97
 
98
98
  ## Changes
99
- - **Scripts**: Created `scripts/diagnostics/doctor.sh` for system health checks.
99
+ - **Scripts**: Created `scripts/doctor.sh` for system health checks.
100
100
  - **Aliases**: Added `dot doctor`, `dot drift` (`chezmoi verify`), and `dot heal` (`chezmoi apply`).
101
101
 
102
102
  # Phase 51: Regulatory Compliance [COMPLETED]
@@ -144,7 +144,7 @@ Prepare the dotfiles for system-wide deployment and ensure strict adherence to s
144
144
  ## Proposed Changes
145
145
  - **XDG Compliance**: Audit `00-default.paths.sh` to ensure all standard XDG variables are exported.
146
146
  - **Vendor Hooks**: Update `dot_zshrc.tmpl` to source system-level overrides from `/etc/dotfiles/defaults.d/` (Simulates "site-local" config).
147
- - **Bundling**: Create `scripts/core/package.sh` to create a distributable tarball and scaffold `.deb`/`.pkg` generation logic.
147
+ - **Bundling**: Create `scripts/package.sh` to create a distributable tarball and scaffold `.deb`/`.pkg` generation logic.
148
148
 
149
149
  # Phase 24: The Universal Installer (Zero-Dependency) [COMPLETED]
150
150
 
@@ -158,4 +158,4 @@ Provide a frictionless, "one-curl" onboarding experience and capabilities to dep
158
158
  3. Initializes the dotfiles repo.
159
159
  4. Runs `chezmoi apply`.
160
160
  5. Uses ANSI colors for a polished "TUI" feel.
161
- - **Teleportation**: `scripts/ops/teleport.sh` using `chezmoi archive` piped to SSH to ephemeralize configs on remote servers (e.g., `dot teleport user@server`).
161
+ - **Teleportation**: `scripts/teleport.sh` using `chezmoi archive` piped to SSH to ephemeralize configs on remote servers (e.g., `dot teleport user@server`).