@sebastienrousseau/dotfiles 0.2.502 → 0.2.504

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 (412) hide show
  1. package/CHANGELOG.md +109 -9
  2. package/LICENSE +21 -1283
  3. package/README.md +6 -4
  4. package/docs/CONFIG_STRATEGY.md +124 -0
  5. package/docs/COPYRIGHT +1 -1
  6. package/docs/GOVERNANCE.md +98 -0
  7. package/docs/MAINTAINERS.md +41 -0
  8. package/docs/OPENCODE.md +127 -0
  9. package/docs/README.md +2 -0
  10. package/docs/STRUCTURE.md +102 -0
  11. package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
  12. package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
  13. package/docs/architecture/REPO_LAYOUT.md +8 -8
  14. package/docs/archive/MILESTONE_v0.2.493.md +1 -1
  15. package/docs/index.md +2 -2
  16. package/docs/interop/POWERSHELL.md +1 -1
  17. package/docs/manual/00-introduction.md +1 -1
  18. package/docs/manual/01-concepts/02-trust-model.md +1 -1
  19. package/docs/manual/03-reference/02-config-files.md +2 -2
  20. package/docs/manual/_toc.yml +1 -1
  21. package/docs/manual/command-index.md +72 -59
  22. package/docs/operations/CI_COMPOSITES.md +2 -2
  23. package/docs/operations/COMPLETIONS.md +2 -2
  24. package/docs/operations/COVERAGE.md +5 -5
  25. package/docs/operations/HARD_AUDIT_2026.md +11 -11
  26. package/docs/operations/MAINTENANCE.md +3 -3
  27. package/docs/operations/MANIFEST.md +127 -0
  28. package/docs/operations/RELEASE_PIPELINE.md +130 -0
  29. package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
  30. package/docs/operations/ROADMAP_2026.md +6 -6
  31. package/docs/operations/ROADMAP_V0_2_503.md +134 -0
  32. package/docs/operations/TESTING.md +17 -0
  33. package/docs/operations/TRACEABILITY.md +6 -3
  34. package/docs/operations/VERSION_SYNC.md +4 -4
  35. package/docs/reference/POWERSHELL_PARITY.md +8 -7
  36. package/docs/schema/dot-env-v1.json +110 -0
  37. package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
  38. package/docs/security/CI_PINNING.md +17 -9
  39. package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
  40. package/docs/security/FUZZING.md +114 -0
  41. package/docs/security/INSTALL_VERIFICATION.md +2 -2
  42. package/docs/security/POLICY_RELEASES.md +2 -2
  43. package/docs/security/SCORECARD.md +58 -3
  44. package/docs/security/SHELL_EXEMPTIONS.md +4 -4
  45. package/docs/security/VERIFY_RELEASE.md +201 -0
  46. package/install.sh +118 -5
  47. package/package.json +1 -1
  48. package/scripts/README.md +123 -0
  49. package/scripts/ci/check-copyright-headers.sh +4 -93
  50. package/scripts/ci/check-shell-preamble.sh +4 -103
  51. package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
  52. package/scripts/diagnostics/a2a-conformance.sh +4 -4
  53. package/scripts/diagnostics/alias-governance.sh +1 -1
  54. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
  55. package/scripts/diagnostics/benchmark.sh +5 -5
  56. package/scripts/diagnostics/conflicts.sh +2 -2
  57. package/scripts/diagnostics/doctor-unified.sh +3 -3
  58. package/scripts/diagnostics/doctor.sh +10 -10
  59. package/scripts/diagnostics/drift-dashboard.sh +2 -2
  60. package/scripts/diagnostics/health.sh +4 -4
  61. package/scripts/diagnostics/history-analysis.sh +2 -2
  62. package/scripts/diagnostics/mcp-doctor.sh +10 -7
  63. package/scripts/diagnostics/perf.sh +5 -5
  64. package/scripts/diagnostics/scorecard.sh +4 -4
  65. package/scripts/diagnostics/security-score.sh +25 -6
  66. package/scripts/diagnostics/smoke-test.sh +2 -2
  67. package/scripts/diagnostics/snapshot.sh +2 -2
  68. package/scripts/diagnostics/verify.sh +4 -4
  69. package/scripts/diagnostics/version-locks.sh +13 -3
  70. package/scripts/diagnostics/workstation-attestation.sh +14 -14
  71. package/scripts/dot/commands/agent.sh +8 -0
  72. package/scripts/dot/commands/agents.sh +14 -4
  73. package/scripts/dot/commands/ai.sh +156 -37
  74. package/scripts/dot/commands/appearance.sh +2 -2
  75. package/scripts/dot/commands/core.sh +2 -2
  76. package/scripts/dot/commands/diagnostics.sh +5 -5
  77. package/scripts/dot/commands/env-emit.sh +202 -0
  78. package/scripts/dot/commands/fleet.sh +22 -16
  79. package/scripts/dot/commands/init.sh +4 -4
  80. package/scripts/dot/commands/lint.sh +9 -4
  81. package/scripts/dot/commands/manual.sh +3 -3
  82. package/scripts/dot/commands/meta.sh +12 -6
  83. package/scripts/dot/commands/patterns.sh +2 -2
  84. package/scripts/dot/commands/registry.sh +4 -4
  85. package/scripts/dot/commands/restore.sh +4 -4
  86. package/scripts/dot/commands/secrets.sh +4 -3
  87. package/scripts/dot/commands/security.sh +2 -2
  88. package/scripts/dot/commands/tools.sh +13 -3
  89. package/scripts/dot/powershell/Dot.psm1 +199 -0
  90. package/scripts/fonts/install-nerd-fonts.sh +2 -2
  91. package/scripts/git-hooks/pre-commit-audit.sh +3 -3
  92. package/scripts/git-hooks/pre-push +13 -0
  93. package/scripts/ops/ai-setup.sh +1 -1
  94. package/scripts/ops/bundle.sh +3 -3
  95. package/scripts/ops/chaos.sh +2 -2
  96. package/scripts/ops/chezmoi-apply.sh +12 -6
  97. package/scripts/ops/heal.sh +4 -4
  98. package/scripts/ops/post-apply-repair.sh +2 -2
  99. package/scripts/ops/prewarm.sh +2 -2
  100. package/scripts/ops/release.sh +4 -4
  101. package/scripts/ops/rollback.sh +4 -4
  102. package/scripts/ops/setup.sh +2 -2
  103. package/scripts/qa/check-version-consistency.sh +123 -0
  104. package/scripts/qa/coverage-baseline.sh +1 -1
  105. package/scripts/qa/docs-coverage.sh +2 -2
  106. package/scripts/qa/powershell-contract.ps1 +1 -1
  107. package/scripts/qa/scorecard-snapshot.sh +127 -0
  108. package/scripts/security/backup.sh +2 -2
  109. package/scripts/security/dns-doh.sh +4 -4
  110. package/scripts/security/encryption-check.sh +4 -4
  111. package/scripts/security/enforce-policies.sh +2 -2
  112. package/scripts/security/firewall.sh +4 -4
  113. package/scripts/security/lock-screen.sh +4 -4
  114. package/scripts/security/manage-secrets.sh +2 -2
  115. package/scripts/security/ssh-cert.sh +2 -2
  116. package/scripts/security/telemetry-kill.sh +4 -4
  117. package/scripts/security/usb-safety.sh +4 -4
  118. package/scripts/theme/extract-heic-frames.sh +114 -0
  119. package/scripts/theme/rebuild-themes.sh +31 -2
  120. package/scripts/theme/switch.sh +13 -6
  121. package/scripts/theme/wallpaper-sync.sh +297 -93
  122. package/scripts/tuning/linux.sh +2 -2
  123. package/scripts/tuning/macos.sh +2 -2
  124. package/scripts/version-sync.sh +74 -10
  125. package/dot_config/.module-manifest.json +0 -69
  126. package/dot_config/ai/identity.md +0 -23
  127. package/dot_config/ai/patterns/architect.md +0 -16
  128. package/dot_config/ai/patterns/hardener.md +0 -15
  129. package/dot_config/ai/patterns/refactor.md +0 -15
  130. package/dot_config/aider/aider.conf.yml +0 -32
  131. package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
  132. package/dot_config/ansible/ansible.cfg +0 -11
  133. package/dot_config/atuin/config.toml.tmpl +0 -47
  134. package/dot_config/bat/config +0 -23
  135. package/dot_config/brave-flags.conf.tmpl +0 -7
  136. package/dot_config/btop/btop.conf +0 -16
  137. package/dot_config/btop/themes/tokyonight.theme +0 -34
  138. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  139. package/dot_config/claude/mcp_servers.json +0 -20
  140. package/dot_config/containers/containers.conf +0 -14
  141. package/dot_config/curl/dot_curlrc +0 -18
  142. package/dot_config/dlv/config.yml +0 -39
  143. package/dot_config/docker/config.json +0 -15
  144. package/dot_config/dotfiles/agent-card.json +0 -29
  145. package/dot_config/dotfiles/agent-profiles.json +0 -92
  146. package/dot_config/dotfiles/boot/README.md +0 -13
  147. package/dot_config/dotfiles/grub/README.md +0 -13
  148. package/dot_config/dotfiles/lock/README.md +0 -13
  149. package/dot_config/dotfiles/mcp-lock.json +0 -33
  150. package/dot_config/dotfiles/mcp-policy.json +0 -52
  151. package/dot_config/dotfiles/mcp-registry.json +0 -47
  152. package/dot_config/dotfiles/model-registry.json +0 -20
  153. package/dot_config/dotfiles/policy-bundles.json +0 -38
  154. package/dot_config/dotfiles/prompt-registry.json +0 -16
  155. package/dot_config/dotfiles/versions.env +0 -18
  156. package/dot_config/duf/duf.conf +0 -6
  157. package/dot_config/duti/defaults.duti +0 -5
  158. package/dot_config/emoji/emoji.txt +0 -34
  159. package/dot_config/environment.d/50-ssh-agent.conf +0 -2
  160. package/dot_config/environment.d/90-wayland.conf +0 -19
  161. package/dot_config/fastfetch/config.jsonc +0 -28
  162. package/dot_config/firefox/user.js.tmpl +0 -58
  163. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
  164. package/dot_config/fish/completions/dot.fish.tmpl +0 -115
  165. package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
  166. package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
  167. package/dot_config/fish/conf.d/direnv.fish +0 -4
  168. package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
  169. package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
  170. package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
  171. package/dot_config/fish/conf.d/mise-activate.fish +0 -5
  172. package/dot_config/fish/config.fish.tmpl +0 -44
  173. package/dot_config/fish/fish_plugins +0 -1
  174. package/dot_config/fish/functions/_.fish +0 -3
  175. package/dot_config/fish/functions/_cached_eval.fish +0 -131
  176. package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
  177. package/dot_config/fish/functions/als.fish +0 -46
  178. package/dot_config/fish/functions/bg-upgrade.fish +0 -7
  179. package/dot_config/fish/functions/c.fish +0 -3
  180. package/dot_config/fish/functions/cat.fish +0 -9
  181. package/dot_config/fish/functions/d.fish +0 -7
  182. package/dot_config/fish/functions/dot.fish +0 -34
  183. package/dot_config/fish/functions/h.fish +0 -3
  184. package/dot_config/fish/functions/l.fish +0 -7
  185. package/dot_config/fish/functions/la.fish +0 -7
  186. package/dot_config/fish/functions/ll.fish +0 -7
  187. package/dot_config/fish/functions/log_error.fish +0 -13
  188. package/dot_config/fish/functions/log_info.fish +0 -13
  189. package/dot_config/fish/functions/lr.fish +0 -7
  190. package/dot_config/fish/functions/lra.fish +0 -7
  191. package/dot_config/fish/functions/ls.fish +0 -7
  192. package/dot_config/fish/functions/lt.fish +0 -7
  193. package/dot_config/fish/functions/lta.fish +0 -7
  194. package/dot_config/fish/functions/notify-run.fish +0 -11
  195. package/dot_config/fish/functions/q.fish +0 -3
  196. package/dot_config/fish/functions/silent-run.fish +0 -7
  197. package/dot_config/fish/functions/yy.fish +0 -8
  198. package/dot_config/flatpak/flatpak.list +0 -4
  199. package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
  200. package/dot_config/foot/foot.ini.tmpl +0 -33
  201. package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
  202. package/dot_config/fzf/fzf.zsh +0 -48
  203. package/dot_config/gem/gemrc +0 -9
  204. package/dot_config/gh/config.yml +0 -12
  205. package/dot_config/ghostty/config.tmpl +0 -165
  206. package/dot_config/git/allowed_signers.tmpl +0 -18
  207. package/dot_config/git/attributes +0 -12
  208. package/dot_config/git/commit-template +0 -10
  209. package/dot_config/git/hooks/executable_commit-msg +0 -146
  210. package/dot_config/git/ignore +0 -27
  211. package/dot_config/gnupg/gpg-agent.conf +0 -11
  212. package/dot_config/go/golangci.yml +0 -118
  213. package/dot_config/go/gopls.json +0 -30
  214. package/dot_config/goose/config.yaml +0 -29
  215. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
  216. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
  217. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
  218. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
  219. package/dot_config/htop/htoprc +0 -20
  220. package/dot_config/inputrc +0 -2
  221. package/dot_config/ipython/profile_default/ipython_config.py +0 -19
  222. package/dot_config/just/justfile +0 -122
  223. package/dot_config/k9s/config.yaml +0 -65
  224. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  225. package/dot_config/kanshi/config.tmpl +0 -22
  226. package/dot_config/karabiner/karabiner.json +0 -14
  227. package/dot_config/kitty/kitty.conf.tmpl +0 -53
  228. package/dot_config/lazydocker/config.yml +0 -186
  229. package/dot_config/lazygit/config.yml +0 -35
  230. package/dot_config/mako/config +0 -47
  231. package/dot_config/mas/masapps.txt +0 -5
  232. package/dot_config/micro/settings.json +0 -3
  233. package/dot_config/mimeapps.list +0 -77
  234. package/dot_config/minikube/config.json +0 -13
  235. package/dot_config/mise/config.toml +0 -99
  236. package/dot_config/mongosh/mongoshrc.js +0 -68
  237. package/dot_config/mpv/input.conf +0 -47
  238. package/dot_config/mpv/mpv.conf +0 -47
  239. package/dot_config/mycli/myclirc +0 -67
  240. package/dot_config/nano/nanorc +0 -28
  241. package/dot_config/ncdu/config +0 -12
  242. package/dot_config/niri/config.kdl.tmpl +0 -327
  243. package/dot_config/nushell/aliases.nu +0 -18
  244. package/dot_config/nushell/cached_eval.nu +0 -80
  245. package/dot_config/nushell/completions.nu.tmpl +0 -52
  246. package/dot_config/nushell/config.nu.tmpl +0 -86
  247. package/dot_config/nushell/env.nu.tmpl +0 -102
  248. package/dot_config/nushell/functions.nu.tmpl +0 -17
  249. package/dot_config/nvim/init.lua +0 -18
  250. package/dot_config/nvim/lazy-lock.json +0 -58
  251. package/dot_config/nvim/lua/config/autocmds.lua +0 -107
  252. package/dot_config/nvim/lua/config/keymaps.lua +0 -92
  253. package/dot_config/nvim/lua/config/lazy.lua +0 -44
  254. package/dot_config/nvim/lua/config/options.lua +0 -49
  255. package/dot_config/nvim/lua/plugins/ai.lua +0 -75
  256. package/dot_config/nvim/lua/plugins/coding.lua +0 -216
  257. package/dot_config/nvim/lua/plugins/completion.lua +0 -60
  258. package/dot_config/nvim/lua/plugins/dap.lua +0 -412
  259. package/dot_config/nvim/lua/plugins/editor.lua +0 -55
  260. package/dot_config/nvim/lua/plugins/git.lua +0 -10
  261. package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
  262. package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
  263. package/dot_config/nvim/lua/plugins/rust.lua +0 -34
  264. package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
  265. package/dot_config/nvim/lua/plugins/ui.lua +0 -509
  266. package/dot_config/paru/paru.conf +0 -10
  267. package/dot_config/pip/pip.conf.tmpl +0 -32
  268. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
  269. package/dot_config/pueue/pueue.yml +0 -34
  270. package/dot_config/pypoetry/config.toml +0 -6
  271. package/dot_config/pyrightconfig.json +0 -5
  272. package/dot_config/raycast/README.md +0 -13
  273. package/dot_config/redis/redisclirc +0 -41
  274. package/dot_config/ripgrep/ripgreprc +0 -21
  275. package/dot_config/shell/00-core-paths.sh.tmpl +0 -141
  276. package/dot_config/shell/05-core-safety.sh +0 -48
  277. package/dot_config/shell/10-secrets.sh +0 -41
  278. package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
  279. package/dot_config/shell/40-ls-colors.sh +0 -49
  280. package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
  281. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
  282. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
  283. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
  284. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
  285. package/dot_config/shell/Brewfile +0 -207
  286. package/dot_config/shell/Brewfile.cask +0 -92
  287. package/dot_config/shell/Brewfile.cli +0 -127
  288. package/dot_config/shell/README.md +0 -284
  289. package/dot_config/shell/als_data.txt.tmpl +0 -65
  290. package/dot_config/shell/custom/auto_ls.zsh +0 -20
  291. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  292. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  293. package/dot_config/sops/dot_sops.yaml +0 -23
  294. package/dot_config/starship.toml.tmpl +0 -202
  295. package/dot_config/swaylock/config +0 -43
  296. package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
  297. package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
  298. package/dot_config/systemd/user/pueued.service +0 -12
  299. package/dot_config/systemd/user/ssh-agent.service +0 -12
  300. package/dot_config/task/Taskfile.yml +0 -86
  301. package/dot_config/tflint/tflint.hcl +0 -9
  302. package/dot_config/tmux/tmux.conf.tmpl +0 -223
  303. package/dot_config/topgrade.toml.tmpl +0 -54
  304. package/dot_config/user-dirs.dirs +0 -10
  305. package/dot_config/vscode/extensions.txt +0 -11
  306. package/dot_config/vscode/settings.json.tmpl +0 -82
  307. package/dot_config/waybar/config.jsonc.tmpl +0 -90
  308. package/dot_config/waybar/style.css.tmpl +0 -211
  309. package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
  310. package/dot_config/wget/wgetrc +0 -12
  311. package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
  312. package/dot_config/yarn/yarnrc.yml +0 -36
  313. package/dot_config/yazi/keymap.toml +0 -67
  314. package/dot_config/yazi/theme.toml +0 -102
  315. package/dot_config/yazi/yazi.toml +0 -40
  316. package/dot_config/zathura/zathurarc +0 -52
  317. package/dot_config/zellij/config.kdl.tmpl +0 -79
  318. package/dot_config/zsh/dot_zprofile +0 -7
  319. package/dot_config/zsh/dot_zshenv +0 -5
  320. package/dot_config/zsh/dot_zshrc.tmpl +0 -688
  321. package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
  322. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
  323. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  324. package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
  325. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
  326. package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
  327. package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
  328. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
  329. package/dot_local/bin/executable_ai-update +0 -195
  330. package/dot_local/bin/executable_ai_core +0 -152
  331. package/dot_local/bin/executable_antigravity +0 -11
  332. package/dot_local/bin/executable_b64 +0 -84
  333. package/dot_local/bin/executable_bm +0 -79
  334. package/dot_local/bin/executable_cb +0 -39
  335. package/dot_local/bin/executable_dot +0 -636
  336. package/dot_local/bin/executable_dot-ai +0 -36
  337. package/dot_local/bin/executable_dot-bootstrap +0 -76
  338. package/dot_local/bin/executable_dot-launch-or-focus +0 -52
  339. package/dot_local/bin/executable_dot-load-benchmark +0 -31
  340. package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
  341. package/dot_local/bin/executable_dot-theme-sync +0 -952
  342. package/dot_local/bin/executable_dot_completion +0 -57
  343. package/dot_local/bin/executable_dtags +0 -28
  344. package/dot_local/bin/executable_epoch +0 -67
  345. package/dot_local/bin/executable_extract +0 -41
  346. package/dot_local/bin/executable_gbd +0 -52
  347. package/dot_local/bin/executable_gd +0 -42
  348. package/dot_local/bin/executable_git-ai-commit +0 -175
  349. package/dot_local/bin/executable_git-ai-diff +0 -169
  350. package/dot_local/bin/executable_gl +0 -101
  351. package/dot_local/bin/executable_hash +0 -161
  352. package/dot_local/bin/executable_hashsum +0 -160
  353. package/dot_local/bin/executable_hex +0 -115
  354. package/dot_local/bin/executable_jsonv +0 -78
  355. package/dot_local/bin/executable_jwt +0 -94
  356. package/dot_local/bin/executable_kill-port +0 -75
  357. package/dot_local/bin/executable_lorem +0 -118
  358. package/dot_local/bin/executable_mkscript +0 -35
  359. package/dot_local/bin/executable_monitor +0 -56
  360. package/dot_local/bin/executable_myip +0 -51
  361. package/dot_local/bin/executable_notify +0 -24
  362. package/dot_local/bin/executable_open +0 -38
  363. package/dot_local/bin/executable_pw +0 -27
  364. package/dot_local/bin/executable_rec-start +0 -46
  365. package/dot_local/bin/executable_rec-stop +0 -35
  366. package/dot_local/bin/executable_regex +0 -132
  367. package/dot_local/bin/executable_start-niri +0 -8
  368. package/dot_local/bin/executable_tmux-sessionizer +0 -314
  369. package/dot_local/bin/executable_tour +0 -177
  370. package/dot_local/bin/executable_up +0 -23
  371. package/dot_local/bin/executable_update +0 -142
  372. package/dot_local/bin/executable_uuid +0 -87
  373. package/dot_local/bin/executable_win +0 -32
  374. package/dot_local/bin/executable_yamlv +0 -57
  375. package/dot_local/share/bash-completion/completions/dot +0 -72
  376. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  377. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  378. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  379. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  380. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  381. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  382. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  383. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  384. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  385. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  386. package/dot_local/share/man/man1/dot.1 +0 -149
  387. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
  388. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
  389. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
  390. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
  391. package/dot_local/share/zsh/completions/.keep +0 -0
  392. package/dot_local/share/zsh/completions/_dot +0 -287
  393. package/scripts/ci/check-dangerous-chmod.sh +0 -19
  394. package/scripts/ci/check-deps-dev.sh +0 -236
  395. package/scripts/ci/check-insecure-tls.sh +0 -61
  396. package/scripts/ci/check-regression-traceability.sh +0 -67
  397. package/scripts/ci/dot-cli-startup-bench.sh +0 -126
  398. package/scripts/ci/install-chezmoi-verified.sh +0 -67
  399. package/scripts/ci/lint-reusable-pins.sh +0 -78
  400. package/scripts/ci/run-coverage.sh +0 -451
  401. package/scripts/ci/validate-chezmoidata.sh +0 -25
  402. package/scripts/ci/validate-ci-config.sh +0 -224
  403. package/scripts/ci/windows-smoke-test.ps1 +0 -136
  404. package/scripts/docs/build-manual.sh +0 -883
  405. package/scripts/docs/check-manual.sh +0 -213
  406. package/scripts/dot/lib/bento.sh +0 -50
  407. package/scripts/dot/lib/log.sh +0 -200
  408. package/scripts/dot/lib/platform.sh +0 -112
  409. package/scripts/dot/lib/ui.sh +0 -650
  410. package/scripts/dot/lib/utils.sh +0 -377
  411. package/scripts/maintenance/check-updates.sh +0 -131
  412. package/scripts/release/package-policy-bundles.sh +0 -125
@@ -1,195 +0,0 @@
1
- #!/usr/bin/env bash
2
- ## AI Update — Dotfiles AI workflow updater for cross-platform environments.
3
- ##
4
- ## Updates all AI-related tools and runtimes including mise, npm globals,
5
- ## pipx tools, Ollama, and LM Studio. Auto-detects installation methods.
6
- ##
7
- ## # Requirements
8
- ## - curl: For downloading updates
9
- ## - sudo: For system-level updates (Linux)
10
- ## - zstd: For Ollama archive extraction (Linux)
11
- ##
12
- ## # Usage
13
- ## ai-update # Update all AI tools
14
- ##
15
- ## # Platform Notes
16
- ## - macOS: Updates via Homebrew where applicable
17
- ## - Linux: Updates via APT, manual binaries, or pipx
18
- ## - WSL: Full Linux support
19
-
20
- set -euo pipefail
21
-
22
- # --- Configuration & Theme ---
23
- CYAN=''
24
- PURPLE=''
25
- GREEN=''
26
- YELLOW=''
27
- RED=''
28
- GRAY=''
29
- NC=''
30
- BOLD=''
31
-
32
- # --- UI Components ---
33
- log_header() {
34
- printf '%b\n' "
35
- ${BOLD}${PURPLE}Updating AI Environment${NC}"
36
- printf '%b\n' "${GRAY}-----------------------------------------------------------${NC}"
37
- }
38
-
39
- step() { echo -ne "${CYAN}->${NC} ${BOLD}$1...${NC} "; }
40
- ok() { printf '%b\n' "${GREEN}done${NC}"; }
41
- skip() { printf '%b\n' "${YELLOW}skipped${NC} ${GRAY}($1)${NC}"; }
42
- err() { printf '%b\n' "${RED}error${NC}
43
- ${RED}$1${NC}"; }
44
-
45
- # --- Initialization ---
46
- log_header
47
-
48
- # Pre-auth sudo to avoid mid-script interruptions
49
- if [[ "$(uname -s)" == "Linux" ]]; then
50
- step "Authenticating sudo"
51
- if sudo -v; then ok; else
52
- err "Sudo required for system updates"
53
- exit 1
54
- fi
55
- fi
56
-
57
- # --- 1. mise Core (Multi-Method Detection) ---
58
- if command -v mise >/dev/null 2>&1; then
59
- step "Checking mise core"
60
- if [[ "$(uname -s)" == "Linux" ]] && command -v pacman >/dev/null 2>&1 && pacman -Qs mise >/dev/null 2>&1; then
61
- # Handle Arch/CachyOS AUR/Official package
62
- sudo pacman -S --noconfirm mise >/dev/null 2>&1 || true
63
- ok
64
- elif [[ "$(uname -s)" == "Linux" ]] && command -v dpkg >/dev/null 2>&1 && dpkg -s mise >/dev/null 2>&1; then
65
- # Handle your ZorinOS APT installation
66
- sudo apt update -y -o Dir::Etc::sourcelist="sources.list.d/jdx.list" >/dev/null 2>&1 || true
67
- sudo apt install --only-upgrade -y mise >/dev/null 2>&1
68
- ok
69
- elif command -v brew >/dev/null 2>&1 && brew list mise >/dev/null 2>&1; then
70
- # Handle macOS/Linux Brew installation
71
- brew upgrade mise >/dev/null 2>&1
72
- ok
73
- else
74
- # Fallback for standalone binary installation
75
- if mise self-update -y >/dev/null 2>&1; then ok; else skip "manual update needed"; fi
76
- fi
77
- else
78
- skip "mise not found"
79
- fi
80
-
81
- # --- 2. System & Language Packages ---
82
-
83
- # Homebrew
84
- if command -v brew >/dev/null 2>&1; then
85
- step "Homebrew packages"
86
- brew update >/dev/null && brew upgrade --quiet >/dev/null
87
- ok
88
- fi
89
-
90
- # NPM Globals (via mise)
91
- if command -v mise >/dev/null 2>&1; then
92
- step "NPM (claude, gemini, etc)"
93
- mise exec node -- npm update -g --audit=false >/dev/null 2>&1
94
- ok
95
-
96
- step "Kiro CLI"
97
- if [[ "$(uname -s)" == "Darwin" ]]; then
98
- skip "managed by Kiro app bundle via mise plugin"
99
- elif mise upgrade kiro-cli >/dev/null 2>&1; then
100
- ok
101
- else
102
- skip "mise plugin update unavailable"
103
- fi
104
- fi
105
-
106
- # Pipx (aider, sgpt)
107
- if command -v pipx >/dev/null 2>&1; then
108
- step "Pipx tools"
109
- pipx upgrade-all >/dev/null 2>&1
110
- ok
111
- fi
112
-
113
- # --- 3. Specialized AI Binaries ---
114
-
115
- # Ollama (Verified Manual Override)
116
- if command -v ollama >/dev/null 2>&1; then
117
- if [[ "$(uname -s)" == "Linux" ]]; then
118
- step "Ollama (Manual Deployment)"
119
- arch="$(uname -m)"
120
- case "$arch" in
121
- x86_64 | amd64) ollama_arch="amd64" ;;
122
- aarch64 | arm64) ollama_arch="arm64" ;;
123
- *) ollama_arch="" ;;
124
- esac
125
-
126
- if [[ -n "$ollama_arch" ]]; then
127
- # Check for updates by comparing local vs remote version
128
- current_ver="$(ollama --version | awk '{print $NF}' | tr -d '[:space:]')"
129
- # This is a bit slow but safer than downloading every time
130
- latest_ver="$(curl -fsSL -I https://github.com/ollama/ollama/releases/latest | grep -i location | sed 's/.*\/v//;s/
131
-
132
- if [[ "$current_ver" == "$latest_ver" ]]; then
133
- skip "already up to date"
134
- else
135
- tmp_tar="$(umask 077 && mktemp)"
136
- trap 'rm -f "$tmp_tar"' EXIT
137
- tar_url="https://ollama.com/download/ollama-linux-${ollama_arch}.tar.zst"
138
-
139
- if curl -fsSL --retry 2 "$tar_url" -o "$tmp_tar" && zstd -t "$tmp_tar" >/dev/null 2>&1; then
140
- # Stop service safely
141
- if command -v systemctl >/dev/null 2>&1; then
142
- sudo systemctl stop ollama 2>/dev/null || true
143
- fi
144
-
145
- # Extract
146
- zstd -dc "$tmp_tar" | sudo tar -x -C /usr/local >/dev/null
147
-
148
- # Ensure permissions
149
- sudo chmod +x /usr/local/bin/ollama
150
-
151
- # Restart if systemd exists
152
- if command -v systemctl >/dev/null 2>&1; then
153
- sudo systemctl daemon-reload
154
- sudo systemctl start ollama 2>/dev/null || true
155
- fi
156
- ok
157
- else
158
- err "Integrity check failed"
159
- fi
160
- fi
161
- else
162
- skip "unsupported arch"
163
- fi
164
- else
165
- # macOS users typically use the .app or Brew
166
- step "Ollama (macOS)"
167
- if command -v brew >/dev/null 2>&1 && brew upgrade ollama --cask >/dev/null 2>&1; then
168
- ok
169
- else
170
- skip "Update via App"
171
- fi
172
- fi
173
- fi
174
-
175
- # LM Studio Runtime
176
- if command -v lms >/dev/null 2>&1; then
177
- step "LM Studio Runtime"
178
- lms runtime update >/dev/null 2>&1
179
- ok
180
- fi
181
-
182
- # --- 4. Final Summary ---
183
- printf '%b\n' "${GRAY}-----------------------------------------------------------${NC}"
184
- printf '%b\n' "${GREEN}${BOLD}Dotfiles Environment Ready${NC}"
185
-
186
- # Version Report
187
- printf '%b\n' "
188
- ${BOLD}System Version Status:${NC}"
189
- printf "%b%-12s%b %s\n" "${GRAY}" "Node:" "${NC}" "$(node -v 2>/dev/null || echo 'N/A')"
190
- printf "%b%-12s%b %s\n" "${GRAY}" "Kiro:" "${NC}" "$(kiro-cli --version 2>/dev/null | awk '{print $NF}' || echo 'N/A')"
191
- printf "%b%-12s%b %s\n" "${GRAY}" "Ollama:" "${NC}" "$(ollama --version 2>/dev/null | awk '{print $NF}' || echo 'N/A')"
192
- printf "%b%-12s%b %s\n" "${GRAY}" "Pipx:" "${NC}" "$(pipx --version 2>/dev/null || echo 'N/A')"
193
- printf "%b%-12s%b %s\n" "${GRAY}" "Mise:" "${NC}" "$(mise --version 2>/dev/null | awk '{print $1}' || echo 'N/A')"
194
-
195
- trap - EXIT
@@ -1,152 +0,0 @@
1
- #!/usr/bin/env bash
2
- ## AI Core — Central wrapper for AI operations in the Predictive Shell.
3
- ##
4
- ## Manages local LLM (llamafile) and fallback to GitHub Copilot CLI.
5
- ## Handles model downloading, server management, and query routing.
6
- ##
7
- ## # Requirements
8
- ## - curl: For downloading models and API requests
9
- ## - nc (netcat): For checking server availability
10
- ## - jq: For parsing JSON responses
11
- ## - llamafile (optional): Local LLM server
12
- ## - copilot (optional): GitHub Copilot CLI fallback
13
- ##
14
- ## # Usage
15
- ## ai_core status # Check AI subsystem status
16
- ## ai_core download # Download local LLM model (~4GB)
17
- ## ai_core start # Start local LLM server
18
- ## ai_core query "prompt" # Query the AI (auto-selects provider)
19
- ##
20
- ## # Platform Notes
21
- ## - Linux/macOS: Full support
22
- ## - WSL: Supported with llamafile or Copilot
23
- ## - Model stored in $XDG_DATA_HOME/ai/models/
24
-
25
- set -euo pipefail
26
-
27
- # Configuration
28
- LLAMAFILE_URL="https://huggingface.co/jart/inexpensive-llm/resolve/main/llamafile-server-0.1-llava-v1.5-7b-q4"
29
- MODEL_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/ai/models"
30
- MODEL_PATH="$MODEL_DIR/llava-v1.5-7b-q4.llamafile"
31
- # Default to port 8080 for llamafile server
32
- SERVER_PORT=8080
33
-
34
- # Ensure model directory exists
35
- ensure_model_dir() {
36
- if [ ! -d "$MODEL_DIR" ]; then
37
- mkdir -p "$MODEL_DIR"
38
- fi
39
- }
40
-
41
- # Check if we have a local LLM available
42
- check_local_llm() {
43
- if [ -f "$MODEL_PATH" ]; then
44
- return 0
45
- else
46
- return 1
47
- fi
48
- }
49
-
50
- # Download the model (interactive only)
51
- download_model() {
52
- ensure_model_dir
53
- echo "Local LLM model not found at $MODEL_PATH"
54
- echo "This feature requires downloading a localized LLM (~4GB)."
55
- read -p "Do you want to download it now? (y/n) " -n 1 -r
56
- echo
57
- if [[ $REPLY =~ ^[Yy]$ ]]; then
58
- echo "Downloading llamafile..."
59
- # Note: curl -L is used to follow redirects
60
- if curl -L -o "$MODEL_PATH" "$LLAMAFILE_URL"; then
61
- chmod +x "$MODEL_PATH"
62
- echo "Download complete. Model saved to $MODEL_PATH"
63
- else
64
- echo "Download failed."
65
- return 1
66
- fi
67
- else
68
- echo "Skipping download. AI features may be limited."
69
- return 1
70
- fi
71
- }
72
-
73
- # Verify status of AI subsystem
74
- status() {
75
- echo "--- Predictive Shell AI Core Status ---"
76
- if check_local_llm; then
77
- echo "Local LLM: Installed ($MODEL_PATH)"
78
- else
79
- echo "Local LLM: Not installed"
80
- fi
81
-
82
- # Check for other providers
83
- if command -v copilot &>/dev/null; then
84
- echo "GitHub Copilot CLI: Available"
85
- elif command -v gh &>/dev/null && gh copilot --version &>/dev/null; then
86
- echo "GitHub Copilot CLI: Available"
87
- else
88
- echo "GitHub Copilot CLI: Not available"
89
- fi
90
- }
91
-
92
- # Start the server (background)
93
- start_server() {
94
- if ! check_local_llm; then
95
- download_model || return 1
96
- fi
97
-
98
- echo "Starting Local LLM Server..."
99
- "$MODEL_PATH" --server --nobrowser --port "$SERVER_PORT" &
100
- echo "Server started on port $SERVER_PORT"
101
- }
102
-
103
- # Query the LLM
104
- # Usage: ai_core query "Your prompt here"
105
- query() {
106
- local prompt="$1"
107
-
108
- # Priority 1: Local LLM Server if running
109
- if nc -z localhost "$SERVER_PORT" 2>/dev/null; then
110
- # Simple curl based query to llamafile standard endpoint
111
- # Note: This is a simplified example payload
112
- curl -s -X POST "http://localhost:$SERVER_PORT/completion" \
113
- -H "Content-Type: application/json" \
114
- -d "{\"prompt\": \"$prompt\", \"n_predict\": 128}" | jq -r .content
115
- return
116
- fi
117
-
118
- # Priority 2: GitHub Copilot CLI
119
- if command -v copilot &>/dev/null; then
120
- echo "Local server not running. Using GitHub Copilot..."
121
- copilot -p "$prompt"
122
- return
123
- fi
124
-
125
- if command -v gh &>/dev/null && gh copilot --version &>/dev/null; then
126
- echo "Local server not running. Using GitHub Copilot..."
127
- gh copilot explain "$prompt"
128
- return
129
- fi
130
-
131
- echo "No AI provider available. Run 'ai_core start' or install GitHub Copilot CLI."
132
- }
133
-
134
- case "$1" in
135
- status)
136
- status
137
- ;;
138
- download)
139
- download_model
140
- ;;
141
- start)
142
- start_server
143
- ;;
144
- query)
145
- shift
146
- query "$@"
147
- ;;
148
- *)
149
- echo "Usage: $0 {status|download|start|query}"
150
- exit 1
151
- ;;
152
- esac
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Wrapper for Antigravity extension updates under Topgrade.
3
- # Clears Node/Electron env that can inject custom loaders and crash updater.
4
- set -euo pipefail
5
-
6
- unset NODE_OPTIONS
7
- unset ELECTRON_RUN_AS_NODE
8
- unset ELECTRON_NO_ATTACH_CONSOLE
9
- unset ELECTRON_ENABLE_LOGGING
10
-
11
- exec /usr/bin/antigravity "$@"
@@ -1,84 +0,0 @@
1
- #!/usr/bin/env bash
2
- # shellcheck disable=SC2034
3
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
4
- # Base64 Transcoder with URL-safe support.
5
- # Part of Dotfiles v0.2.495
6
-
7
- set -euo pipefail
8
-
9
- # ANSI Colors
10
- PURPLE='\033[38;5;135m'
11
- GRAY='\033[38;5;243m'
12
- RED='\033[38;5;196m'
13
- NC='\033[0m'
14
- BOLD='\033[1m'
15
-
16
- # Check if TTY for interactive components (though b64 is mostly non-interactive)
17
- IS_TTY=0
18
- if [ -t 1 ]; then IS_TTY=1; fi
19
-
20
- show_help() {
21
- if [ "$IS_TTY" -eq 1 ]; then
22
- printf '%b\n' "${BOLD}${PURPLE}󰇧 Base64 Transcoder${NC} ${GRAY}━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
23
- else
24
- echo "Base64 Transcoder"
25
- fi
26
-
27
- echo "Usage: b64 [options] [string]"
28
- echo "Options:"
29
- echo " -e, --encode Encode to base64 (default)"
30
- echo " -d, --decode Decode from base64"
31
- echo " -u, --url URL-safe mode"
32
- echo " -h, --help Show this help"
33
- exit 0
34
- }
35
-
36
- MODE="encode"
37
- URL_SAFE=0
38
- INPUT=""
39
-
40
- while [ $# -gt 0 ]; do
41
- case "$1" in
42
- -e | --encode)
43
- MODE="encode"
44
- shift
45
- ;;
46
- -d | --decode)
47
- MODE="decode"
48
- shift
49
- ;;
50
- -u | --url)
51
- URL_SAFE=1
52
- shift
53
- ;;
54
- -h | --help) show_help ;;
55
- *)
56
- INPUT="$1"
57
- shift
58
- ;;
59
- esac
60
- done
61
-
62
- if [ -z "$INPUT" ]; then
63
- if [ ! -t 0 ]; then
64
- INPUT=$(cat -)
65
- else
66
- show_help
67
- fi
68
- fi
69
-
70
- if [ "$MODE" = "encode" ]; then
71
- if [ "$URL_SAFE" -eq 1 ]; then
72
- printf "%s" "$INPUT" | base64 | tr '+/' '-_' | tr -d '='
73
- else
74
- printf "%s" "$INPUT" | base64
75
- fi
76
- else
77
- # Add padding if needed for URL-safe decode
78
- if [ "$URL_SAFE" -eq 1 ]; then
79
- INPUT=$(printf "%s" "$INPUT" | tr '-_' '+/')
80
- while [ $((${#INPUT} % 4)) -ne 0 ]; do INPUT="${INPUT}="; done
81
- fi
82
- printf "%s" "$INPUT" | base64 -d
83
- fi
84
- echo ""
@@ -1,79 +0,0 @@
1
- #!/bin/sh
2
- # Universal directory bookmarking with history support
3
- # Works across Bash, Zsh, and Fish
4
-
5
- set -eu
6
-
7
- # Cross-platform sed in-place (BSD vs GNU)
8
- _sed_i() {
9
- if sed --version >/dev/null 2>&1; then
10
- sed -i "$@" # GNU
11
- else
12
- sed -i '' "$@" # BSD (macOS)
13
- fi
14
- }
15
-
16
- BOOKMARKS_FILE="$HOME/.config/shell/bookmarks"
17
- mkdir -p "$(dirname "$BOOKMARKS_FILE")"
18
- touch "$BOOKMARKS_FILE"
19
-
20
- if [ -z "$1" ]; then
21
- echo "Usage: bm <add|goto|list|remove|update> [name]"
22
- exit 1
23
- fi
24
-
25
- action=$1
26
- name=$2
27
-
28
- case "$action" in
29
- add)
30
- if [ -z "$name" ]; then
31
- echo "Usage: bm add <name>"
32
- exit 1
33
- fi
34
- echo "$name $(pwd)" >>"$BOOKMARKS_FILE"
35
- echo "Bookmark '$name' added for $(pwd)"
36
- ;;
37
- goto)
38
- if [ -z "$name" ]; then
39
- echo "Usage: bm goto <name>"
40
- exit 1
41
- fi
42
- target=$(grep "^$name " "$BOOKMARKS_FILE" | cut -d' ' -f2-)
43
- if [ -n "$target" ] && [ -d "$target" ]; then
44
- # We output the target path, the shell alias/function must handle the cd
45
- echo "$target"
46
- else
47
- echo "Bookmark '$name' not found or invalid directory" >&2
48
- exit 1
49
- fi
50
- ;;
51
- list)
52
- if [ -t 1 ] && command -v gum >/dev/null 2>&1; then
53
- cat "$BOOKMARKS_FILE" | gum table --columns Name,Path
54
- else
55
- cat "$BOOKMARKS_FILE"
56
- fi
57
- ;;
58
- remove)
59
- if [ -z "$name" ]; then
60
- echo "Usage: bm remove <name>"
61
- exit 1
62
- fi
63
- _sed_i "/^$name /d" "$BOOKMARKS_FILE"
64
- echo "Bookmark '$name' removed"
65
- ;;
66
- update)
67
- if [ -z "$name" ]; then
68
- echo "Usage: bm update <name>"
69
- exit 1
70
- fi
71
- _sed_i "/^$name /d" "$BOOKMARKS_FILE"
72
- echo "$name $(pwd)" >>"$BOOKMARKS_FILE"
73
- echo "Bookmark '$name' updated to $(pwd)"
74
- ;;
75
- *)
76
- echo "Unknown action: $action"
77
- exit 1
78
- ;;
79
- esac
@@ -1,39 +0,0 @@
1
- #!/bin/sh
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
- # Universal clipboard integration (cb)
4
- # Supports macOS (pbcopy), Linux (xclip/wl-copy), and WSL (clip.exe)
5
-
6
- set -eu
7
-
8
- # Helper for rich feedback if TTY is present
9
- log_info() {
10
- if [ -t 1 ] && command -v gum >/dev/null 2>&1; then
11
- gum style --foreground 212 "󱉊 $1"
12
- else
13
- echo "cb: $1"
14
- fi
15
- }
16
-
17
- case "$(uname -s)" in
18
- Darwin)
19
- if [ -t 0 ]; then
20
- pbpaste
21
- else
22
- pbcopy && log_info "Copied to macOS clipboard"
23
- fi
24
- ;;
25
- Linux)
26
- if grep -qi microsoft /proc/version 2>/dev/null; then
27
- # WSL
28
- if [ -t 0 ]; then
29
- powershell.exe -command "Get-Clipboard" | tr -d '\r'
30
- else
31
- clip.exe && log_info "Copied to Windows clipboard (WSL)"
32
- fi
33
- elif [ -n "$WAYLAND_DISPLAY" ]; then
34
- if [ -t 0 ]; then wl-paste; else wl-copy && log_info "Copied to Wayland clipboard"; fi
35
- else
36
- if [ -t 0 ]; then xclip -selection clipboard -o; else xclip -selection clipboard && log_info "Copied to X11 clipboard"; fi
37
- fi
38
- ;;
39
- esac