@sebastienrousseau/dotfiles 0.2.469 → 0.2.481

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/CHANGELOG.md +285 -0
  2. package/README.md +236 -319
  3. package/docs/ALIASES.md +128 -0
  4. package/docs/ARCHITECTURE.md +229 -0
  5. package/docs/COMPLIANCE.md +47 -0
  6. package/docs/COPYRIGHT +7 -0
  7. package/docs/FEATURES.md +166 -0
  8. package/docs/FONTS.md +147 -0
  9. package/docs/INSTALL.md +119 -0
  10. package/docs/KEYS.md +40 -0
  11. package/docs/KEY_ROTATION.md +219 -0
  12. package/docs/LEGACY_ROADMAP.md +142 -0
  13. package/docs/NEOVIM_IDE_GUIDE.md +52 -0
  14. package/docs/OPERATIONS.md +130 -0
  15. package/docs/PLAN.md +161 -0
  16. package/docs/PR_DESCRIPTION.md +149 -0
  17. package/docs/README.md +269 -0
  18. package/docs/REPO_AUDIT.md +23 -0
  19. package/docs/ROADMAP.md +148 -0
  20. package/docs/SCREENSHOTS.md +116 -0
  21. package/docs/SECRETS.md +76 -0
  22. package/docs/SECURITY.md +30 -0
  23. package/docs/SECURITY_CHECKLIST.md +25 -0
  24. package/docs/TASK.md +99 -0
  25. package/docs/TESTING.md +190 -0
  26. package/docs/TOOLS.md +146 -0
  27. package/docs/TROUBLESHOOTING.md +112 -0
  28. package/docs/UTILS.md +105 -0
  29. package/docs/WALKTHROUGH.md +165 -0
  30. package/docs/WSL2_NIX_TROUBLESHOOTING.md +723 -0
  31. package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
  32. package/docs/adr/ADR-002-shell-performance.md +121 -0
  33. package/docs/adr/ADR-003-security-first.md +140 -0
  34. package/docs/adr/ADR-004-cli-architecture.md +157 -0
  35. package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
  36. package/docs/adr/ADR-006-shell-selection.md +115 -0
  37. package/docs/adr/README.md +33 -0
  38. package/docs/themes/README.md +20 -0
  39. package/dot_config/aider/aider.conf.yml +32 -0
  40. package/dot_config/alacritty/alacritty.toml.tmpl +483 -0
  41. package/dot_config/ansible/ansible.cfg.tmpl +11 -0
  42. package/dot_config/atuin/config.toml +23 -0
  43. package/dot_config/bat/config +8 -0
  44. package/dot_config/brave-flags.conf.tmpl +7 -0
  45. package/dot_config/btop/btop.conf +16 -0
  46. package/dot_config/btop/themes/tokyonight.theme +34 -0
  47. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  48. package/dot_config/claude/mcp_servers.json +49 -0
  49. package/dot_config/clippy.toml +55 -0
  50. package/dot_config/containers/containers.conf +14 -0
  51. package/dot_config/curl/dot_curlrc +18 -0
  52. package/dot_config/dlv/config.yml +39 -0
  53. package/dot_config/docker/config.json.tmpl +15 -0
  54. package/dot_config/dotfiles/boot/README.md +11 -0
  55. package/dot_config/dotfiles/grub/README.md +11 -0
  56. package/dot_config/dotfiles/lock/README.md +11 -0
  57. package/dot_config/dotfiles/versions.env.tmpl +19 -0
  58. package/dot_config/duf/duf.conf +6 -0
  59. package/dot_config/duti/defaults.duti +5 -0
  60. package/dot_config/emoji/emoji.txt +34 -0
  61. package/dot_config/fastfetch/config.jsonc +28 -0
  62. package/dot_config/firefox/user.js +8 -0
  63. package/dot_config/flatpak/flatpak.list +4 -0
  64. package/dot_config/fontconfig/fonts.conf.tmpl +44 -0
  65. package/dot_config/gh/config.yml +12 -0
  66. package/dot_config/ghostty/config.tmpl +661 -0
  67. package/dot_config/git/attributes +12 -0
  68. package/dot_config/git/config.tmpl +77 -0
  69. package/dot_config/git/ignore +27 -0
  70. package/dot_config/gnupg/gpg-agent.conf.tmpl +11 -0
  71. package/dot_config/go/aliases.sh +61 -0
  72. package/dot_config/go/env.sh +24 -0
  73. package/dot_config/go/golangci.yml +118 -0
  74. package/dot_config/go/gopls.json +30 -0
  75. package/dot_config/goose/config.yaml +29 -0
  76. package/dot_config/gtk-3.0/gtk.css.tmpl +305 -0
  77. package/dot_config/gtk-3.0/settings.ini.tmpl +66 -0
  78. package/dot_config/gtk-4.0/gtk.css.tmpl +309 -0
  79. package/dot_config/gtk-4.0/settings.ini.tmpl +21 -0
  80. package/dot_config/htop/htoprc +20 -0
  81. package/dot_config/ice/README.md +13 -0
  82. package/dot_config/inputrc +2 -0
  83. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +5 -0
  84. package/dot_config/just/justfile +104 -0
  85. package/dot_config/k9s/config.yaml.tmpl +65 -0
  86. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  87. package/dot_config/karabiner/karabiner.json +14 -0
  88. package/dot_config/kitty/kitty.conf.tmpl +517 -0
  89. package/dot_config/lazydocker/config.yml +186 -0
  90. package/dot_config/lazygit/config.yml +23 -0
  91. package/dot_config/lsd/config.yaml +19 -0
  92. package/dot_config/mas/masapps.txt +5 -0
  93. package/dot_config/minikube/config.json +13 -0
  94. package/dot_config/mise/config.toml +41 -0
  95. package/dot_config/mongosh/mongoshrc.js +67 -0
  96. package/dot_config/mycli/myclirc +67 -0
  97. package/dot_config/nano/nanorc +28 -0
  98. package/dot_config/ncdu/config +12 -0
  99. package/dot_config/nvim/init.lua +4 -0
  100. package/dot_config/nvim/lazy-lock.json +27 -0
  101. package/dot_config/nvim/lua/config/autocmds.lua +63 -0
  102. package/dot_config/nvim/lua/config/keymaps.lua +87 -0
  103. package/dot_config/nvim/lua/config/lazy.lua +34 -0
  104. package/dot_config/nvim/lua/config/options.lua +48 -0
  105. package/dot_config/nvim/lua/plugins/coding.lua +234 -0
  106. package/dot_config/nvim/lua/plugins/dap.lua +201 -0
  107. package/dot_config/nvim/lua/plugins/editor.lua +59 -0
  108. package/dot_config/nvim/lua/plugins/git.lua +9 -0
  109. package/dot_config/nvim/lua/plugins/lsp.lua +221 -0
  110. package/dot_config/nvim/lua/plugins/markdown.lua +17 -0
  111. package/dot_config/nvim/lua/plugins/rust.lua +33 -0
  112. package/dot_config/nvim/lua/plugins/sessions.lua +32 -0
  113. package/dot_config/nvim/lua/plugins/ui.lua +537 -0
  114. package/dot_config/nvim/snippets/all.lua +9 -0
  115. package/dot_config/nvim/snippets/python.lua +16 -0
  116. package/dot_config/pip/pip.conf.tmpl +32 -0
  117. package/dot_config/pypoetry/config.toml.tmpl +6 -0
  118. package/dot_config/pyrightconfig.json.tmpl +5 -0
  119. package/dot_config/raycast/README.md +13 -0
  120. package/dot_config/redis/redisclirc +41 -0
  121. package/dot_config/shell/00-container-detect.sh +53 -0
  122. package/dot_config/shell/00-core-paths.sh.tmpl +95 -0
  123. package/dot_config/shell/05-core-safety.sh.tmpl +13 -0
  124. package/dot_config/shell/40-ls-colors.sh.tmpl +31 -0
  125. package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
  126. package/dot_config/shell/90-theme-switch.sh +70 -0
  127. package/dot_config/shell/90-ux-aliases.sh.tmpl +35 -0
  128. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +23 -0
  129. package/dot_config/shell/Brewfile +207 -0
  130. package/dot_config/shell/Brewfile.cask +92 -0
  131. package/dot_config/shell/Brewfile.cli +119 -0
  132. package/dot_config/shell/README.md +267 -0
  133. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  134. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  135. package/dot_config/sops/dot_sops.yaml +23 -0
  136. package/dot_config/starship.toml.tmpl +124 -0
  137. package/dot_config/task/Taskfile.yml +86 -0
  138. package/dot_config/tflint/tflint.hcl.tmpl +9 -0
  139. package/dot_config/tmux/tmux.conf.tmpl +181 -0
  140. package/dot_config/topgrade/topgrade.toml.tmpl +42 -0
  141. package/dot_config/vscode/extensions.txt +11 -0
  142. package/dot_config/vscode/settings.json.tmpl +123 -0
  143. package/dot_config/waybar/style.css +8 -0
  144. package/dot_config/wezterm/wezterm.lua.tmpl +236 -0
  145. package/dot_config/wget/wgetrc +12 -0
  146. package/dot_config/yarn/yarnrc.yml.tmpl +36 -0
  147. package/dot_config/yazi/yazi.toml +40 -0
  148. package/dot_config/zellij/config.kdl +79 -0
  149. package/dot_config/zsh/dot_zprofile +13 -0
  150. package/dot_config/zsh/dot_zshenv +6 -0
  151. package/dot_config/zsh/dot_zshrc.tmpl +199 -0
  152. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +5 -0
  153. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  154. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +22 -0
  155. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +123 -0
  156. package/dot_config/zsh/rc.d/40-bell.zsh.tmpl +20 -0
  157. package/dot_config/zsh/rc.d/50-login-fortune.zsh.tmpl +9 -0
  158. package/dot_local/bin/executable_ai_core +130 -0
  159. package/dot_local/bin/executable_b64 +59 -0
  160. package/dot_local/bin/executable_dot +178 -0
  161. package/dot_local/bin/executable_dot_completion +55 -0
  162. package/dot_local/bin/executable_epoch +62 -0
  163. package/dot_local/bin/executable_extract +108 -0
  164. package/dot_local/bin/executable_git-ai-commit +160 -0
  165. package/dot_local/bin/executable_git-ai-diff +154 -0
  166. package/dot_local/bin/executable_hash +123 -0
  167. package/dot_local/bin/executable_hex +79 -0
  168. package/dot_local/bin/executable_ip +37 -0
  169. package/dot_local/bin/executable_jsonv +54 -0
  170. package/dot_local/bin/executable_jwt +78 -0
  171. package/dot_local/bin/executable_kill-port +59 -0
  172. package/dot_local/bin/executable_lorem +103 -0
  173. package/dot_local/bin/executable_regex +96 -0
  174. package/dot_local/bin/executable_tmux-sessionizer +187 -0
  175. package/dot_local/bin/executable_tour +137 -0
  176. package/dot_local/bin/executable_update +108 -0
  177. package/dot_local/bin/executable_uuid +57 -0
  178. package/dot_local/bin/executable_yamlv +39 -0
  179. package/dot_local/bin/executable_zig-install +89 -0
  180. package/dot_local/bin/voice_ops +7 -0
  181. package/dot_local/share/bash-completion/completions/dot +54 -0
  182. package/dot_local/share/zsh/completions/.keep +0 -0
  183. package/install.sh +255 -0
  184. package/package.json +52 -76
  185. package/scripts/ci/validate-ci-config.sh +222 -0
  186. package/scripts/demo/record.sh +41 -0
  187. package/scripts/diagnostics/benchmark.sh +201 -0
  188. package/scripts/diagnostics/doctor.sh +115 -0
  189. package/scripts/diagnostics/drift-dashboard.sh +26 -0
  190. package/scripts/diagnostics/health.sh +356 -0
  191. package/scripts/diagnostics/history-analysis.sh +77 -0
  192. package/scripts/diagnostics/security-score.sh +392 -0
  193. package/scripts/diagnostics/verify_state.sh +60 -0
  194. package/scripts/dot/commands/appearance.sh +63 -0
  195. package/scripts/dot/commands/core.sh +130 -0
  196. package/scripts/dot/commands/diagnostics.sh +100 -0
  197. package/scripts/dot/commands/meta.sh +117 -0
  198. package/scripts/dot/commands/restore.sh +209 -0
  199. package/scripts/dot/commands/secrets.sh +81 -0
  200. package/scripts/dot/commands/security.sh +73 -0
  201. package/scripts/dot/commands/tools.sh +228 -0
  202. package/scripts/dot/lib/utils.sh +72 -0
  203. package/scripts/fonts/install-nerd-fonts.sh +59 -0
  204. package/scripts/fonts/patch-fonts.sh +34 -0
  205. package/scripts/ops/chezmoi-apply.sh +42 -0
  206. package/scripts/ops/chezmoi-diff.sh +14 -0
  207. package/scripts/ops/chezmoi-remove.sh +43 -0
  208. package/scripts/ops/chezmoi-update.sh +16 -0
  209. package/scripts/ops/heal.sh +466 -0
  210. package/scripts/ops/health-check.sh +380 -0
  211. package/scripts/ops/rollback.sh +531 -0
  212. package/scripts/ops/teleport.sh +32 -0
  213. package/scripts/secrets/age-init.sh +69 -0
  214. package/scripts/secrets/create-secrets-file.sh +44 -0
  215. package/scripts/secrets/encrypt-ssh-key.sh +42 -0
  216. package/scripts/security/backup.sh +17 -0
  217. package/scripts/security/dns-doh.sh +29 -0
  218. package/scripts/security/encryption-check.sh +39 -0
  219. package/scripts/security/enforce-policies.sh +339 -0
  220. package/scripts/security/firewall.sh +34 -0
  221. package/scripts/security/lock-configs.sh +57 -0
  222. package/scripts/security/lock-screen.sh +33 -0
  223. package/scripts/security/manage-secrets.sh +415 -0
  224. package/scripts/security/telemetry-kill.sh +28 -0
  225. package/scripts/security/usb-safety.sh +29 -0
  226. package/scripts/tests/README.md +241 -0
  227. package/scripts/tests/benchmark.sh +91 -0
  228. package/scripts/tests/framework/assertions.sh +283 -0
  229. package/scripts/tests/framework/mocks.sh +201 -0
  230. package/scripts/tests/framework/test_runner.sh +189 -0
  231. package/scripts/tests/integration/test_install.sh +237 -0
  232. package/scripts/tests/performance/benchmark_runner.sh +156 -0
  233. package/scripts/tests/performance/regression_check.sh +73 -0
  234. package/scripts/tests/performance/stress_test.sh +65 -0
  235. package/scripts/tests/test-aliases.sh +25 -0
  236. package/scripts/tests/test-docker.sh +48 -0
  237. package/scripts/tests/unit/test_ai_aliases.sh +158 -0
  238. package/scripts/tests/unit/test_ai_cli_checks.sh +47 -0
  239. package/scripts/tests/unit/test_backup.sh +227 -0
  240. package/scripts/tests/unit/test_case_functions.sh +238 -0
  241. package/scripts/tests/unit/test_cd_aliases.sh +367 -0
  242. package/scripts/tests/unit/test_dot_cli.sh +217 -0
  243. package/scripts/tests/unit/test_encode64.sh +67 -0
  244. package/scripts/tests/unit/test_environment.sh +78 -0
  245. package/scripts/tests/unit/test_extract.sh +163 -0
  246. package/scripts/tests/unit/test_framework_edge_cases.sh +113 -0
  247. package/scripts/tests/unit/test_genpass.sh +298 -0
  248. package/scripts/tests/unit/test_install_edge_cases.sh +167 -0
  249. package/scripts/tests/unit/test_installers.sh +172 -0
  250. package/scripts/tests/unit/test_keygen.sh +68 -0
  251. package/scripts/tests/unit/test_logging.sh +96 -0
  252. package/scripts/tests/unit/test_os_detection_comprehensive.sh +388 -0
  253. package/scripts/tests/unit/test_package_managers_comprehensive.sh +321 -0
  254. package/scripts/tests/unit/test_prependpath.sh +66 -0
  255. package/scripts/tests/unit/test_prependpath_refactored.sh +89 -0
  256. package/scripts/tests/unit/test_rd.sh +230 -0
  257. package/scripts/tests/unit/test_security_fixes.sh +130 -0
  258. package/scripts/tests/unit/test_security_scripts.sh +87 -0
  259. package/scripts/tests/unit/test_template_validation.sh +238 -0
  260. package/scripts/tests/unit/test_utility_functions.sh +144 -0
  261. package/scripts/tests/unit/test_wave1_alias_split.sh +132 -0
  262. package/scripts/tests/unit/test_wave1_ci_pinning.sh +61 -0
  263. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +52 -0
  264. package/scripts/tests/unit/test_wave1_heal_fixes.sh +97 -0
  265. package/scripts/tests/unit/test_wave1_install_gpg.sh +35 -0
  266. package/scripts/tests/unit/test_wave1_zshenv_path.sh +89 -0
  267. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +115 -0
  268. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +75 -0
  269. package/scripts/tests/unit/test_zipf.sh +76 -0
  270. package/scripts/theme/apply-gnome-theme.sh +297 -0
  271. package/scripts/theme/install-boot-logo.sh +61 -0
  272. package/scripts/theme/install-catppuccin-themes.sh +346 -0
  273. package/scripts/theme/install-cursors.sh +24 -0
  274. package/scripts/theme/install-file-icons.sh +25 -0
  275. package/scripts/theme/install-grub-theme.sh +51 -0
  276. package/scripts/theme/install-lock-icon.sh +29 -0
  277. package/scripts/theme/switch.sh +250 -0
  278. package/scripts/theme/wallpaper-rotate.sh +82 -0
  279. package/scripts/theme/wallpaper-sync.sh +42 -0
  280. package/scripts/tools/cmatrix.sh +20 -0
  281. package/scripts/tools/detect-collisions.py +84 -0
  282. package/scripts/tools/emoji-picker.sh +45 -0
  283. package/scripts/tools/figlet-banner.sh +17 -0
  284. package/scripts/tools/log-rotate.sh +29 -0
  285. package/scripts/tools/lolcat-wrap.sh +18 -0
  286. package/scripts/tools/pipes.sh +47 -0
  287. package/scripts/tuning/linux.sh +175 -0
  288. package/scripts/tuning/macos.sh +46 -0
  289. package/templates/projects/go/README.md +7 -0
  290. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +7 -0
  291. package/templates/projects/go/go.mod +3 -0
  292. package/templates/projects/molecule/README.md +7 -0
  293. package/templates/projects/molecule/converge.yml +7 -0
  294. package/templates/projects/molecule/molecule.yml +16 -0
  295. package/templates/projects/node/README.md +7 -0
  296. package/templates/projects/node/package.json +10 -0
  297. package/templates/projects/node/src/index.js +2 -0
  298. package/templates/projects/packer/README.md +15 -0
  299. package/templates/projects/packer/main.pkr.hcl +15 -0
  300. package/templates/projects/python/README.md +7 -0
  301. package/templates/projects/python/pyproject.toml +25 -0
  302. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  303. package/templates/projects/python/tests/test_basic.py +2 -0
  304. package/dist/Makefile +0 -140
  305. package/dist/bin/backup.d.ts +0 -3
  306. package/dist/bin/backup.d.ts.map +0 -1
  307. package/dist/bin/backup.js +0 -4
  308. package/dist/bin/backup.js.map +0 -1
  309. package/dist/bin/constants.d.ts +0 -7
  310. package/dist/bin/constants.d.ts.map +0 -1
  311. package/dist/bin/constants.js +0 -2
  312. package/dist/bin/constants.js.map +0 -1
  313. package/dist/bin/copy.d.ts +0 -3
  314. package/dist/bin/copy.d.ts.map +0 -1
  315. package/dist/bin/copy.js +0 -3
  316. package/dist/bin/copy.js.map +0 -1
  317. package/dist/bin/dotfiles.d.ts +0 -3
  318. package/dist/bin/dotfiles.d.ts.map +0 -1
  319. package/dist/bin/dotfiles.js +0 -2
  320. package/dist/bin/dotfiles.js.map +0 -1
  321. package/dist/bin/download.d.ts +0 -3
  322. package/dist/bin/download.d.ts.map +0 -1
  323. package/dist/bin/download.js +0 -2
  324. package/dist/bin/download.js.map +0 -1
  325. package/dist/bin/index.d.ts +0 -2
  326. package/dist/bin/index.d.ts.map +0 -1
  327. package/dist/bin/index.js +0 -1
  328. package/dist/bin/index.js.map +0 -1
  329. package/dist/bin/transfer.d.ts +0 -3
  330. package/dist/bin/transfer.d.ts.map +0 -1
  331. package/dist/bin/transfer.js +0 -4
  332. package/dist/bin/transfer.js.map +0 -1
  333. package/dist/bin/unpack.d.ts +0 -3
  334. package/dist/bin/unpack.d.ts.map +0 -1
  335. package/dist/bin/unpack.js +0 -3
  336. package/dist/bin/unpack.js.map +0 -1
  337. package/dist/filesizes.txt +0 -382
  338. package/dist/lib/README.md +0 -86
  339. package/dist/lib/aliases/README.md +0 -57
  340. package/dist/lib/aliases/archives/README.md +0 -145
  341. package/dist/lib/aliases/archives/archives.aliases.sh +0 -114
  342. package/dist/lib/aliases/cd/README.md +0 -146
  343. package/dist/lib/aliases/cd/cd.aliases.sh +0 -51
  344. package/dist/lib/aliases/chmod/README.md +0 -160
  345. package/dist/lib/aliases/chmod/chmod.aliases.sh +0 -107
  346. package/dist/lib/aliases/clear/README.md +0 -37
  347. package/dist/lib/aliases/clear/clear.aliases.sh +0 -71
  348. package/dist/lib/aliases/configuration/README.md +0 -39
  349. package/dist/lib/aliases/configuration/configuration.aliases.sh +0 -70
  350. package/dist/lib/aliases/default/README.md +0 -40
  351. package/dist/lib/aliases/default/default.aliases.sh +0 -139
  352. package/dist/lib/aliases/dig/README.md +0 -37
  353. package/dist/lib/aliases/dig/dig.aliases.sh +0 -43
  354. package/dist/lib/aliases/disk-usage/README.md +0 -36
  355. package/dist/lib/aliases/disk-usage/du.aliases.sh +0 -84
  356. package/dist/lib/aliases/editor/README.md +0 -53
  357. package/dist/lib/aliases/editor/editor.aliases.sh +0 -26
  358. package/dist/lib/aliases/find/README.md +0 -46
  359. package/dist/lib/aliases/find/find.aliases.sh +0 -60
  360. package/dist/lib/aliases/gcloud/README.md +0 -63
  361. package/dist/lib/aliases/gcloud/gcloud.aliases.sh +0 -335
  362. package/dist/lib/aliases/git/README.md +0 -153
  363. package/dist/lib/aliases/git/git.aliases.sh +0 -544
  364. package/dist/lib/aliases/gnu/README.md +0 -89
  365. package/dist/lib/aliases/gnu/gnucoreutils-aliases.sh +0 -150
  366. package/dist/lib/aliases/heroku/README.md +0 -430
  367. package/dist/lib/aliases/heroku/heroku.aliases.sh +0 -1053
  368. package/dist/lib/aliases/interactive/README.md +0 -55
  369. package/dist/lib/aliases/interactive/interactive.aliases.sh +0 -50
  370. package/dist/lib/aliases/list/README.md +0 -131
  371. package/dist/lib/aliases/list/list.aliases.sh +0 -132
  372. package/dist/lib/aliases/macOS/README.md +0 -42
  373. package/dist/lib/aliases/macOS/macos.aliases.sh +0 -65
  374. package/dist/lib/aliases/make/README.md +0 -32
  375. package/dist/lib/aliases/make/make.aliases.sh +0 -35
  376. package/dist/lib/aliases/mkdir/README.md +0 -30
  377. package/dist/lib/aliases/mkdir/mkdir.aliases.sh +0 -29
  378. package/dist/lib/aliases/npm/README.md +0 -41
  379. package/dist/lib/aliases/npm/npm.aliases.sh +0 -61
  380. package/dist/lib/aliases/permission/README.md +0 -47
  381. package/dist/lib/aliases/permission/permission.aliases.sh +0 -73
  382. package/dist/lib/aliases/pnpm/README.md +0 -53
  383. package/dist/lib/aliases/pnpm/pnpm.aliases.sh +0 -76
  384. package/dist/lib/aliases/ps/README.md +0 -29
  385. package/dist/lib/aliases/ps/ps.aliases.sh +0 -20
  386. package/dist/lib/aliases/python/python.aliases.sh +0 -141
  387. package/dist/lib/aliases/rsync/README.md +0 -25
  388. package/dist/lib/aliases/rsync/rsync.aliases.sh +0 -17
  389. package/dist/lib/aliases/rust/README.md +0 -182
  390. package/dist/lib/aliases/rust/rust.aliases.sh +0 -119
  391. package/dist/lib/aliases/subversion/README.md +0 -66
  392. package/dist/lib/aliases/subversion/subversion.aliases.sh +0 -47
  393. package/dist/lib/aliases/sudo/README.md +0 -27
  394. package/dist/lib/aliases/sudo/sudo.aliases.sh +0 -20
  395. package/dist/lib/aliases/tmux/README.md +0 -31
  396. package/dist/lib/aliases/tmux/tmux.aliases.sh +0 -36
  397. package/dist/lib/aliases/update/README.md +0 -38
  398. package/dist/lib/aliases/update/update.aliases.sh +0 -310
  399. package/dist/lib/aliases/uuid/README.md +0 -24
  400. package/dist/lib/aliases/uuid/uuid.aliases.sh +0 -19
  401. package/dist/lib/aliases/wget/README.md +0 -27
  402. package/dist/lib/aliases/wget/wget.aliases.sh +0 -22
  403. package/dist/lib/aliases.sh +0 -50
  404. package/dist/lib/configurations/README.md +0 -18
  405. package/dist/lib/configurations/bash/bashrc +0 -167
  406. package/dist/lib/configurations/curl/cacert.pem +0 -3460
  407. package/dist/lib/configurations/curl/curlrc +0 -53
  408. package/dist/lib/configurations/default/color.sh +0 -24
  409. package/dist/lib/configurations/default/constants.sh +0 -43
  410. package/dist/lib/configurations/default/editor.sh +0 -18
  411. package/dist/lib/configurations/default/prompt.sh +0 -48
  412. package/dist/lib/configurations/input/inputrc +0 -23
  413. package/dist/lib/configurations/jshint/jshintrc +0 -37
  414. package/dist/lib/configurations/nano/nanorc +0 -35
  415. package/dist/lib/configurations/profile/profile +0 -37
  416. package/dist/lib/configurations/prompt/prompt.sh +0 -81
  417. package/dist/lib/configurations/tmux/default +0 -18
  418. package/dist/lib/configurations/tmux/display +0 -30
  419. package/dist/lib/configurations/tmux/linux +0 -18
  420. package/dist/lib/configurations/tmux/navigation +0 -30
  421. package/dist/lib/configurations/tmux/panes +0 -10
  422. package/dist/lib/configurations/tmux/theme +0 -29
  423. package/dist/lib/configurations/tmux/tmux +0 -21
  424. package/dist/lib/configurations/vim/vimrc +0 -193
  425. package/dist/lib/configurations/wget/wgetrc +0 -40
  426. package/dist/lib/configurations/zsh/zshrc +0 -50
  427. package/dist/lib/configurations.sh +0 -45
  428. package/dist/lib/functions/README.md +0 -92
  429. package/dist/lib/functions/apihealth.sh +0 -277
  430. package/dist/lib/functions/apilatency.sh +0 -157
  431. package/dist/lib/functions/apiload.sh +0 -165
  432. package/dist/lib/functions/backup.sh +0 -143
  433. package/dist/lib/functions/cdls.sh +0 -60
  434. package/dist/lib/functions/curlheader.sh +0 -78
  435. package/dist/lib/functions/curlstatus.sh +0 -74
  436. package/dist/lib/functions/curltime.sh +0 -75
  437. package/dist/lib/functions/encode64.sh +0 -107
  438. package/dist/lib/functions/environment.sh +0 -78
  439. package/dist/lib/functions/extract.sh +0 -86
  440. package/dist/lib/functions/freespace.sh +0 -67
  441. package/dist/lib/functions/genpwd.sh +0 -105
  442. package/dist/lib/functions/goto.sh +0 -67
  443. package/dist/lib/functions/hexdump.sh +0 -96
  444. package/dist/lib/functions/hiddenfiles.sh +0 -77
  445. package/dist/lib/functions/hostinfo.sh +0 -98
  446. package/dist/lib/functions/hstats.sh +0 -75
  447. package/dist/lib/functions/httpdebug.sh +0 -113
  448. package/dist/lib/functions/kebabcase.sh +0 -61
  449. package/dist/lib/functions/keygen.sh +0 -194
  450. package/dist/lib/functions/last.sh +0 -112
  451. package/dist/lib/functions/logout.sh +0 -120
  452. package/dist/lib/functions/lowercase.sh +0 -61
  453. package/dist/lib/functions/matrix.sh +0 -216
  454. package/dist/lib/functions/mount_read_only.sh +0 -11
  455. package/dist/lib/functions/myproc.sh +0 -9
  456. package/dist/lib/functions/prependpath.sh +0 -21
  457. package/dist/lib/functions/ql.sh +0 -9
  458. package/dist/lib/functions/rd.sh +0 -17
  459. package/dist/lib/functions/remove_disk.sh +0 -11
  460. package/dist/lib/functions/ren.sh +0 -73
  461. package/dist/lib/functions/sentencecase.sh +0 -63
  462. package/dist/lib/functions/showhiddenfiles.sh +0 -14
  463. package/dist/lib/functions/size.sh +0 -16
  464. package/dist/lib/functions/snakecase.sh +0 -61
  465. package/dist/lib/functions/stopwatch.sh +0 -15
  466. package/dist/lib/functions/sysinfo.sh +0 -145
  467. package/dist/lib/functions/titlecase.sh +0 -65
  468. package/dist/lib/functions/uppercase.sh +0 -61
  469. package/dist/lib/functions/view-source.sh +0 -9
  470. package/dist/lib/functions/vscode.sh +0 -32
  471. package/dist/lib/functions/whoisport.sh +0 -14
  472. package/dist/lib/functions/zipf.sh +0 -16
  473. package/dist/lib/functions.sh +0 -46
  474. package/dist/lib/history.sh +0 -90
  475. package/dist/lib/paths/README.md +0 -52
  476. package/dist/lib/paths/custom.paths.sh +0 -40
  477. package/dist/lib/paths/default.paths.sh +0 -37
  478. package/dist/lib/paths.sh +0 -46
  479. package/dist/scripts/backup.sh +0 -95
  480. package/dist/scripts/banner.sh +0 -20
  481. package/dist/scripts/build.sh +0 -41
  482. package/dist/scripts/clean.sh +0 -31
  483. package/dist/scripts/compile.sh +0 -54
  484. package/dist/scripts/copy.sh +0 -108
  485. package/dist/scripts/dotfiles.sh +0 -63
  486. package/dist/scripts/download.sh +0 -35
  487. package/dist/scripts/help.sh +0 -57
  488. package/dist/scripts/ssh.sh +0 -55
  489. package/dist/scripts/unpack.sh +0 -28
  490. /package/{dist/lib/configurations → dot_config}/gem/gemrc +0 -0
package/README.md CHANGED
@@ -1,398 +1,315 @@
1
- <!-- markdownlint-disable MD033 MD041 MD043 -->
1
+ <p align="right">
2
+ <img src="https://kura.pro/dotfiles/v2/images/logos/dotfiles.svg" alt="Dotfiles logo" width="64" />
3
+ </p>
2
4
 
3
- <img
4
- src="https://kura.pro/dotfiles/v2/images/logos/dotfiles.svg"
5
- alt="dotfiles logo"
6
- width="66"
7
- align="right"
8
- />
5
+ # Dotfiles — A Fast, Idempotent Shell Environment
9
6
 
10
- <!-- markdownlint-enable MD033 MD041 -->
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)
11
12
 
12
- # Dotfiles (v0.2.469)
13
+ ---
13
14
 
14
- Simply designed to fit your shell life 🐚
15
+ ## Overview
15
16
 
16
- <!-- markdownlint-disable MD033 MD041 MD043 -->
17
- <center>
18
- <!-- markdownlint-enable MD033 MD041 -->
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.
19
18
 
20
- ![Dotfiles banner][banner]
19
+ Git + templates + guarded scripts = a reproducible shell.
21
20
 
22
- [![Codacy][codacy-grade]][06]
23
- [![Contributors][contributors-shield]][14]
24
- [![Forks][forks-shield]][13]
25
- [![License][license]][02]
26
- [![Love][love]][00]
21
+ ---
27
22
 
28
- [Website][00] [Documentation][16]
29
- • [Report Bug][17] • [Request Feature][17]
30
- • [Contributing Guidelines][05]
23
+ ## Table of contents
31
24
 
32
- <!-- markdownlint-disable MD033 MD041 MD043 -->
33
- </center>
34
- <!-- markdownlint-enable MD033 MD041 -->
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)
35
37
 
36
- ![divider][divider]
38
+ ---
37
39
 
38
- ## Overview 📖
40
+ ## Why dotfiles
39
41
 
40
- Dotfiles are a powerful set of configuration files for macOS, Linux, and
41
- Windows providing scripts and customized settings to streamline your
42
- workflow. These files are an essential tool for developers and users who
43
- want to modify their environment and applications to their exact needs.
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.**
44
43
 
45
- The Dotfiles library are combined into a single `lib` directory. This
46
- directory allows you to easily setup your development environment across
47
- numerous computers and operating systems, ensuring consistency and
48
- productivity no matter where you work.
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.
49
48
 
50
- <!-- markdownlint-disable MD033 MD041 MD043 -->
51
- <br>
52
- <center>
53
- <!-- markdownlint-enable MD033 MD041 -->
54
49
 
55
- [![Getting Started][getting_started]][getting-started-url]
56
- [![Download Dotfiles v0.2.469][download_button]][12]
50
+ ## Safety
57
51
 
58
- <!-- markdownlint-disable MD033 MD041 MD043 -->
59
- </center>
60
- <br />
61
- <!-- markdownlint-enable MD033 MD041 -->
52
+ This is **infrastructure**, not an ad‑hoc shell script.
62
53
 
63
- ## Features
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`.
64
59
 
65
- - A familiar feel and comforts across environments.
66
- - A unified set of aliases and useful commands for macOS, Linux, and
67
- Windows.
68
- - Coloured multiplexer tmux prompt, customizable, and easy to use.
69
- - Fast and flexible configuration files for Bash, Zsh, and more.
70
- - Fully documented and translated into several languages (English,
71
- French, and more).
72
- - Supports Apple Silicon (M1) and Intel chips (x86_64).
73
- - Uses Roboto Mono for Powerline font for enhanced terminal experience.
60
+ ---
74
61
 
75
- ![divider][divider]
62
+ ## Get started
76
63
 
77
- ## Getting Started 🚀
78
-
79
- We are so delighted that you have decided to try Dotfiles, and are sure
80
- that you will find Dotfiles unique and helpful.
81
-
82
- To get started, please follow the instructions below. If you have any
83
- questions, please feel free to contact us.
84
-
85
- ### Installation
86
-
87
- We understand that you may want to install Dotfiles without reading long
88
- manuals and lengthy documentation. In that respect, we have tried to
89
- make the installation process as easy and automated as possible.
90
-
91
- A range of installation methods are available, and we recommend that you
92
- choose the one that best suits your needs.
93
-
94
- Before you begin your installation, use this information to ensure that
95
- you meet all the hardware, software, and system requirements for
96
- installing Dotfiles.
97
-
98
- #### 1) System Requirements
99
-
100
- You need a modern operating system to install Dotfiles. Here's an non-
101
- exhaustive list of the recommended operating systems that we support.
102
-
103
- If you don't see your operating system listed, it may still work, but we
104
- have yet been able to test it. If you have any issues, please let us
105
- know.
106
-
107
- - macOS 10.15 or later
108
- - Windows 10 or later
109
- - A Debian based distribution ([Debian][08], [Ubuntu][27],
110
- [PoP!_OS][22], [Zorin OS][29], [Q4OS][23], [Kali Linux][18],
111
- [Devuan][10], [Deepin][09], etc.)
112
-
113
- #### 2) Software Requirements
114
-
115
- The following programs must be installed on your system to install
116
- Dotfiles:
117
-
118
- - [**Bash**][03] - a shell, or command language interpreter, for the GNU
119
- operating system.
120
- - Or [**Zsh**][30] - a shell designed for interactive use, although it
121
- is also a powerful scripting language.
122
- - [**Git**][15] - a free and open source distributed version control
123
- system designed to handle everything from small to very large projects
124
- with speed and efficiency.
125
- - [**Curl**][07] - a command line tool for transferring data with URL
126
- syntax.
127
- - [**Wget**][28] - a free software package for retrieving files using
128
- HTTP, HTTPS and FTP, the most widely-used Internet protocols.
129
- - [**Make**][19] - a tool which controls the generation of executables
130
- and other non-source files of a program from the program's source
131
- files.
132
- - [**Shell**][26] - a shell command line interpreter program for Unix-
133
- like operating systems.
134
- - [**PnPM**][21] - a package manager for JavaScript and Node.js. It is
135
- fast, disk space efficient and reliable.
136
-
137
- #### 3) Font Requirements
138
-
139
- We recommend using a font such as `Roboto Mono for Powerline` for
140
- terminal and vscode editor.
141
-
142
- On macOS, you can install the font using the following command:
143
-
144
- ```bash
145
- brew tap homebrew/cask-fonts
146
- ```
147
-
148
- ```bash
149
- brew install --cask font-roboto-mono-for-powerline
150
- ```
151
-
152
- On Linux, you can install the font using the following command:
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.
153
66
 
154
67
  ```bash
155
- sudo apt install fonts-roboto-mono-for-powerline
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
156
71
  ```
157
72
 
158
- ### Documentation
159
-
160
- To read the documentation for Dotfiles, please visit:
161
-
162
- - [Dotfiles website][00]
163
- - [Dotfiles Docs GitHub repository][11]
164
-
165
- ![divider][divider]
166
-
167
- ## Usage 📖
168
-
169
- ### 1️⃣ Download Dotfiles
170
-
171
- You can download the latest version (v0.2.469) with the following
172
- options:
173
-
174
- - [**Manual download**][24] - **The easiest way to install Dotfiles.**
175
- - [**Install with PnPM**][20] `pnpm i @sebastienrousseau/dotfiles`.
176
- - [**Install with Npm**][20] `npm install @sebastienrousseau/dotfiles`.
177
- - [**Install with Yarn**][20] `yarn add @sebastienrousseau/dotfiles`.
178
- - **Clone the main repository** to get all source files including build
179
- scripts: `git clone https://github.com/sebastienrousseau/dotfiles.git`
180
- . This will clone the latest version of the Dotfiles repository.
181
-
182
- ### 2️⃣ Back Up Your Existing Data
183
-
184
- Before installing Dotfiles, we strongly recommend that you back up your
185
- existing data. The Dotfiles installer will try to automatically backup
186
- any previous installation of known dotfiles into a backup directory
187
- `$HOME/dotfiles_backup`.
188
-
189
- The backup files are the following:
190
-
73
+ For non‑interactive installs (servers and CI):
191
74
  ```bash
192
- .alias
193
- .bash_aliases
194
- .bash_profile
195
- .bash_prompt
196
- .bashrc
197
- .curlrc
198
- .dir_colors
199
- .exports
200
- .functions
201
- .gitattributes
202
- .gitconfig
203
- .gitignore
204
- .gitmessage
205
- .inputrc
206
- .npmrc
207
- .path
208
- .profile
209
- .tmux.conf
210
- .vimrc
211
- .wgetrc
212
- .yarnrc
213
- .zshenv
214
- .zshrc
215
- cacert.pem
75
+ DOTFILES_NONINTERACTIVE=1 sh -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.481/install.sh)"
216
76
  ```
217
77
 
218
- It is always a good idea to backup as there might be situations in which
219
- you could be required to restore your previous installation.
220
-
221
- ### 3️⃣ Try it out and let us know what you think
78
+ ---
222
79
 
223
- To install the latest version of the dotfiles, run the following
224
- command:
80
+ ## Discover
225
81
 
226
- #### Using make (easiest and recommended)
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.
227
89
 
228
- The easiest way to install Dotfiles is to use the `make` command. This
229
- will install the latest version of the dotfiles and will automatically
230
- backup any existing dotfiles you may have into a backup directory
231
- `$HOME/dotfiles_backup`.
90
+ ---
232
91
 
233
- The installer will check if you have PnPM installed to switch to the
234
- PnPM installation method. If not, it will fallback to equivalent shell
235
- scripts.
92
+ ## Install details
236
93
 
237
- Switch to the `dist` directory and run:
94
+ **Prerequisites**
95
+ - Required: `git`, `curl`
96
+ - Optional: Homebrew (macOS), `apt-get` (Linux/WSL), Nix (toolchain)
238
97
 
98
+ **Update**
239
99
  ```bash
240
- make build
100
+ dot update
241
101
  ```
242
102
 
243
- You can also just check the installer options available, by simply
244
- running:
245
-
103
+ **Non‑interactive apply**
246
104
  ```bash
247
- make help
105
+ DOTFILES_NONINTERACTIVE=1 dot apply
248
106
  ```
249
107
 
250
- #### Using Node.js (advanced)
251
-
252
- If you want to install Dotfiles using Node.js, you can run the following
253
- command in the `dist` directory located in your
254
- `node_modules/@sebastienrousseau/dotfiles/dist` directory:
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**
255
187
 
256
188
  ```bash
257
- node .
189
+ # Initialise secrets (prints a public key)
190
+ DOTFILES_NONINTERACTIVE=1 dot secrets-init
191
+ # Output: Age key created at ~/.config/chezmoi/key.txt
258
192
  ```
259
193
 
260
- This will install the latest version of the dotfiles and will
261
- automatically backup any existing dotfiles you may have into a backup
262
- directory `$HOME/dotfiles_backup`.
263
-
264
- #### Using PnPM (highly recommended if you have PnPM installed)
194
+ ### Security changes
265
195
 
266
- PnPM is a key dependency of the dotfiles package. It will help you
267
- install the dotfiles rapidly and very efficiently.
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`.
268
198
 
269
- Switch to the `dist` directory and run:
270
-
271
- ```bash
272
- pnpm run build
273
- ```
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` |
274
207
 
275
- This will install the latest version of the dotfiles and will
276
- automatically backup any existing dotfiles you may have into a backup
277
- directory `$HOME/dotfiles_backup`.
208
+ ### Nix
278
209
 
279
- ### Post installation
210
+ Nix is **optional**. The repo does **not** install the Nix daemon.
280
211
 
281
- Following the installation, you can verify that the dotfiles package is
282
- installed in the following directory `$HOME/dotfiles_backup`.
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.
283
215
 
284
- Just quit your terminal and restart it. If the installation is
285
- successful, you should be able to see a new interface of your terminal
286
- and be able to start using the dotfiles aliases and other
287
- configurations.
216
+ ---
288
217
 
289
- Please refer to the [documentation][11] for more information.
218
+ ### Install guide
290
219
 
291
- ![divider][divider]
220
+ See [docs/INSTALL.md](docs/INSTALL.md) for prerequisites, supported platforms, and the full install flow.
292
221
 
293
- ## Releases 🔗
222
+ <p align="right"><a href="#dotfiles--your-shell-everywhere">↑ Back to Top</a></p>
294
223
 
295
- Releases are available on the [GitHub releases page][24].
224
+ ## How it works
296
225
 
297
- ![divider][divider]
226
+ If Mermaid does not render, the flow is: `install.sh` → `Chezmoi` → `~/.dotfiles` → `~/.config + ~/.local`.
298
227
 
299
- ## Semantic versioning policy 🚥
300
-
301
- For transparency into our release cycle and in striving to maintain
302
- backward compatibility, `Dotfiles` follows
303
- [Semantic Versioning][25].
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
+ ```
304
236
 
305
- ![divider][divider]
237
+ ### Shell startup flow
306
238
 
307
- ## History
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
+ ```
308
247
 
309
- - See [Dotfiles Release][24] for a list of changes.
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
+ ```
310
273
 
311
- ## Changelog ✅
274
+ ---
312
275
 
313
- - [GitHub Releases][24] are used for changelogs.
276
+ ## Roadmap
314
277
 
315
- ![divider][divider]
278
+ Track progress on [GitHub Issues](https://github.com/sebastienrousseau/dotfiles/issues) and [Milestones](https://github.com/sebastienrousseau/dotfiles/milestones).
316
279
 
317
- ## 📖 Code of Conduct
280
+ ---
318
281
 
319
- We are committed to preserving and fostering a diverse, welcoming
320
- community. Please read our [Code of Conduct][04].
282
+ ## Contribute
321
283
 
322
- ![divider][divider]
284
+ Please read [CONTRIBUTING.md](.github/CONTRIBUTING.md) before opening a pull request.
323
285
 
324
- ## ⭐️ Our Values
286
+ For security issues, see [SECURITY.md](.github/SECURITY.md).
325
287
 
326
- - We believe perfection must consider everything.
327
- - We take our passion beyond code into our daily practices.
328
- - We are just obsessed about creating and delivering exceptional
329
- solutions.
288
+ ---
330
289
 
331
- ![divider][divider]
290
+ ## Troubleshooting
332
291
 
333
- ## Contribution 🤝
292
+ See [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md).
334
293
 
335
- We welcome contributions to `Dotfiles`. Please see the
336
- [contributing guidelines][05] for more information.
294
+ ---
337
295
 
338
- Unless you explicitly state otherwise, any contribution intentionally
339
- submitted for inclusion in the work by you, as defined in the
340
- Apache-2.0 license, shall be dual licensed as above, without any
341
- additional terms or conditions.
296
+ ## Changelog
342
297
 
343
- ![divider][divider]
298
+ See [CHANGELOG.md](CHANGELOG.md).
344
299
 
345
- ## License 📝
300
+ ---
346
301
 
347
- The project is licensed under the terms of both the MIT license and the
348
- Apache License (Version 2.0).
302
+ ## License
349
303
 
350
- - [Apache License, Version 2.0][01]
351
- - [MIT license][02]
304
+ This project is licensed under the **MIT License**. See [LICENSE](LICENSE).
352
305
 
353
- ![divider][divider]
306
+ Some bundled third‑party dependencies are licensed under GPL‑3.0; the LICENSE file lists them explicitly.
354
307
 
355
- [00]: https://dotfiles.io
356
- [01]: https://opensource.org/license/apache-2-0/ "Apache License, Version 2.0"
357
- [02]: https://opensource.org/licenses/MIT "The MIT License"
358
- [03]: https://www.gnu.org/software/bash/ "GNU Bash"
359
- [04]: https://github.com/sebastienrousseau/dotfiles/blob/master/.github/CODE-OF-CONDUCT.md "Code of Conduct"
360
- [05]: https://github.com/sebastienrousseau/dotfiles/blob/master/.github/CONTRIBUTING.md "Contributing Guidelines"
361
- [06]:https://www.codacy.com/gh/sebastienrousseau/dotfiles/dashboard "Codacy"
362
- [07]: https://curl.se/ "cURL"
363
- [08]: https://www.debian.org/ "Debian"
364
- [09]: https://www.deepin.org/en/ "Deepin"
365
- [10]: https://devuan.org/ "Devuan"
366
- [11]: https://github.com/sebastienrousseau/dotfiles/docs "Documentation"
367
- [12]: https://github.com/sebastienrousseau/dotfiles/archive/refs/tags/v0.2.469.tar.gz "Download Dotfiles v0.2.469"
368
- [13]: https://github.com/sebastienrousseau/dotfiles/network/members "List of members"
369
- [14]: https://github.com/sebastienrousseau/dotfiles/graphs/contributors "List of contributors"
370
- [15]: https://git-scm.com/ "Git"
371
- [16]: https://github.com/sebastienrousseau/dotfiles "Dotfiles"
372
- [17]: https://github.com/sebastienrousseau/dotfiles/issues "Issues"
373
- [18]: https://www.kali.org/ "Kali Linux"
374
- [19]: https://www.gnu.org/software/make/ "GNU Make"
375
- [20]:https://www.npmjs.com/package/@sebastienrousseau/dotfiles "Dotfiles on NPM"
376
- [21]: https://pnpm.io "PnPM"
377
- [22]: https://pop.system76.com/ "Pop!_OS"
378
- [23]: https://q4os.org/ "Q4OS"
379
- [24]: https://github.com/sebastienrousseau/dotfiles/releases "Dotfiles Releases"
380
- [25]: http://semver.org/ "Semantic Versioning"
381
- [26]: https://www.gnu.org/software/shell/ "GNU Shell"
382
- [27]: https://ubuntu.com/ "Ubuntu"
383
- [28]: https://www.gnu.org/software/wget/ "GNU Wget"
384
- [29]: https://zorinos.com/ "Zorin OS"
385
- [30]: https://www.zsh.org/ "Zsh"
308
+ ---
386
309
 
387
- [getting-started-url]: https://github.com/sebastienrousseau/dotfiles#getting-started
310
+ <div align="center">
388
311
 
389
- [banner]: https://kura.pro/dotfiles/v2/images/titles/title-dotfiles.svg "Banner of Dotfiles"
390
- [codacy-grade]: https://img.shields.io/codacy/grade/634cfc4de08e492ebcbb341631066241?style=for-the-badge "Codacy grade"
391
- [contributors-shield]: https://img.shields.io/github/contributors/sebastienrousseau/dotfiles.svg?style=for-the-badge "Contributors"
312
+ 🎨 Designed by **[Sebastien Rousseau](https://sebastienrousseau.com/)**
313
+ 🚀 Engineered with **[Euxis](https://euxis.co/)** Enterprise Unified eXecution Intelligence System
392
314
 
393
- [divider]: https://kura.pro/common/images/elements/divider.svg "Divider"
394
- [download_button]: https://kura.pro/common/images/buttons/button-secondary.svg "Download"
395
- [forks-shield]: https://img.shields.io/github/forks/sebastienrousseau/dotfiles.svg?style=for-the-badge "Forks"
396
- [getting_started]: https://kura.pro/common/images/buttons/button-primary.svg "Getting Started"
397
- [license]: https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge\&color=ff69b4 "License"
398
- [love]: https://kura.pro/common/images/shields/made-with-love.svg "Made with Love"
315
+ </div>