@sebastienrousseau/dotfiles 0.2.501 → 0.2.503

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 (420) hide show
  1. package/CHANGELOG.md +155 -4
  2. package/LICENSE +21 -1283
  3. package/README.md +40 -8
  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/01-dot-cli.md +63 -45
  20. package/docs/manual/03-reference/02-config-files.md +2 -2
  21. package/docs/manual/03-reference/05-feature-flags.md +62 -3
  22. package/docs/manual/_toc.yml +1 -1
  23. package/docs/manual/command-index.md +72 -55
  24. package/docs/manual/index.md +66 -0
  25. package/docs/operations/CI_COMPOSITES.md +2 -2
  26. package/docs/operations/COMPLETIONS.md +2 -2
  27. package/docs/operations/COVERAGE.md +40 -6
  28. package/docs/operations/HARD_AUDIT_2026.md +631 -0
  29. package/docs/operations/MAINTENANCE.md +3 -3
  30. package/docs/operations/MANIFEST.md +127 -0
  31. package/docs/operations/REGISTRY.md +89 -0
  32. package/docs/operations/RELEASE_PIPELINE.md +130 -0
  33. package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
  34. package/docs/operations/ROADMAP_2026.md +665 -0
  35. package/docs/operations/ROADMAP_V0_2_503.md +134 -0
  36. package/docs/operations/TESTING.md +17 -0
  37. package/docs/operations/TRACEABILITY.md +9 -3
  38. package/docs/operations/VERSION_SYNC.md +4 -4
  39. package/docs/reference/POWERSHELL_PARITY.md +81 -0
  40. package/docs/registry.json +6 -0
  41. package/docs/schema/dot-env-v1.json +110 -0
  42. package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
  43. package/docs/security/CI_PINNING.md +121 -0
  44. package/docs/security/COMMIT_SIGNING.md +138 -0
  45. package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
  46. package/docs/security/DISCLOSURE.md +130 -0
  47. package/docs/security/FUZZING.md +114 -0
  48. package/docs/security/INSTALL_VERIFICATION.md +2 -2
  49. package/docs/security/KEY_ROTATION.md +81 -1
  50. package/docs/security/POLICY_RELEASES.md +2 -2
  51. package/docs/security/SCORECARD.md +130 -15
  52. package/docs/security/SHELL_EXEMPTIONS.md +4 -4
  53. package/docs/security/VERIFY_RELEASE.md +201 -0
  54. package/docs/security/security-pubkey.asc +15 -0
  55. package/install.sh +67 -38
  56. package/package.json +1 -1
  57. package/scripts/README.md +123 -0
  58. package/scripts/ci/check-copyright-headers.sh +4 -93
  59. package/scripts/ci/check-shell-preamble.sh +4 -103
  60. package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
  61. package/scripts/diagnostics/a2a-conformance.sh +4 -4
  62. package/scripts/diagnostics/alias-governance.sh +1 -1
  63. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
  64. package/scripts/diagnostics/benchmark.sh +4 -4
  65. package/scripts/diagnostics/conflicts.sh +2 -2
  66. package/scripts/diagnostics/doctor-unified.sh +2 -2
  67. package/scripts/diagnostics/doctor.sh +45 -15
  68. package/scripts/diagnostics/drift-dashboard.sh +2 -2
  69. package/scripts/diagnostics/health.sh +4 -4
  70. package/scripts/diagnostics/history-analysis.sh +2 -2
  71. package/scripts/diagnostics/mcp-doctor.sh +10 -7
  72. package/scripts/diagnostics/perf.sh +4 -4
  73. package/scripts/diagnostics/scorecard.sh +4 -4
  74. package/scripts/diagnostics/security-score.sh +2 -2
  75. package/scripts/diagnostics/smoke-test.sh +2 -2
  76. package/scripts/diagnostics/snapshot.sh +2 -2
  77. package/scripts/diagnostics/verify.sh +4 -4
  78. package/scripts/diagnostics/version-locks.sh +2 -2
  79. package/scripts/diagnostics/workstation-attestation.sh +14 -14
  80. package/scripts/dot/commands/agent.sh +27 -22
  81. package/scripts/dot/commands/agents.sh +335 -0
  82. package/scripts/dot/commands/ai.sh +144 -25
  83. package/scripts/dot/commands/aliases.sh +10 -8
  84. package/scripts/dot/commands/appearance.sh +2 -2
  85. package/scripts/dot/commands/core.sh +12 -6
  86. package/scripts/dot/commands/diagnostics.sh +5 -5
  87. package/scripts/dot/commands/env-emit.sh +202 -0
  88. package/scripts/dot/commands/fleet.sh +290 -14
  89. package/scripts/dot/commands/init.sh +184 -0
  90. package/scripts/dot/commands/lint.sh +9 -4
  91. package/scripts/dot/commands/manual.sh +3 -3
  92. package/scripts/dot/commands/meta.sh +19 -10
  93. package/scripts/dot/commands/patterns.sh +2 -2
  94. package/scripts/dot/commands/registry.sh +263 -0
  95. package/scripts/dot/commands/restore.sh +4 -4
  96. package/scripts/dot/commands/secrets.sh +4 -3
  97. package/scripts/dot/commands/security.sh +2 -2
  98. package/scripts/dot/commands/tools.sh +62 -4
  99. package/scripts/dot/powershell/Dot.psm1 +199 -0
  100. package/scripts/fonts/install-nerd-fonts.sh +2 -2
  101. package/scripts/git-hooks/pre-commit-audit.sh +2 -2
  102. package/scripts/git-hooks/pre-push +13 -0
  103. package/scripts/lib/secrets_provider.sh +32 -6
  104. package/scripts/ops/ai-setup.sh +1 -1
  105. package/scripts/ops/bundle.sh +2 -2
  106. package/scripts/ops/chaos.sh +2 -2
  107. package/scripts/ops/chezmoi-apply.sh +4 -4
  108. package/scripts/ops/heal.sh +4 -4
  109. package/scripts/ops/post-apply-repair.sh +2 -2
  110. package/scripts/ops/prewarm.sh +2 -2
  111. package/scripts/ops/release.sh +4 -4
  112. package/scripts/ops/rollback.sh +18 -4
  113. package/scripts/ops/setup.sh +2 -2
  114. package/scripts/qa/check-version-consistency.sh +123 -0
  115. package/scripts/qa/coverage-baseline.sh +1 -1
  116. package/scripts/qa/docs-coverage.sh +2 -2
  117. package/scripts/qa/powershell-contract.ps1 +1 -1
  118. package/scripts/qa/scorecard-snapshot.sh +127 -0
  119. package/scripts/security/backup.sh +2 -2
  120. package/scripts/security/check-disclosure-key-expiry.sh +110 -0
  121. package/scripts/security/dns-doh.sh +4 -4
  122. package/scripts/security/encryption-check.sh +4 -4
  123. package/scripts/security/enforce-policies.sh +2 -2
  124. package/scripts/security/firewall.sh +4 -4
  125. package/scripts/security/lock-configs.sh +11 -2
  126. package/scripts/security/lock-screen.sh +4 -4
  127. package/scripts/security/manage-secrets.sh +2 -2
  128. package/scripts/security/ssh-cert.sh +2 -2
  129. package/scripts/security/telemetry-kill.sh +4 -4
  130. package/scripts/security/usb-safety.sh +4 -4
  131. package/scripts/theme/extract-heic-frames.sh +114 -0
  132. package/scripts/theme/rebuild-themes.sh +8 -1
  133. package/scripts/theme/switch.sh +13 -6
  134. package/scripts/theme/wallpaper-sync.sh +297 -93
  135. package/scripts/tuning/linux.sh +2 -2
  136. package/scripts/tuning/macos.sh +2 -2
  137. package/scripts/version-sync.sh +58 -7
  138. package/dot_config/.module-manifest.json +0 -69
  139. package/dot_config/ai/identity.md +0 -23
  140. package/dot_config/ai/patterns/architect.md +0 -16
  141. package/dot_config/ai/patterns/hardener.md +0 -15
  142. package/dot_config/ai/patterns/refactor.md +0 -15
  143. package/dot_config/aider/aider.conf.yml +0 -32
  144. package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
  145. package/dot_config/ansible/ansible.cfg +0 -11
  146. package/dot_config/atuin/config.toml.tmpl +0 -47
  147. package/dot_config/bat/config +0 -23
  148. package/dot_config/brave-flags.conf.tmpl +0 -7
  149. package/dot_config/btop/btop.conf +0 -16
  150. package/dot_config/btop/themes/tokyonight.theme +0 -34
  151. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  152. package/dot_config/claude/mcp_servers.json +0 -20
  153. package/dot_config/containers/containers.conf +0 -14
  154. package/dot_config/curl/dot_curlrc +0 -18
  155. package/dot_config/dlv/config.yml +0 -39
  156. package/dot_config/docker/config.json +0 -15
  157. package/dot_config/dotfiles/agent-card.json +0 -29
  158. package/dot_config/dotfiles/agent-profiles.json +0 -92
  159. package/dot_config/dotfiles/boot/README.md +0 -13
  160. package/dot_config/dotfiles/grub/README.md +0 -13
  161. package/dot_config/dotfiles/lock/README.md +0 -13
  162. package/dot_config/dotfiles/mcp-lock.json +0 -33
  163. package/dot_config/dotfiles/mcp-policy.json +0 -52
  164. package/dot_config/dotfiles/mcp-registry.json +0 -47
  165. package/dot_config/dotfiles/model-registry.json +0 -20
  166. package/dot_config/dotfiles/policy-bundles.json +0 -38
  167. package/dot_config/dotfiles/prompt-registry.json +0 -16
  168. package/dot_config/dotfiles/versions.env +0 -18
  169. package/dot_config/duf/duf.conf +0 -6
  170. package/dot_config/duti/defaults.duti +0 -5
  171. package/dot_config/emoji/emoji.txt +0 -34
  172. package/dot_config/environment.d/50-ssh-agent.conf +0 -2
  173. package/dot_config/environment.d/90-wayland.conf +0 -19
  174. package/dot_config/fastfetch/config.jsonc +0 -28
  175. package/dot_config/firefox/user.js.tmpl +0 -58
  176. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
  177. package/dot_config/fish/completions/dot.fish.tmpl +0 -115
  178. package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
  179. package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
  180. package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
  181. package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
  182. package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
  183. package/dot_config/fish/config.fish.tmpl +0 -44
  184. package/dot_config/fish/fish_plugins +0 -1
  185. package/dot_config/fish/functions/_.fish +0 -3
  186. package/dot_config/fish/functions/_cached_eval.fish +0 -131
  187. package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
  188. package/dot_config/fish/functions/als.fish +0 -46
  189. package/dot_config/fish/functions/bg-upgrade.fish +0 -7
  190. package/dot_config/fish/functions/c.fish +0 -3
  191. package/dot_config/fish/functions/cat.fish +0 -9
  192. package/dot_config/fish/functions/d.fish +0 -7
  193. package/dot_config/fish/functions/dot.fish +0 -34
  194. package/dot_config/fish/functions/h.fish +0 -3
  195. package/dot_config/fish/functions/l.fish +0 -7
  196. package/dot_config/fish/functions/la.fish +0 -7
  197. package/dot_config/fish/functions/ll.fish +0 -7
  198. package/dot_config/fish/functions/log_error.fish +0 -13
  199. package/dot_config/fish/functions/log_info.fish +0 -13
  200. package/dot_config/fish/functions/lr.fish +0 -7
  201. package/dot_config/fish/functions/lra.fish +0 -7
  202. package/dot_config/fish/functions/ls.fish +0 -7
  203. package/dot_config/fish/functions/lt.fish +0 -7
  204. package/dot_config/fish/functions/lta.fish +0 -7
  205. package/dot_config/fish/functions/notify-run.fish +0 -11
  206. package/dot_config/fish/functions/q.fish +0 -3
  207. package/dot_config/fish/functions/silent-run.fish +0 -7
  208. package/dot_config/fish/functions/yy.fish +0 -8
  209. package/dot_config/flatpak/flatpak.list +0 -4
  210. package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
  211. package/dot_config/foot/foot.ini.tmpl +0 -33
  212. package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
  213. package/dot_config/fzf/fzf.zsh +0 -48
  214. package/dot_config/gem/gemrc +0 -9
  215. package/dot_config/gh/config.yml +0 -12
  216. package/dot_config/ghostty/config.tmpl +0 -165
  217. package/dot_config/git/allowed_signers.tmpl +0 -18
  218. package/dot_config/git/attributes +0 -12
  219. package/dot_config/git/commit-template +0 -10
  220. package/dot_config/git/hooks/executable_commit-msg +0 -146
  221. package/dot_config/git/ignore +0 -27
  222. package/dot_config/gnupg/gpg-agent.conf +0 -11
  223. package/dot_config/go/golangci.yml +0 -118
  224. package/dot_config/go/gopls.json +0 -30
  225. package/dot_config/goose/config.yaml +0 -29
  226. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
  227. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
  228. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
  229. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
  230. package/dot_config/htop/htoprc +0 -20
  231. package/dot_config/inputrc +0 -2
  232. package/dot_config/ipython/profile_default/ipython_config.py +0 -19
  233. package/dot_config/just/justfile +0 -122
  234. package/dot_config/k9s/config.yaml +0 -65
  235. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  236. package/dot_config/kanshi/config.tmpl +0 -22
  237. package/dot_config/karabiner/karabiner.json +0 -14
  238. package/dot_config/kitty/kitty.conf.tmpl +0 -53
  239. package/dot_config/lazydocker/config.yml +0 -186
  240. package/dot_config/lazygit/config.yml +0 -35
  241. package/dot_config/mako/config +0 -47
  242. package/dot_config/mas/masapps.txt +0 -5
  243. package/dot_config/micro/settings.json +0 -3
  244. package/dot_config/mimeapps.list +0 -77
  245. package/dot_config/minikube/config.json +0 -13
  246. package/dot_config/mise/config.toml +0 -99
  247. package/dot_config/mongosh/mongoshrc.js +0 -68
  248. package/dot_config/mpv/input.conf +0 -47
  249. package/dot_config/mpv/mpv.conf +0 -47
  250. package/dot_config/mycli/myclirc +0 -67
  251. package/dot_config/nano/nanorc +0 -28
  252. package/dot_config/ncdu/config +0 -12
  253. package/dot_config/niri/config.kdl.tmpl +0 -327
  254. package/dot_config/nushell/aliases.nu +0 -18
  255. package/dot_config/nushell/cached_eval.nu +0 -80
  256. package/dot_config/nushell/completions.nu.tmpl +0 -52
  257. package/dot_config/nushell/config.nu.tmpl +0 -86
  258. package/dot_config/nushell/env.nu.tmpl +0 -102
  259. package/dot_config/nushell/functions.nu.tmpl +0 -17
  260. package/dot_config/nvim/init.lua +0 -18
  261. package/dot_config/nvim/lazy-lock.json +0 -58
  262. package/dot_config/nvim/lua/config/autocmds.lua +0 -107
  263. package/dot_config/nvim/lua/config/keymaps.lua +0 -92
  264. package/dot_config/nvim/lua/config/lazy.lua +0 -44
  265. package/dot_config/nvim/lua/config/options.lua +0 -49
  266. package/dot_config/nvim/lua/plugins/ai.lua +0 -75
  267. package/dot_config/nvim/lua/plugins/coding.lua +0 -216
  268. package/dot_config/nvim/lua/plugins/completion.lua +0 -60
  269. package/dot_config/nvim/lua/plugins/dap.lua +0 -412
  270. package/dot_config/nvim/lua/plugins/editor.lua +0 -55
  271. package/dot_config/nvim/lua/plugins/git.lua +0 -10
  272. package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
  273. package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
  274. package/dot_config/nvim/lua/plugins/rust.lua +0 -34
  275. package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
  276. package/dot_config/nvim/lua/plugins/ui.lua +0 -509
  277. package/dot_config/paru/paru.conf +0 -10
  278. package/dot_config/pip/pip.conf.tmpl +0 -32
  279. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
  280. package/dot_config/pueue/pueue.yml +0 -34
  281. package/dot_config/pypoetry/config.toml +0 -6
  282. package/dot_config/pyrightconfig.json +0 -5
  283. package/dot_config/raycast/README.md +0 -13
  284. package/dot_config/redis/redisclirc +0 -41
  285. package/dot_config/ripgrep/ripgreprc +0 -21
  286. package/dot_config/shell/00-core-paths.sh.tmpl +0 -134
  287. package/dot_config/shell/05-core-safety.sh +0 -48
  288. package/dot_config/shell/10-secrets.sh +0 -41
  289. package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
  290. package/dot_config/shell/40-ls-colors.sh +0 -49
  291. package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
  292. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
  293. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
  294. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
  295. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
  296. package/dot_config/shell/Brewfile +0 -207
  297. package/dot_config/shell/Brewfile.cask +0 -92
  298. package/dot_config/shell/Brewfile.cli +0 -127
  299. package/dot_config/shell/README.md +0 -284
  300. package/dot_config/shell/als_data.txt.tmpl +0 -65
  301. package/dot_config/shell/custom/auto_ls.zsh +0 -20
  302. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  303. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  304. package/dot_config/sops/dot_sops.yaml +0 -23
  305. package/dot_config/starship.toml.tmpl +0 -202
  306. package/dot_config/swaylock/config +0 -43
  307. package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
  308. package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
  309. package/dot_config/systemd/user/pueued.service +0 -12
  310. package/dot_config/systemd/user/ssh-agent.service +0 -12
  311. package/dot_config/task/Taskfile.yml +0 -86
  312. package/dot_config/tflint/tflint.hcl +0 -9
  313. package/dot_config/tmux/tmux.conf.tmpl +0 -223
  314. package/dot_config/topgrade.toml.tmpl +0 -54
  315. package/dot_config/user-dirs.dirs +0 -10
  316. package/dot_config/vscode/extensions.txt +0 -11
  317. package/dot_config/vscode/settings.json.tmpl +0 -82
  318. package/dot_config/waybar/config.jsonc.tmpl +0 -90
  319. package/dot_config/waybar/style.css.tmpl +0 -211
  320. package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
  321. package/dot_config/wget/wgetrc +0 -12
  322. package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
  323. package/dot_config/yarn/yarnrc.yml +0 -36
  324. package/dot_config/yazi/keymap.toml +0 -67
  325. package/dot_config/yazi/theme.toml +0 -102
  326. package/dot_config/yazi/yazi.toml +0 -40
  327. package/dot_config/zathura/zathurarc +0 -52
  328. package/dot_config/zellij/config.kdl.tmpl +0 -79
  329. package/dot_config/zsh/dot_zprofile +0 -7
  330. package/dot_config/zsh/dot_zshenv +0 -5
  331. package/dot_config/zsh/dot_zshrc.tmpl +0 -635
  332. package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
  333. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
  334. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  335. package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
  336. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
  337. package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
  338. package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
  339. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
  340. package/dot_local/bin/executable_ai-update +0 -195
  341. package/dot_local/bin/executable_ai_core +0 -152
  342. package/dot_local/bin/executable_antigravity +0 -11
  343. package/dot_local/bin/executable_b64 +0 -84
  344. package/dot_local/bin/executable_bm +0 -79
  345. package/dot_local/bin/executable_cb +0 -39
  346. package/dot_local/bin/executable_dot +0 -596
  347. package/dot_local/bin/executable_dot-ai +0 -36
  348. package/dot_local/bin/executable_dot-bootstrap +0 -77
  349. package/dot_local/bin/executable_dot-launch-or-focus +0 -52
  350. package/dot_local/bin/executable_dot-load-benchmark +0 -31
  351. package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
  352. package/dot_local/bin/executable_dot-theme-sync +0 -952
  353. package/dot_local/bin/executable_dot_completion +0 -57
  354. package/dot_local/bin/executable_dtags +0 -28
  355. package/dot_local/bin/executable_epoch +0 -67
  356. package/dot_local/bin/executable_extract +0 -41
  357. package/dot_local/bin/executable_gbd +0 -52
  358. package/dot_local/bin/executable_gd +0 -42
  359. package/dot_local/bin/executable_git-ai-commit +0 -175
  360. package/dot_local/bin/executable_git-ai-diff +0 -169
  361. package/dot_local/bin/executable_gl +0 -101
  362. package/dot_local/bin/executable_hash +0 -161
  363. package/dot_local/bin/executable_hashsum +0 -160
  364. package/dot_local/bin/executable_hex +0 -115
  365. package/dot_local/bin/executable_jsonv +0 -78
  366. package/dot_local/bin/executable_jwt +0 -94
  367. package/dot_local/bin/executable_kill-port +0 -75
  368. package/dot_local/bin/executable_lorem +0 -118
  369. package/dot_local/bin/executable_mkscript +0 -35
  370. package/dot_local/bin/executable_monitor +0 -56
  371. package/dot_local/bin/executable_myip +0 -51
  372. package/dot_local/bin/executable_notify +0 -24
  373. package/dot_local/bin/executable_open +0 -38
  374. package/dot_local/bin/executable_pw +0 -27
  375. package/dot_local/bin/executable_rec-start +0 -46
  376. package/dot_local/bin/executable_rec-stop +0 -35
  377. package/dot_local/bin/executable_regex +0 -132
  378. package/dot_local/bin/executable_start-niri +0 -8
  379. package/dot_local/bin/executable_tmux-sessionizer +0 -314
  380. package/dot_local/bin/executable_tour +0 -177
  381. package/dot_local/bin/executable_up +0 -23
  382. package/dot_local/bin/executable_update +0 -142
  383. package/dot_local/bin/executable_uuid +0 -87
  384. package/dot_local/bin/executable_win +0 -32
  385. package/dot_local/bin/executable_yamlv +0 -57
  386. package/dot_local/share/bash-completion/completions/dot +0 -72
  387. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  388. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  389. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  390. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  391. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  392. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  393. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  394. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  395. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  396. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  397. package/dot_local/share/man/man1/dot.1 +0 -149
  398. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
  399. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
  400. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
  401. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
  402. package/dot_local/share/zsh/completions/.keep +0 -0
  403. package/dot_local/share/zsh/completions/_dot +0 -283
  404. package/scripts/ci/check-dangerous-chmod.sh +0 -19
  405. package/scripts/ci/check-deps-dev.sh +0 -236
  406. package/scripts/ci/check-insecure-tls.sh +0 -61
  407. package/scripts/ci/check-regression-traceability.sh +0 -67
  408. package/scripts/ci/install-chezmoi-verified.sh +0 -64
  409. package/scripts/ci/run-coverage.sh +0 -362
  410. package/scripts/ci/validate-chezmoidata.sh +0 -25
  411. package/scripts/ci/validate-ci-config.sh +0 -224
  412. package/scripts/docs/build-manual.sh +0 -883
  413. package/scripts/docs/check-manual.sh +0 -213
  414. package/scripts/dot/lib/bento.sh +0 -50
  415. package/scripts/dot/lib/log.sh +0 -200
  416. package/scripts/dot/lib/platform.sh +0 -99
  417. package/scripts/dot/lib/ui.sh +0 -518
  418. package/scripts/dot/lib/utils.sh +0 -377
  419. package/scripts/maintenance/check-updates.sh +0 -131
  420. 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