@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/docs/FONTS.md DELETED
@@ -1,147 +0,0 @@
1
- # Font configuration
2
-
3
- Learn about font setup, rendering, and the fonts included with these dotfiles.
4
-
5
- ## Recommended fonts
6
-
7
- ### Primary: JetBrains Mono Nerd Font
8
-
9
- Your default font is JetBrains Mono with Nerd Font patches.
10
-
11
- Features:
12
- - Designed for code readability
13
- - Ligature support
14
- - Powerline/Nerd Font glyphs
15
- - Clear distinction between similar characters (0/O, 1/l/I)
16
-
17
- ### Alternatives
18
-
19
- | Font | Style | Best for |
20
- |------|-------|----------|
21
- | Fira Code | Modern | People who enjoy ligatures |
22
- | Cascadia Code | Microsoft | People who use VS Code |
23
- | Hack | Classic | People who prefer a classic look |
24
- | Source Code Pro | Adobe | Clean aesthetic |
25
- | Iosevka | Narrow | Small screens |
26
-
27
- ## Installation
28
-
29
- ### macOS (Homebrew)
30
-
31
- ```bash
32
- # Install via Homebrew
33
- brew tap homebrew/cask-fonts
34
- brew install --cask font-jetbrains-mono-nerd-font
35
-
36
- # Or use dot CLI
37
- dot fonts install
38
- ```
39
-
40
- ### Linux (manual)
41
-
42
- ```bash
43
- # Download from Nerd Fonts
44
- wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/JetBrainsMono.zip
45
-
46
- # Extract to fonts directory
47
- unzip JetBrainsMono.zip -d ~/.local/share/fonts/
48
-
49
- # Update font cache
50
- fc-cache -fv
51
- ```
52
-
53
- ### Using the font patcher
54
-
55
- To patch your own fonts with Nerd Font glyphs:
56
-
57
- ```bash
58
- # Use the included script
59
- ~/.dotfiles/scripts/fonts/patch-fonts.sh /path/to/font.ttf
60
- ```
61
-
62
- ## Font rendering
63
-
64
- ### Sample characters
65
-
66
- ```
67
- ABCDEFGHIJKLMNOPQRSTUVWXYZ
68
- abcdefghijklmnopqrstuvwxyz
69
- 0123456789
70
- !@#$%^&*()_+-=[]{}|;':",.<>?/
71
-
72
- Ligatures: -> => == != <= >= && || :: ...
73
- Powerline:
74
- Nerd Font:
75
- ```
76
-
77
- ### Ambiguous characters
78
-
79
- The font configuration provides clear distinction between:
80
-
81
- ```
82
- 0 vs O (zero vs capital O)
83
- 1 vs l vs I (one vs lowercase L vs capital I)
84
- ` vs ' (backtick vs single quote)
85
- " vs " (straight vs curly quotes)
86
- ```
87
-
88
- ## Terminal configuration
89
-
90
- ### Ghostty
91
-
92
- ```
93
- font-family = JetBrains Mono Nerd Font
94
- font-size = 14
95
- ```
96
-
97
- ### WezTerm
98
-
99
- ```lua
100
- config.font = wezterm.font("JetBrains Mono Nerd Font")
101
- config.font_size = 14.0
102
- ```
103
-
104
- ### Alacritty
105
-
106
- ```yaml
107
- font:
108
- normal:
109
- family: JetBrains Mono Nerd Font
110
- size: 14.0
111
- ```
112
-
113
- ### Kitty
114
-
115
- ```
116
- font_family JetBrains Mono Nerd Font
117
- font_size 14.0
118
- ```
119
-
120
- ## Font size recommendations
121
-
122
- | Display | Size |
123
- |---------|------|
124
- | 13" laptop | 12-13pt |
125
- | 15" laptop | 13-14pt |
126
- | 24" monitor | 14-15pt |
127
- | 27" 4K monitor | 15-16pt |
128
-
129
- ## Troubleshooting
130
-
131
- ### Fonts not displaying correctly
132
-
133
- 1. Verify font is installed: `fc-list | grep JetBrains`
134
- 2. Restart terminal application
135
- 3. Check terminal font settings
136
-
137
- ### Nerd Font icons missing
138
-
139
- 1. Verify you are using a Nerd Font variant
140
- 2. Confirm the terminal supports the Unicode range
141
- 3. Try a different Nerd Font
142
-
143
- ### Ligatures not working
144
-
145
- 1. Enable ligatures in terminal settings
146
- 2. Some terminals do not support ligatures (for example, Terminal.app)
147
- 3. Try Ghostty, WezTerm, or Kitty
package/docs/INSTALL.md DELETED
@@ -1,119 +0,0 @@
1
- # Get started
2
-
3
- This guide covers supported platforms, prerequisites, and the standard install path.
4
-
5
- ## Supported platforms
6
-
7
- - macOS (Homebrew)
8
- - Ubuntu/Debian (apt)
9
- - WSL2 (Ubuntu/Debian)
10
-
11
- ## Prerequisites
12
-
13
- Required:
14
- - `git`
15
- - `curl`
16
-
17
- Optional (feature-dependent):
18
- - Homebrew (macOS)
19
- - `apt-get` (Linux)
20
- - Docker or Podman (sandbox)
21
- - Nix (optional toolchain)
22
- - gum (required for `dot learn`)
23
-
24
- ## Install
25
-
26
- ### One-liner (recommended)
27
-
28
- ```bash
29
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.480/install.sh)"
30
- exec zsh
31
- ```
32
-
33
- ### Manual installation
34
-
35
- ```bash
36
- # Clone the repository
37
- git clone https://github.com/sebastienrousseau/dotfiles.git ~/.dotfiles
38
-
39
- # Install chezmoi and apply
40
- sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply sebastienrousseau/dotfiles
41
-
42
- # Restart shell
43
- exec zsh
44
- ```
45
-
46
- ### Using Nix (alternative)
47
-
48
- If you have Nix with flakes enabled:
49
-
50
- ```bash
51
- # Enter development shell with all tools
52
- nix develop ~/.dotfiles/nix
53
-
54
- # Or install the dot-utils meta-package
55
- nix profile install ~/.dotfiles/nix#dot-utils
56
- ```
57
-
58
- ## What happens
59
-
60
- 1. The installer downloads a pinned Chezmoi bootstrap and applies this repo.
61
- 2. Chezmoi hooks install OS packages, fonts, and optional apps.
62
- 3. The `dot` CLI becomes available in `~/.local/bin`.
63
- 4. Chezmoi symlinks shell configuration to your home directory.
64
-
65
- ## Post-install verification
66
-
67
- ```bash
68
- # Check dot CLI is available
69
- dot --version
70
-
71
- # Run health checks
72
- dot doctor
73
-
74
- # View available commands
75
- dot help
76
- ```
77
-
78
- ## Optional: gum
79
-
80
- `gum` is required for interactive features like `dot learn`.
81
-
82
- macOS:
83
- ```bash
84
- brew install gum
85
- ```
86
-
87
- Linux (snap):
88
- ```bash
89
- sudo snap install gum --classic
90
- ```
91
-
92
- Linux (Go toolchain):
93
- ```bash
94
- go install github.com/charmbracelet/gum@latest
95
- ```
96
-
97
- ## Update
98
-
99
- ```bash
100
- dot update
101
- ```
102
-
103
- ## Uninstall
104
-
105
- ```bash
106
- # Remove chezmoi-managed files
107
- chezmoi purge
108
-
109
- # Remove the dotfiles repository
110
- rm -rf ~/.dotfiles
111
-
112
- # Remove local data
113
- rm -rf ~/.local/share/chezmoi
114
- rm -rf ~/.local/share/dotfiles.log
115
- ```
116
-
117
- ## Troubleshooting
118
-
119
- If install hooks fail, check `~/.local/share/dotfiles.log` and review `docs/TROUBLESHOOTING.md`.
package/docs/KEYS.md DELETED
@@ -1,40 +0,0 @@
1
- # Keybindings
2
-
3
- This is the single source of truth for navigation and muscle-memory shortcuts
4
- across the dotfiles stack. Keep this concise and consistent.
5
-
6
- ## Zsh
7
- - Ctrl+R: History search (fzf/atuin if enabled)
8
- - Ctrl+P / Ctrl+N: History prefix search (up/down)
9
-
10
- ## Tmux (prefix = `Ctrl-a`)
11
- - Prefix + r: Reload config
12
- - Prefix + N: New window
13
- - Prefix + a / Tab: Last window
14
- - Prefix + %: Split vertical (current path)
15
- - Prefix + ": Split horizontal (current path)
16
- - Prefix + \\: Split vertical (alt)
17
- - Prefix + |: Split horizontal (alt)
18
- - Prefix + h/j/k/l: Move between panes (vim-style)
19
- - Prefix + z: Toggle zoom pane
20
- - Prefix + H/J/K/L: Resize pane (left/down/up/right)
21
-
22
- ## Neovim (leader = `Space`)
23
- - Ctrl-h/j/k/l: Move between splits
24
- - Ctrl-s: Save file
25
- - Leader + ff: Find files (Telescope)
26
- - Leader + fg: Live grep (Telescope)
27
- - Leader + q: Quit
28
-
29
- ## Shell Tools
30
- - z <dir>: Jump to a directory (zoxide)
31
- - lg: Open lazygit
32
-
33
- ## Terminal
34
- - Ctrl+Shift+C: Copy
35
- - Ctrl+Shift+V: Paste
36
-
37
- ---
38
-
39
- Update this file when bindings change. If you add a new tool, add its shortcuts
40
- here and keep them aligned with the global conventions.
@@ -1,219 +0,0 @@
1
- # Key Rotation Guide
2
-
3
- This guide covers rotating encryption keys for secrets managed by Age and SOPS.
4
-
5
- ## Age Key Rotation
6
-
7
- ### When to Rotate
8
-
9
- - **Annually**: As a preventive measure
10
- - **After compromise**: If you suspect key exposure
11
- - **Personnel change**: When team members leave
12
- - **Device loss**: If a device with the key is lost/stolen
13
-
14
- ### Rotation Procedure
15
-
16
- #### 1. Generate New Key
17
-
18
- ```bash
19
- # Create new age key
20
- age-keygen -o ~/.config/chezmoi/key-new.txt
21
-
22
- # Note the public key (starts with "age1...")
23
- cat ~/.config/chezmoi/key-new.txt | grep "public key"
24
- ```
25
-
26
- #### 2. Re-encrypt All Secrets
27
-
28
- ```bash
29
- # List all encrypted files
30
- chezmoi managed --include=encrypted
31
-
32
- # For each encrypted file, decrypt with old key and re-encrypt with new
33
- for file in $(chezmoi managed --include=encrypted); do
34
- # Decrypt with old key
35
- chezmoi cat "$file" > "/tmp/$(basename $file).dec"
36
-
37
- # Re-encrypt with new key (update chezmoi config first)
38
- # See step 3
39
- done
40
- ```
41
-
42
- #### 3. Update Chezmoi Configuration
43
-
44
- Edit `~/.config/chezmoi/chezmoi.toml`:
45
-
46
- ```toml
47
- [age]
48
- identity = "~/.config/chezmoi/key-new.txt"
49
- recipient = "age1your_new_public_key_here"
50
- ```
51
-
52
- #### 4. Re-add Encrypted Files
53
-
54
- ```bash
55
- # Re-add each secret with new encryption
56
- chezmoi add --encrypt ~/.ssh/id_ed25519
57
- chezmoi add --encrypt ~/.config/secrets/api-keys.env
58
- ```
59
-
60
- #### 5. Verify and Clean Up
61
-
62
- ```bash
63
- # Verify decryption works
64
- chezmoi cat ~/.ssh/id_ed25519
65
-
66
- # Archive old key (store securely offline)
67
- mv ~/.config/chezmoi/key.txt ~/.config/chezmoi/key-$(date +%Y%m%d)-archived.txt
68
-
69
- # Rename new key
70
- mv ~/.config/chezmoi/key-new.txt ~/.config/chezmoi/key.txt
71
-
72
- # Commit changes
73
- cd ~/.dotfiles
74
- git add -A
75
- git commit -m "chore(secrets): rotate age encryption key"
76
- ```
77
-
78
- ### Emergency Rotation (Compromised Key)
79
-
80
- ```bash
81
- # 1. Immediately generate new key
82
- age-keygen -o ~/.config/chezmoi/key-emergency.txt
83
-
84
- # 2. Re-encrypt ALL secrets (prioritize most sensitive)
85
- # 3. Revoke/rotate any API keys, tokens that were encrypted
86
- # 4. Update any shared secrets with team members
87
- # 5. Document the incident
88
- ```
89
-
90
- ---
91
-
92
- ## SOPS Key Rotation
93
-
94
- ### Overview
95
-
96
- SOPS supports multiple key types. This covers Age keys (recommended) and GPG keys.
97
-
98
- ### SOPS with Age Keys
99
-
100
- #### Generate New Key
101
-
102
- ```bash
103
- age-keygen -o ~/.config/sops/age/keys-new.txt
104
- ```
105
-
106
- #### Update .sops.yaml
107
-
108
- ```yaml
109
- creation_rules:
110
- - path_regex: \.env$
111
- age: >-
112
- age1new_key_here,
113
- age1old_key_here # Keep old key temporarily for decryption
114
- ```
115
-
116
- #### Re-encrypt Files
117
-
118
- ```bash
119
- # Rotate key for a single file
120
- sops updatekeys secrets.env
121
-
122
- # Or re-encrypt entirely
123
- sops -d secrets.env | sops -e /dev/stdin > secrets.env.new
124
- mv secrets.env.new secrets.env
125
- ```
126
-
127
- #### Remove Old Key
128
-
129
- After confirming all files are re-encrypted:
130
-
131
- 1. Remove old key from `.sops.yaml`
132
- 2. Archive old key securely
133
- 3. Commit changes
134
-
135
- ### SOPS with GPG Keys
136
-
137
- ```bash
138
- # Generate new GPG key
139
- gpg --full-generate-key
140
-
141
- # Export fingerprint
142
- gpg --list-keys --keyid-format LONG
143
-
144
- # Update .sops.yaml with new fingerprint
145
- # Re-encrypt files
146
- sops updatekeys <file>
147
- ```
148
-
149
- ---
150
-
151
- ## Automation Scripts
152
-
153
- ### Check Key Age
154
-
155
- ```bash
156
- #!/usr/bin/env bash
157
- # check-key-age.sh - Alert if keys are older than 365 days
158
-
159
- KEY_FILE="${HOME}/.config/chezmoi/key.txt"
160
- MAX_AGE_DAYS=365
161
-
162
- if [[ -f "$KEY_FILE" ]]; then
163
- key_age=$(( ($(date +%s) - $(stat -c %Y "$KEY_FILE")) / 86400 ))
164
-
165
- if [[ $key_age -gt $MAX_AGE_DAYS ]]; then
166
- echo "⚠️ Age key is ${key_age} days old. Consider rotation."
167
- exit 1
168
- else
169
- echo "✓ Age key is ${key_age} days old (limit: ${MAX_AGE_DAYS})"
170
- fi
171
- fi
172
- ```
173
-
174
- ### Automated Backup Before Rotation
175
-
176
- ```bash
177
- #!/usr/bin/env bash
178
- # backup-before-rotation.sh
179
-
180
- BACKUP_DIR="${HOME}/.local/share/dotfiles/key-backups"
181
- mkdir -p "$BACKUP_DIR"
182
-
183
- # Backup current key
184
- cp ~/.config/chezmoi/key.txt "$BACKUP_DIR/key-$(date +%Y%m%d_%H%M%S).txt"
185
-
186
- # Encrypt backup with passphrase
187
- gpg --symmetric --cipher-algo AES256 "$BACKUP_DIR/key-$(date +%Y%m%d_%H%M%S).txt"
188
-
189
- # Remove unencrypted backup
190
- rm "$BACKUP_DIR/key-$(date +%Y%m%d_%H%M%S).txt"
191
-
192
- echo "Key backed up to $BACKUP_DIR (encrypted)"
193
- ```
194
-
195
- ---
196
-
197
- ## Best Practices
198
-
199
- 1. **Never commit unencrypted keys** - Use `.gitignore` properly
200
- 2. **Store backups offline** - USB drive in secure location
201
- 3. **Use hardware keys when possible** - YubiKey with age-plugin-yubikey
202
- 4. **Document rotation dates** - Keep a log of when keys were rotated
203
- 5. **Test decryption** - Always verify after rotation
204
- 6. **Notify team members** - If using shared secrets
205
-
206
- ## Recovery Procedures
207
-
208
- If you lose access to your key:
209
-
210
- 1. **Check backups** - Offline storage, password manager
211
- 2. **Check other machines** - Key may exist on another device
212
- 3. **Re-create secrets** - As last resort, regenerate API keys, tokens, etc.
213
-
214
- ## Related Documentation
215
-
216
- - [SECRETS.md](SECRETS.md) - Secrets management overview
217
- - [SECURITY.md](SECURITY.md) - Security hardening guide
218
- - [Age documentation](https://github.com/FiloSottile/age)
219
- - [SOPS documentation](https://github.com/getsops/sops)
@@ -1,142 +0,0 @@
1
- # The Ultimate Developer Environment Roadmap
2
-
3
- This roadmap outlines the path to a high-performance, super-efficient development machine designed for Rust, Python, and AI on Linux (Zorin OS / T2 Mac hardware).
4
-
5
- ## Phase 1: Foundation (Completed)
6
- - **Core Shell**: Zsh + Oh My Zsh.
7
- - **Modern Prompt**: Starship (hooked & active).
8
- - **Language Managers**: `rustup` (Rust) and `fnm` (Node.js).
9
- - **Ultra-Fast Python**: `uv` installed.
10
- - **Basic Modern Tools**: `eza` (ls), `bat` (cat), `fd` (find), `ripgrep` (grep).
11
- - **Git Enhancements**: `lazygit` (TUI) and `delta` (Diffs).
12
- - **Multiplexer**: `zellij` installed.
13
- - **AI**: `ollama` installed locally.
14
- - **Security**: Firewall (`ufw`) enabled.
15
-
16
- ---
17
-
18
- ## Phase 2: Speed & Navigation (Completed)
19
- Focus: Reduce friction in filesystem navigation and build times.
20
-
21
- ### 1. Navigation
22
- - [x] **Zoxide**: Smarter `cd` command that learns your habits (`z directory`).
23
- - [x] **FZF**: Command-line fuzzy finder. Essential for search history, files, and replacing standard completion.
24
- - [x] **Yazi**: Blazing fast terminal file manager (Rust-based).
25
-
26
- ### 2. Rust Optimization
27
- - [x] **Mold**: Use the `mold` linker to speed up Rust compile times by 3x-10x.
28
- - [x] **Sccache**: Shared compilation cache to speed up recompilations across projects.
29
- - [x] **Bacon**: Background rust compiler that gives instant feedback on errors.
30
-
31
- ### 3. Python Optimization
32
- - [x] **Ruff**: Extremely fast Python linter and formatter (replace flake8/black).
33
- - [x] **Global Config**: Set `uv` to use system Python or managed Python preferences.
34
-
35
- ### 4. Code Search
36
- - [x] **Ripgrep-all (rga)**: Search inside PDFs, E-Books, zip files, etc.
37
-
38
- ---
39
-
40
- ## Phase 3: AI Power User (Completed)
41
- Focus: Integrate AI deeply into the workflow.
42
-
43
- - [x] **Fabric**: Open-source framework for augmenting humans using AI (installed via `cmd` path).
44
- - [x] **Open WebUI**: A beautiful web interface for `ollama` (requires Docker).
45
- - [x] **GitHub Copilot CLI**: Integrate AI assistance directly into the terminal commands.
46
- - [x] **Local RAG**: Setup tools to chat with your own documents locally (Open WebUI).
47
-
48
- ---
49
-
50
- ## Phase 4: System Tuning & Hardening (Completed)
51
- Focus: Squeeze every ounce of performance and security from the hardware.
52
-
53
- - [x] **Kernel Tuning**: Increase file descriptor limits and optimize TCP stack for lower latency.
54
- - [x] **Swap Optimization**: Configure `zram` for memory compression (improves performance on 16GB RAM).
55
- - [x] **Flatpak Overrides**: Secure Flatpak permissions using `Flatseal`.
56
- - [x] **Automated Updates**: Configure `unattended-upgrades` for security patches.
57
-
58
- ---
59
-
60
- ## Phase 5: Final Polish (Completed)
61
- - [x] **Global UV Config**: Created `~/.config/uv/uv.toml` for managed python perference.
62
- - [x] **Roadmap Completion**: Verified all items are 100% complete.
63
-
64
- ---
65
-
66
- ## Maintenance & Updates
67
- - **Update System**: `sudo apt update && sudo apt upgrade`
68
- - **Update Rust**: `rustup update`
69
- - **Update Node**: `fnm install --lts`
70
- - **Update UV**: `uv self update`
71
- - **Update Firmware**: `fwupdmgr get-updates`
72
-
73
- ---
74
-
75
- ## Phase 6: Desktop Environment (Completed)
76
- Focus: Clean, bloat-free, and supercharged GNOME/Zorin experience.
77
-
78
- - [x] **Bloatware Removal**: Removed games (`aisleriot`, `mines`, etc.) and media apps (`rhythmbox`, `totem`).
79
- - [x] **Menu Cleanup**: Created `hide_menu_entries.sh` to deduplicate and hide unwanted entries.
80
- - [x] **GNOME Extensions**: Installed productivity boosters via `gnome-extensions-cli`:
81
- - [x] `Clipboard Indicator`: History management.
82
- - [x] `Caffeine`: Prevent auto-suspend.
83
- - [x] `Impatience`: Speed up animations.
84
- - [x] `Vitals`: System monitoring in top bar.
85
- - [x] **Memory Tuning**: Optimize GNOME Shell performance.
86
-
87
- ---
88
-
89
- ## Phase 7: Browser Optimization (Completed)
90
- Focus: Chrome tuned for development and memory efficiency.
91
-
92
- - [x] **Settings**: Enable "Memory Saver" and "Energy Saver" via Managed Policies.
93
- - [x] **Extensions**: Automated installation of developer stack (uBlock, JSON Viewer, React DevTools, Vimium, Refined GitHub).
94
- - [x] **Profile Separation**: Separate Personal and Work profiles (Manual setup recommendation).
95
-
96
- ---
97
-
98
- ## Phase 8: Neovim IDE (Completed)
99
- Focus: Building a terminal-based IDE that rivals VS Code for Rust, Python, and AI.
100
-
101
- - [x] **Latest Version**: Installed Neovim v0.12.0-dev (Nightly) to resolve plugin stability issues.
102
- - [x] **Plugin Manager**: Setup `lazy.nvim` with modular config (Restored from **PR #62**).
103
- - [x] **Core Plugins**:
104
- - [x] `Telescope`: Fuzzy finding.
105
- - [x] `Treesitter`: Syntax highlighting.
106
- - [x] `Harpoon`: Fast file switching.
107
- - [x] `Neo-tree`: File explorer.
108
- - [x] **UI/UX Menus**: Added `dressing.nvim` and `telescope-ui-select.nvim` for modern, searchable selection lists and floating inputs.
109
- - [x] **LSP & Autocomplete**:
110
- - [x] `Mason`: Managing LSPs (rust-analyzer, pyright, ruff).
111
- - [x] `Cmp`: Autocompletion engine.
112
- - [x] **Language Specifics**:
113
- - [x] **Rust**: `rustaceanvim` configured.
114
- - [x] **Python**: `pyright` + `ruff`.
115
- - [x] **AI Integration**:
116
- - [x] `Copilot.lua`: Enabled (needs `:Copilot auth`).
117
- - [x] `CopilotChat.nvim`: Sidebar chat (VS Code style).
118
- - [ ] `Avante.nvim`: Skipped (Removed due to complexity/instability).
119
- - [x] **VS Code Parity Pack**:
120
- - [x] `Trouble`: Problems panel.
121
- - [x] `Spectre`: Search/Replace.
122
- - [x] `Autopairs`: Auto-close brackets.
123
- - [x] `Todo-Comments`: TODO/FIXME highlighting.
124
- - [x] `Persistence`: Session management.
125
-
126
- ---
127
-
128
- ## Phase 9: Repository Polish & PR #62 (In Progress)
129
- Focus: Finalize the `dotfiles` repository for public consumption and sync the local "Gold Standard" environment.
130
-
131
- - [x] **Repository Sync**:
132
- - [x] Clone official repo to `~/dotfiles`.
133
- - [ ] Sync validated configuration (Neovim, scripts, tuning) into repository.
134
- - [ ] **Documentation Update**:
135
- - [ ] Refactor `README.md` for the modern architecture.
136
- - [ ] Add "Easy Setup" and "Troubleshooting" guides.
137
- - [ ] **Final PR Submission**:
138
- - [ ] Verify clean diff against original PR #62.
139
- - [ ] Push updates to PR #62 branch.
140
-
141
-
142
-