@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
package/README.md DELETED
@@ -1,315 +0,0 @@
1
- <p align="right">
2
- <img src="https://kura.pro/dotfiles/v2/images/logos/dotfiles.svg" alt="Dotfiles logo" width="64" />
3
- </p>
4
-
5
- # Dotfiles — A Fast, Idempotent Shell Environment
6
-
7
- [![Build](https://img.shields.io/github/actions/workflow/status/sebastienrousseau/dotfiles/ci.yml?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/actions)
8
- [![Version](https://img.shields.io/badge/Version-v0.2.481-blue?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.481)
9
- [![License](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](LICENSE)
10
- [![Release Downloads](https://img.shields.io/github/downloads/sebastienrousseau/dotfiles/total?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/releases)
11
- [![Last Commit](https://img.shields.io/github/last-commit/sebastienrousseau/dotfiles?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/commits)
12
-
13
- ---
14
-
15
- ## Overview
16
-
17
- Set up your development environment in minutes and keep it consistent across every machine. Dotfiles is a cross‑platform shell distribution managed by [Chezmoi](https://github.com/twpayne/chezmoi) that works on macOS, Linux, and WSL. It is **idempotent** by design: run it once or a hundred times, and the result is always the same.
18
-
19
- Git + templates + guarded scripts = a reproducible shell.
20
-
21
- ---
22
-
23
- ## Table of contents
24
-
25
- - [Why dotfiles](#why-dotfiles)
26
- - [Safety](#safety)
27
- - [Get started](#get-started)
28
- - [Discover](#discover)
29
- - [Install details](#install-details)
30
- - [Make it yours](#make-it-yours)
31
- - [Reference](#reference)
32
- - [How it works](#how-it-works)
33
- - [Roadmap](#roadmap)
34
- - [Contribute](#contribute)
35
- - [Changelog](#changelog)
36
- - [License](#license)
37
-
38
- ---
39
-
40
- ## Why dotfiles
41
-
42
- Dotfiles takes an infrastructure‑oriented approach to managing your shell. It is designed for developers who work across multiple machines and value **daily usability, reproducibility, and auditability.**
43
-
44
- - **The Stack.** Zsh, Neovim, tmux, and AI CLI tools configured with sane defaults so you can start working immediately.
45
- - **Unified Control.** The `dot` CLI wraps common workflows such as syncing, upgrading, and managing secrets.
46
- - **Safety First.** Every system or security change requires explicit opt‑in.
47
- - **Clean Slate.** Source files, generated configs, and system state stay cleanly separated.
48
-
49
-
50
- ## Safety
51
-
52
- This is **infrastructure**, not an ad‑hoc shell script.
53
-
54
- - No destructive actions without explicit opt‑in.
55
- - No background daemons install automatically.
56
- - No system settings change by default.
57
- - System‑level behavior requires explicit opt‑in through environment variables.
58
- - Dotfiles logs all privileged actions to `~/.local/share/dotfiles.log`.
59
-
60
- ---
61
-
62
- ## Get started
63
-
64
- > [!IMPORTANT]
65
- > The installer automatically backs up any existing dotfiles that chezmoi will overwrite (to `~/.dotfiles.bak.<timestamp>/`). It bootstraps `chezmoi` and applies this repo. OS packages install through Chezmoi hooks during the first apply.
66
-
67
- ```bash
68
- # Works on macOS, Linux, and WSL
69
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.481/install.sh)"
70
- exec zsh
71
- ```
72
-
73
- For non‑interactive installs (servers and CI):
74
- ```bash
75
- DOTFILES_NONINTERACTIVE=1 sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.481/install.sh)"
76
- ```
77
-
78
- ---
79
-
80
- ## Discover
81
-
82
- - [Installation Guide](docs/INSTALL.md) — Prerequisites and supported platforms.
83
- - [Operations Guide](docs/OPERATIONS.md) — Common workflows and platform notes.
84
- - [Security Guide](docs/SECURITY.md) — Hardening matrix and logging.
85
- - [Secrets Guide](docs/SECRETS.md) — Age setup and encrypted files.
86
- - [Tools Catalog](docs/TOOLS.md) — Core tools and optional utilities.
87
- - [Dot Utils](docs/UTILS.md) — Aliases and dot CLI helpers.
88
- - [Troubleshooting](docs/TROUBLESHOOTING.md) — Fixes for common issues.
89
-
90
- ---
91
-
92
- ## Install details
93
-
94
- **Prerequisites**
95
- - Required: `git`, `curl`
96
- - Optional: Homebrew (macOS), `apt-get` (Linux/WSL), Nix (toolchain)
97
-
98
- **Update**
99
- ```bash
100
- dot update
101
- ```
102
-
103
- **Non‑interactive apply**
104
- ```bash
105
- DOTFILES_NONINTERACTIVE=1 dot apply
106
- ```
107
-
108
- ## Make it yours
109
-
110
- - [Operations](docs/OPERATIONS.md)
111
- - [Secrets](docs/SECRETS.md)
112
- - [Security](docs/SECURITY.md)
113
- - [Troubleshooting](docs/TROUBLESHOOTING.md)
114
-
115
- ---
116
-
117
- ## Reference
118
-
119
- Run `dot --help` or `dot <command> --help` for inline documentation.
120
-
121
- | Command | Description | Category |
122
- |---|---|---|
123
- | `dot apply` | Apply dotfiles (chezmoi apply) | Core |
124
- | `dot sync` | Alias of apply | Core |
125
- | `dot update` | Pull latest changes and apply | Core |
126
- | `dot add` | Add a file to chezmoi source | Core |
127
- | `dot diff` | Show chezmoi diff (excludes scripts) | Core |
128
- | `dot status` | Show configuration drift | Core |
129
- | `dot remove` | Safely remove a managed file | Core |
130
- | `dot cd` | Print source directory path | Core |
131
- | `dot upgrade` | Update flake, plugins, and dotfiles | Core |
132
- | `dot edit` | Open chezmoi source in your editor | Core |
133
- | `dot docs` | Show repo README | Core |
134
- | `dot --version` | Show version information | Core |
135
- | `dot help` | Show help | Core |
136
- | `dot drift` | Drift dashboard (chezmoi status) | Diagnostics |
137
- | `dot history` | Shell history analysis | Diagnostics |
138
- | `dot doctor` | Check system health and configuration | Diagnostics |
139
- | `dot health` | Comprehensive health dashboard (37 checks) | Diagnostics |
140
- | `dot security-score` | Security assessment with grading | Diagnostics |
141
- | `dot benchmark` | Shell startup benchmark (`--detailed`, `--profile`) | Diagnostics |
142
- | `dot restore` | Restore from backup or git ref | Diagnostics |
143
- | `dot theme` | Switch terminal theme (dark/light) | UX |
144
- | `dot wallpaper` | Apply a wallpaper from your library | UX |
145
- | `dot keys` | Show keybindings catalog | UX |
146
- | `dot learn` | Interactive tour of tools (requires `gum`) | UX |
147
- | `dot fonts` | Install Nerd Fonts | UX |
148
- | `dot sandbox` | Launch a safe sandbox preview | Tools |
149
- | `dot tools` | Show tools or install through Nix | Tools |
150
- | `dot tools install` | Enter Nix development shell | Tools |
151
- | `dot new` | Create a new project from a template | Tools |
152
- | `dot log-rotate` | Rotate `~/.local/share/dotfiles.log` | Tools |
153
- | `dot secrets-init` | Initialise age key for secrets | Secrets |
154
- | `dot secrets` | Edit encrypted secrets | Secrets |
155
- | `dot secrets-create` | Create an encrypted secrets file | Secrets |
156
- | `dot ssh-key` | Encrypt an SSH key locally with age | Secrets |
157
- | `dot backup` | Create a compressed backup of your home directory | Security |
158
- | `dot firewall` | Apply firewall hardening (opt‑in) | Security |
159
- | `dot telemetry` | Disable OS telemetry (opt‑in) | Security |
160
- | `dot dns-doh` | Enable DNS‑over‑HTTPS (opt‑in) | Security |
161
- | `dot encrypt-check` | Check disk encryption status | Security |
162
- | `dot lock-screen` | Enforce lock‑screen idle settings (opt‑in) | Security |
163
- | `dot usb-safety` | Disable automount for removable media | Security |
164
-
165
- ### Developer CLI Tools
166
-
167
- These utilities are installed to `~/.local/bin/`:
168
-
169
- | Tool | Description |
170
- |------|-------------|
171
- | `jsonv` | JSON validator and formatter |
172
- | `yamlv` | YAML validator |
173
- | `epoch` | Unix timestamp converter |
174
- | `b64` | Base64 encoder/decoder |
175
- | `jwt` | JWT token decoder |
176
- | `hex` | Hex viewer/converter |
177
- | `regex` | Regex tester |
178
- | `lorem` | Lorem ipsum generator |
179
- | `uuid` | UUID generator |
180
- | `hash` | MD5/SHA hash calculator |
181
- | `ip` | Show public/local IP addresses |
182
- | `kill-port` | Kill process by port |
183
- | `extract` | Universal archive extraction |
184
- | `update` | Update all system packages |
185
-
186
- **Examples**
187
-
188
- ```bash
189
- # Initialise secrets (prints a public key)
190
- DOTFILES_NONINTERACTIVE=1 dot secrets-init
191
- # Output: Age key created at ~/.config/chezmoi/key.txt
192
- ```
193
-
194
- ### Security changes
195
-
196
- These scripts are **opt‑in** and run only when you set the matching environment variable.
197
- All security changes are logged to `~/.local/share/dotfiles.log`.
198
-
199
- | Script | macOS | Linux |
200
- |---|---|---|
201
- | `dot firewall` | Enables macOS firewall and stealth mode via `socketfilterfw` | Configures UFW defaults and OpenSSH allow |
202
- | `dot telemetry` | Writes `DiagnosticMessagesHistory.plist` flags | Disables `whoopsie`, `apport`, `popularity-contest` |
203
- | `dot dns-doh` | No system change (browser‑level only) | Enables DoH via `resolvectl` with Cloudflare DNS |
204
- | `dot lock-screen` | `com.apple.screensaver` defaults and idleTime | GNOME `gsettings` lock and idle timeout |
205
- | `dot usb-safety` | No system change (manual UI) | GNOME `gsettings` automount off |
206
- | `dot encrypt-check` | Reads FileVault status via `fdesetup` | Detects LUKS via `lsblk` |
207
-
208
- ### Nix
209
-
210
- Nix is **optional**. The repo does **not** install the Nix daemon.
211
-
212
- - Use `nix develop` to enter a reproducible shell environment.
213
- - Use `dot tools` to see the curated utilities overview.
214
- - No toggle replaces Homebrew or Apt with Nix automatically.
215
-
216
- ---
217
-
218
- ### Install guide
219
-
220
- See [docs/INSTALL.md](docs/INSTALL.md) for prerequisites, supported platforms, and the full install flow.
221
-
222
- <p align="right"><a href="#dotfiles--your-shell-everywhere">↑ Back to Top</a></p>
223
-
224
- ## How it works
225
-
226
- If Mermaid does not render, the flow is: `install.sh` → `Chezmoi` → `~/.dotfiles` → `~/.config + ~/.local`.
227
-
228
- ```mermaid
229
- flowchart LR
230
- A["install.sh"] --> B["Chezmoi"]
231
- B --> C["~/.dotfiles (source)"]
232
- B --> D["~/.config + ~/.local (targets)"]
233
- E["dot CLI"] --> B
234
- E --> F["scripts/*"]
235
- ```
236
-
237
- ### Shell startup flow
238
-
239
- ```
240
- .zshenv ─▶ .zshrc ─▶ rc.d/{10..50} ─▶ shell/{00,05,40,50,90} ─▶ [precmd: 91-lazy] ─▶ tool init
241
- │ │ │ │ │ │
242
- │ │ │ │ │ ├─ atuin
243
- XDG zinit options, paths, safety, tool-specific ├─ starship
244
- PATH plugins lazy fnm/nvm functions, aliases (deferred) ├─ zoxide
245
- core aliases (eager) └─ fzf
246
- ```
247
-
248
- Core aliases (~40KB) load at startup. Tool-specific aliases (~137KB) load after the first prompt via a `precmd` hook — keeping shell startup fast while still providing full alias coverage. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full startup sequence and ordering conventions.
249
-
250
- **Repository Layout**
251
-
252
- ```text
253
- ~/.dotfiles/
254
- ├── dot_config/ # Maps to ~/.config/ (app configs)
255
- │ ├── nvim/ # Neovim config (Lua)
256
- │ ├── zsh/ # Zsh config (modular)
257
- │ ├── tmux/ # Tmux config
258
- │ ├── shell/ # Shell logic (aliases, functions, paths)
259
- │ ├── wezterm/ alacritty/ kitty/ ghostty/
260
- │ ├── btop/ fastfetch/ atuin/ yazi/ ...
261
- │ └── docker/ containers/ ...
262
- ├── dot_local/ # Maps to ~/.local/ (CLI tools)
263
- │ └── bin/ # dot CLI and helpers
264
- ├── dot_etc/ # System configs (sudoers, sysctl, Chrome policies; may require sudo)
265
- ├── dot_ssh/ # SSH config templates
266
- ├── templates/ # Project scaffolds used by `dot new`
267
- ├── scripts/ # Install, security, theme, diagnostics
268
- ├── install/ # Chezmoi run_onchange and run_before hooks
269
- ├── nix/ # Optional Nix shell environment
270
- ├── docs/ # Guides, keys, roadmap, architecture
271
- └── install.sh # Bootstrap installer
272
- ```
273
-
274
- ---
275
-
276
- ## Roadmap
277
-
278
- Track progress on [GitHub Issues](https://github.com/sebastienrousseau/dotfiles/issues) and [Milestones](https://github.com/sebastienrousseau/dotfiles/milestones).
279
-
280
- ---
281
-
282
- ## Contribute
283
-
284
- Please read [CONTRIBUTING.md](.github/CONTRIBUTING.md) before opening a pull request.
285
-
286
- For security issues, see [SECURITY.md](.github/SECURITY.md).
287
-
288
- ---
289
-
290
- ## Troubleshooting
291
-
292
- See [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md).
293
-
294
- ---
295
-
296
- ## Changelog
297
-
298
- See [CHANGELOG.md](CHANGELOG.md).
299
-
300
- ---
301
-
302
- ## License
303
-
304
- This project is licensed under the **MIT License**. See [LICENSE](LICENSE).
305
-
306
- Some bundled third‑party dependencies are licensed under GPL‑3.0; the LICENSE file lists them explicitly.
307
-
308
- ---
309
-
310
- <div align="center">
311
-
312
- 🎨 Designed by **[Sebastien Rousseau](https://sebastienrousseau.com/)**
313
- 🚀 Engineered with **[Euxis](https://euxis.co/)** — Enterprise Unified eXecution Intelligence System
314
-
315
- </div>
package/docs/ALIASES.md DELETED
@@ -1,128 +0,0 @@
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
- ```
package/docs/FEATURES.md DELETED
@@ -1,166 +0,0 @@
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