@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,119 +0,0 @@
1
- # =============================================================================
2
- # Brewfile.cli - Core CLI Tools (Cross-Platform)
3
- # Optimized for performance and development workflows
4
- # =============================================================================
5
-
6
- # -----------------------------------------------------------------------------
7
- # Core Utilities
8
- # -----------------------------------------------------------------------------
9
- brew "git"
10
- brew "chezmoi"
11
- brew "jq"
12
- brew "yq"
13
- brew "ripgrep"
14
- brew "fd"
15
- brew "fzf"
16
- brew "bat"
17
- brew "eza"
18
- brew "dust"
19
- brew "duf"
20
- brew "tree"
21
- brew "trash"
22
- brew "rename"
23
-
24
- # -----------------------------------------------------------------------------
25
- # Shell & Prompt
26
- # -----------------------------------------------------------------------------
27
- brew "zsh"
28
- brew "starship"
29
- brew "zoxide"
30
- brew "atuin"
31
- brew "direnv"
32
-
33
- # -----------------------------------------------------------------------------
34
- # Development
35
- # -----------------------------------------------------------------------------
36
- brew "neovim"
37
- brew "vim"
38
- brew "tmux"
39
- brew "lazygit"
40
- brew "git-delta"
41
- brew "gh"
42
- brew "glab"
43
- brew "shellcheck"
44
- brew "shfmt"
45
-
46
- # -----------------------------------------------------------------------------
47
- # Languages & Runtimes (managed by mise)
48
- # -----------------------------------------------------------------------------
49
- brew "mise"
50
- brew "uv" # Fast Python package manager
51
- brew "rustup"
52
- brew "go"
53
-
54
- # -----------------------------------------------------------------------------
55
- # Lua (for Neovim)
56
- # -----------------------------------------------------------------------------
57
- brew "lua"
58
- brew "luajit"
59
- brew "luarocks"
60
- brew "stylua"
61
-
62
- # -----------------------------------------------------------------------------
63
- # System Monitoring
64
- # -----------------------------------------------------------------------------
65
- brew "btop"
66
- brew "procs"
67
- brew "gping"
68
- brew "hyperfine"
69
- brew "fastfetch"
70
-
71
- # -----------------------------------------------------------------------------
72
- # Security & Encryption
73
- # -----------------------------------------------------------------------------
74
- brew "age"
75
- brew "gnupg"
76
- brew "pinentry-mac"
77
- brew "git-crypt"
78
- brew "mkcert"
79
- brew "lynis"
80
-
81
- # -----------------------------------------------------------------------------
82
- # AI & LLM Tools
83
- # -----------------------------------------------------------------------------
84
- brew "ollama"
85
- brew "aichat"
86
- brew "mods"
87
- brew "fabric-ai"
88
-
89
- # -----------------------------------------------------------------------------
90
- # File & Text Processing
91
- # -----------------------------------------------------------------------------
92
- brew "hexyl"
93
- brew "glow"
94
- brew "gum"
95
- brew "tlrc"
96
- brew "imagemagick"
97
- brew "ffmpeg"
98
-
99
- # -----------------------------------------------------------------------------
100
- # Networking
101
- # -----------------------------------------------------------------------------
102
- brew "curl"
103
- brew "wget"
104
- brew "httpie"
105
- brew "mtr"
106
-
107
- # -----------------------------------------------------------------------------
108
- # macOS Specific
109
- # -----------------------------------------------------------------------------
110
- brew "mas"
111
- brew "duti"
112
- brew "topgrade"
113
-
114
- # -----------------------------------------------------------------------------
115
- # Archive & Compression
116
- # -----------------------------------------------------------------------------
117
- brew "p7zip"
118
- brew "unar"
119
- brew "sevenzip"
@@ -1,267 +0,0 @@
1
- # Dotfiles
2
-
3
- Welcome to your universally compatible, high-performance dotfiles configuration, managed by [chezmoi](https://www.chezmoi.io/).
4
-
5
- ## Discover
6
-
7
- - **Universal Support**: Works seamlessly on macOS, Linux (Ubuntu/Debian), and Windows (WSL).
8
- - **Instant Startup**: Optimized with `zcompile` and lazy-loading for <10ms startup time.
9
- - **Modern Core**: Replaces legacy Unix tools with Rust-based alternatives:
10
- - `eza` (ls)
11
- - `bat` (cat)
12
- - `ripgrep` (grep)
13
- - `zoxide` (cd)
14
- - `atuin` (history)
15
- - `yazi` (files)
16
- - `zellij` (multiplexer)
17
- - **Starship Prompt**: A fast, customizable, cross-shell prompt.
18
- - **Optimized Vim**: Vim settings are kept minimal and fast by default.
19
- - **Modular Design**: Configuration is split into small, manageable templates.
20
-
21
- ---
22
-
23
- ## Get started
24
-
25
- ### Install
26
- To install these dotfiles on a new machine, simply run:
27
-
28
- ```bash
29
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.480/install.sh)"
30
- ```
31
-
32
- This command will:
33
- 1. Install `chezmoi`.
34
- 2. Clone this repository.
35
- 3. Install required packages (Homebrew/Apt).
36
- 4. Apply the configurations to your home directory.
37
-
38
- ---
39
-
40
- ## Keep it current
41
-
42
- ### macOS
43
- Updates are handled via [Homebrew](https://brew.sh/).
44
- 1. Edit `~/.dotfiles/dot_config/shell/Brewfile.cli` and `~/.dotfiles/dot_config/shell/Brewfile.cask`.
45
- 2. Run `chezmoi apply`.
46
- - This triggers `run_onchange_darwin_install-packages.sh.tmpl`, which runs `brew bundle` for CLI and GUI packages.
47
- - Optional: `mas` installs App Store apps from `~/.config/mas/masapps.txt`.
48
- - Optional: `duti` applies default app bindings from `~/.config/duti/defaults.duti`.
49
-
50
- ### VS Code extensions
51
- 1. Edit `~/.config/vscode/extensions.txt`.
52
- 2. Run `chezmoi apply` to install missing extensions (if `code` is available).
53
-
54
- ### Linux and WSL
55
- Updates are handled via `apt-get` (Ubuntu/Debian).
56
- 1. Run `chezmoi apply`.
57
- - This checks for package updates defined in `run_onchange_linux_install-packages.sh.tmpl`.
58
- - Optional Flatpak list is read from `~/.config/flatpak/flatpak.list`.
59
-
60
- ### Vim plugins
61
- 1. Edit `~/.dotfiles/dot_vimrc`.
62
- 2. Run `chezmoi apply`.
63
- - This automatically runs `vim +PlugInstall +PlugClean +qa`.
64
-
65
- ---
66
-
67
- ## Migrate
68
-
69
- If you are migrating from an old `~/.dotfiles` setup:
70
-
71
- 1. **Backup**:
72
- ```bash
73
- mv ~/.dotfiles ~/.dotfiles.legacy
74
- cp ~/.zshrc ~/.zshrc.bak
75
- ```
76
-
77
- 2. **Initialize Chezmoi**:
78
- ```bash
79
- git clone https://github.com/sebastienrousseau/dotfiles.git ~/.dotfiles
80
- chezmoi apply
81
- ```
82
-
83
- 3. **Verify**:
84
- - Restart your shell.
85
- - Check that `~/.config/shell` exists (this is where the *generated* scripts live).
86
- - Check that `~/.dotfiles` exists (this is the *source*).
87
-
88
- 4. **Clean Up**:
89
- - Once verified, you can safely delete `~/.dotfiles.legacy` and `.zshrc.bak`.
90
-
91
- ---
92
-
93
- ## Structure
94
-
95
- The configuration is managed in `~/.dotfiles`.
96
-
97
- ```
98
- ~/.dotfiles/
99
- ├── dot_zshrc.tmpl # Main Zsh configuration (template)
100
- ├── dot_vimrc # Vim configuration
101
- ├── dot_tmux.conf # Tmux configuration
102
- ├── run_onchange_...sh.tmpl # Package installation scripts
103
- ├── dot_config/
104
- │ ├── shell/ # Main Config Directory
105
- │ │ ├── aliases.sh.tmpl # Generates aliases.sh (Modular)
106
- │ │ ├── paths.sh.tmpl # Generates paths.sh (Monolithic)
107
- │ │ └── functions.sh.tmpl # Generates functions.sh
108
- │ └── starship.toml.tmpl # Starship configuration
109
- └── .chezmoitemplates/ # Reusable Logic
110
- ├── aliases/ # Alias definitions (grouped by tool)
111
- ├── functions/ # Shell functions
112
- └── paths/ # (Legacy) Path definitions
113
- ```
114
-
115
- ## Use it
116
-
117
- ### Apply changes
118
- After editing any file in `~/.dotfiles`, apply the changes to your home directory:
119
-
120
- ```bash
121
- chezmoi apply
122
- ```
123
-
124
- To see what will change before applying:
125
-
126
- ```bash
127
- chezmoi diff
128
- ```
129
-
130
- ### Dot CLI
131
-
132
- ```bash
133
- dot apply # Apply dotfiles (chezmoi apply)
134
- dot sync # Alias of apply
135
- dot update # Pull latest changes and apply
136
- dot diff # Show diff (excludes scripts/install/tests)
137
- dot remove # Safely remove a managed file
138
- dot drift # Drift dashboard (chezmoi status)
139
- dot history # Shell history analysis
140
- dot tools # Show dot utils
141
- dot keys # Show keybindings
142
- dot tune # Apply OS tuning (opt-in)
143
- dot secrets # Edit encrypted secrets (age)
144
- dot upgrade # Update flake, plugins, and dotfiles
145
- dot new # Scaffold a project template (python/go/node)
146
- dot log-rotate # Rotate ~/.local/share/dotfiles.log
147
- dot doctor
148
- dot sandbox
149
- dot benchmark
150
- dot theme
151
- dot wallpaper
152
- dot ssh-key
153
- dot secrets-create
154
- dot fonts
155
- dot firewall
156
- dot telemetry
157
- dot dns-doh
158
- dot encrypt-check
159
- dot backup
160
- dot lock-screen
161
- dot usb-safety
162
- dot secrets-init
163
- dot edit
164
- dot docs
165
- dot learn # Interactive tour (requires gum)
166
- dot help
167
- ```
168
-
169
- ### Nix
170
-
171
- ```bash
172
- cd ~/.dotfiles
173
- nix develop
174
- ```
175
-
176
- ### Secrets
177
-
178
- ```bash
179
- dot secrets-init
180
- dot secrets
181
- ```
182
-
183
- ### Git identity
184
-
185
- Set your Git identity in the local `chezmoi` config (not committed):
186
-
187
- ```bash
188
- chezmoi init --apply --promptDefaults
189
- ```
190
-
191
- Or edit directly:
192
-
193
- ```bash
194
- ${EDITOR:-nano} ~/.config/chezmoi/chezmoi.toml
195
- ```
196
-
197
- Fields:
198
- - `git_name`
199
- - `git_email`
200
- - `git_signingkey`
201
- - `git_signingformat`
202
-
203
- ### Make it yours
204
-
205
- Set the theme in `.chezmoidata.toml`:
206
-
207
- ```toml
208
- theme = "tokyonight-night"
209
- terminal_font_family = "JetBrains Mono"
210
- terminal_font_size = 12
211
- ```
212
-
213
- Available themes:
214
- - `tokyonight-night` (best dark default)
215
- - `tokyonight-day` (best light default)
216
- - `tokyonight-storm`
217
- - `tokyonight-moon`
218
- - `catppuccin-mocha`
219
- - `dracula`
220
- - `gruvbox-dark`
221
- - `gruvbox-light`
222
- - `nord`
223
- - `onedark`
224
- - `onelight`
225
- - `solarized-dark`
226
- - `solarized-light`
227
- - `catppuccin-mocha`
228
- - `catppuccin-latte`
229
- - `rose-pine`
230
- - `rose-pine-moon`
231
- - `rose-pine-dawn`
232
- - `everforest-dark`
233
- - `everforest-light`
234
- - `kanagawa-wave`
235
- - `kanagawa-dragon`
236
- - `kanagawa-lotus`
237
-
238
- ### DevContainer and Codespaces
239
-
240
- ```
241
- .devcontainer/devcontainer.json
242
- ```
243
-
244
- ### Add aliases
245
- 1. Navigate to `~/.dotfiles/.chezmoitemplates/aliases/`.
246
- 2. Create a new file (e.g., `mytool/mytool.aliases.sh`) or edit an existing one.
247
- 3. Add your aliases.
248
- 4. Run `chezmoi apply`.
249
-
250
- **Note:** Files in `macOS/` are only included on macOS systems.
251
-
252
- ### Add functions
253
- 1. Navigate to `~/.dotfiles/.chezmoitemplates/functions/`.
254
- 2. Create a new `.sh` file.
255
- 3. Define your function with a usage comment.
256
- 4. Run `chezmoi apply`.
257
-
258
- ## Performance
259
- - **Lazy Loading**: Heavy tools (like `nvm`, `rbenv`) are lazy-loaded. They only initialize when you type the command.
260
- - **Zcompile**: Your `.zshrc` and generated config files are automatically compiled to `.zwc` bytecode for faster parsing.
261
-
262
- ## Test
263
- This repository includes GitHub Actions CI to test the configuration on macOS, Ubuntu, and Windows for every Pull Request.
264
-
265
- ---
266
-
267
- Made with ❤️ by [Sebastien Rousseau](https://github.com/sebastienrousseau)
@@ -1,68 +0,0 @@
1
- # shellcheck shell=bash
2
- # zsh_context_suggest.zsh
3
- #
4
- # Context Autosuggest for Predictive Shell
5
- # Detects project type and suggests commands.
6
- #
7
-
8
- suggest_context_commands() {
9
- local suggestions=()
10
-
11
- # 1. Node.js / Javascript / TypeScript
12
- if [[ -f "package.json" ]]; then
13
- suggestions+=("npm start" "npm test" "npm run build")
14
- # Check for yarn
15
- if [[ -f "yarn.lock" ]]; then
16
- suggestions+=("yarn start" "yarn test" "yarn build")
17
- fi
18
- # Check for pnpm
19
- if [[ -f "pnpm-lock.yaml" ]]; then
20
- suggestions+=("pnpm start" "pnpm test")
21
- fi
22
- fi
23
-
24
- # 2. Rust
25
- if [[ -f "Cargo.toml" ]]; then
26
- suggestions+=("cargo run" "cargo test" "cargo build" "cargo check")
27
- fi
28
-
29
- # 3. Go
30
- if [[ -f "go.mod" ]]; then
31
- suggestions+=("go run ." "go test ./..." "go build")
32
- fi
33
-
34
- # 4. Python
35
- if [[ -f "pyproject.toml" ]] || [[ -f "requirements.txt" ]]; then
36
- suggestions+=("python -m venv .venv" "source .venv/bin/activate")
37
- if [[ -f "main.py" ]]; then
38
- suggestions+=("python main.py")
39
- fi
40
- if [[ -f "app.py" ]]; then
41
- suggestions+=("python app.py")
42
- fi
43
- fi
44
-
45
- # 5. Docker
46
- if [[ -f "Dockerfile" ]]; then
47
- suggestions+=("docker build -t . ." "docker run -it <image>")
48
- fi
49
- if [[ -f "docker-compose.yml" ]] || [[ -f "compose.yaml" ]]; then
50
- suggestions+=("docker compose up -d" "docker compose down")
51
- fi
52
-
53
- # Display suggestions
54
- if [[ ${#suggestions[@]} -gt 0 ]]; then
55
- print -P "%F{cyan} Context Suggestions:%f"
56
- for cmd in "${suggestions[@]}"; do
57
- print -P " %F{green}%f $cmd"
58
- done
59
- else
60
- echo "No context-specific suggestions found for this directory."
61
- fi
62
- }
63
-
64
- # Alias for manual invocation
65
- alias suggest="suggest_context_commands"
66
-
67
- # Optional: Hook into chpwd to show suggestions on cd (commented out by default to avoid noise)
68
- # add-zsh-hook chpwd suggest_context_commands
@@ -1,45 +0,0 @@
1
- # shellcheck shell=bash
2
- # error_analysis.zsh
3
- #
4
- # Error Analysis for Predictive Shell
5
- # Uses Local LLM to analyze the last failed command.
6
- #
7
-
8
- analyze_last_error() {
9
- # local exit_code="$?" <-- unused
10
- local hist_entry
11
-
12
- # Get the last history entry (command that just ran)
13
- # fc -ln -1 returns the commands from the last 1 event
14
- hist_entry=$(fc -ln -1)
15
-
16
- if [[ -z "$hist_entry" ]]; then
17
- echo "No history found to analyze."
18
- return 1
19
- fi
20
-
21
- echo " Analyzing failure: '$hist_entry'"
22
-
23
- local prompt="I ran the command: '$hist_entry' and it failed. Please explain why this might have happened and suggest a fix. Be concise."
24
-
25
- # Call the ai_core wrapper
26
- # We call it directly from the path or rely on PATH if configured
27
- if [[ -f "${HOME}/.local/bin/ai_core" ]]; then
28
- "${HOME}/.local/bin/ai_core" query "$prompt"
29
- else
30
- local source_dir="${CHEZMOI_SOURCE_DIR:-${HOME}/.dotfiles}"
31
- if [[ ! -d "$source_dir" && -d "${HOME}/.local/share/chezmoi" ]]; then
32
- source_dir="${HOME}/.local/share/chezmoi"
33
- fi
34
-
35
- if [[ -f "${source_dir}/dot_local/bin/ai_core" ]]; then
36
- # Fallback for dev/testing location before chezmoi apply
37
- "${source_dir}/dot_local/bin/ai_core" query "$prompt"
38
- else
39
- echo "Error: ai_core wrapper not found."
40
- fi
41
- fi
42
- }
43
-
44
- # Alias '??' to analyze data
45
- alias '??'='analyze_last_error'
@@ -1,23 +0,0 @@
1
- # SOPS configuration for encrypted secrets
2
- # https://github.com/getsops/sops
3
-
4
- creation_rules:
5
- # Environment files
6
- - path_regex: \.env\.encrypted$
7
- age: >-
8
- # Add your age public key here after running: age-keygen
9
- # age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
10
-
11
- # API keys and tokens
12
- - path_regex: secrets/.*\.yaml$
13
- age: >-
14
- # age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
15
-
16
- # SSH keys (use chezmoi's native encryption instead for these)
17
- # - path_regex: ssh/.*$
18
- # age: >-
19
- # age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
20
-
21
- # Store age keys in standard location
22
- # Keys should be at: ~/.config/sops/age/keys.txt
23
- # Generate with: age-keygen -o ~/.config/sops/age/keys.txt
@@ -1,124 +0,0 @@
1
- # Starship Configuration
2
- # https://starship.rs/config/
3
-
4
- command_timeout = 500
5
- add_newline = true
6
- {{- $theme := default "catppuccin-mocha" .theme -}}
7
- {{- if eq $theme "catppuccin-latte" }}
8
- palette = "catppuccin_latte"
9
- {{- else }}
10
- palette = "catppuccin_mocha"
11
- {{- end }}
12
-
13
- [character]
14
- success_symbol = "[➜](bold green)"
15
- error_symbol = "[➜](bold red)"
16
-
17
- [package]
18
- disabled = true
19
-
20
- [git_branch]
21
- symbol = "> "
22
- style = "bold yellow"
23
-
24
- [git_status]
25
- disabled = false
26
- style = "bold red"
27
-
28
- [hostname]
29
- ssh_only = false
30
- format = "[$hostname](bold blue) "
31
- disabled = false
32
-
33
- [username]
34
- style_user = "white bold"
35
- style_root = "black bold"
36
- format = "[$user]($style) "
37
- disabled = false
38
-
39
- [directory]
40
- truncation_length = 3
41
- truncation_symbol = "…/"
42
-
43
- [cmd_duration]
44
- min_time = 2000
45
- format = "took [$duration]($style) "
46
-
47
- # ---------- Container-aware fallback ---------- #
48
- # When DOTFILES_CONTAINER=1, show a lightweight indicator so the user
49
- # knows they are inside a container. Uses only ASCII-safe characters
50
- # to avoid rendering issues with missing Nerd Fonts.
51
-
52
- [container]
53
- disabled = false
54
- symbol = "[ctr]"
55
- style = "bold dimmed blue"
56
- format = '[$symbol]($style) '
57
-
58
- [env_var.DOTFILES_CONTAINER]
59
- variable = "DOTFILES_CONTAINER"
60
- symbol = ""
61
- style = "bold dimmed cyan"
62
- format = '[container]($style) '
63
-
64
- [env_var.DOTFILES_CODESPACE]
65
- variable = "DOTFILES_CODESPACE"
66
- symbol = ""
67
- style = "bold dimmed green"
68
- format = '[codespace]($style) '
69
-
70
- [palettes.catppuccin_mocha]
71
- rosewater = "#f5e0dc"
72
- flamingo = "#f2cdcd"
73
- pink = "#f5c2e7"
74
- mauve = "#cba6f7"
75
- red = "#f38ba8"
76
- maroon = "#eba0ac"
77
- peach = "#fab387"
78
- yellow = "#f9e2af"
79
- green = "#a6e3a1"
80
- teal = "#94e2d5"
81
- sky = "#89dceb"
82
- sapphire = "#74c7ec"
83
- blue = "#89b4fa"
84
- lavender = "#b4befe"
85
- text = "#cdd6f4"
86
- subtext1 = "#bac2de"
87
- subtext0 = "#a6adc8"
88
- overlay2 = "#9399b2"
89
- overlay1 = "#7f849c"
90
- overlay0 = "#6c7086"
91
- surface2 = "#585b70"
92
- surface1 = "#45475a"
93
- surface0 = "#313244"
94
- base = "#1e1e2e"
95
- mantle = "#181825"
96
- crust = "#11111b"
97
-
98
- [palettes.catppuccin_latte]
99
- rosewater = "#dc8a78"
100
- flamingo = "#dd7878"
101
- pink = "#ea76cb"
102
- mauve = "#8839ef"
103
- red = "#d20f39"
104
- maroon = "#e64553"
105
- peach = "#fe640b"
106
- yellow = "#df8e1d"
107
- green = "#40a02b"
108
- teal = "#179299"
109
- sky = "#04a5e5"
110
- sapphire = "#209fb5"
111
- blue = "#1e66f5"
112
- lavender = "#7287fd"
113
- text = "#4c4f69"
114
- subtext1 = "#5c5f77"
115
- subtext0 = "#6c6f85"
116
- overlay2 = "#7c7f93"
117
- overlay1 = "#8c8fa1"
118
- overlay0 = "#9ca0b0"
119
- surface2 = "#acb0be"
120
- surface1 = "#bcc0cc"
121
- surface0 = "#ccd0da"
122
- base = "#eff1f5"
123
- mantle = "#e6e9ef"
124
- crust = "#dce0e8"