Compare commits

..

202 Commits

Author SHA1 Message Date
cbfc9049a1 Merge remote-tracking branch 'origin/main' 2026-01-25 21:18:14 +02:00
12391d7757 chore(deps): yarn update 2026-01-25 21:17:51 +02:00
10fd3862aa chore: tmux and sesh cleanup 2026-01-25 21:17:35 +02:00
77b3173531 chore(nvim): tweak treesitter 2026-01-25 21:17:13 +02:00
e53a880e75 refactor(config): moves theme import to general
Moves theme import from top-level to the general section for better organization.
2026-01-25 21:13:59 +02:00
renovate[bot]
8efdde88a3 chore(deps): update actions/checkout action (v6.0.1 → v6.0.2) (#275)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 11:55:26 +02:00
renovate[bot]
575a80ffff chore(deps): update actions/setup-python action (v6.1.0 → v6.2.0) (#276)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 06:05:12 +00:00
renovate[bot]
e86c137529 chore(deps): update ivuorinen/actions action (v2026.01.13 → v2026.01.21) (#274)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-23 04:55:30 +00:00
renovate[bot]
cb35b5eb62 chore(deps): update peter-evans/create-pull-request action (v8.0.0 → v8.1.0) (#273)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-23 01:50:58 +00:00
github-actions[bot]
0ae6b106b7 chore: update pre-commit hooks (#272) 2026-01-15 21:39:46 +02:00
renovate[bot]
c61127abbe chore(deps): update pre-commit hook adrienverge/yamllint (v1.37.1 → v1.38.0) (#271)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 07:07:14 +02:00
renovate[bot]
4b8a53f687 chore(deps): update ivuorinen/actions action (v2026.01.09 → v2026.01.13) (#269)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 05:05:36 +00:00
renovate[bot]
712187578f chore(deps): update node.js (v24.12.0 → v24.13.0) (#270)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 02:11:39 +00:00
renovate[bot]
db4b663e64 chore(deps): update ivuorinen/actions action (v2026.01.01 → v2026.01.09) (#268)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-11 00:31:58 +00:00
6bb804ec7f feat(shell): clean up fisher plugins 2026-01-09 01:15:02 +02:00
github-actions[bot]
892216a8fc chore: update pre-commit hooks (#265) 2026-01-04 17:38:06 +02:00
renovate[bot]
a2a99445ff chore(deps)!: update ivuorinen/actions (v2025.12.16 → v2026.01.01) (#267) 2026-01-02 09:44:27 +02:00
renovate[bot]
678466b898 chore(deps): update pre-commit hook rhysd/actionlint (v1.7.9 → v1.7.10) (#266)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-01 04:25:25 +00:00
bd5eff8bce chore(tmux): switch to gum based sesh filter 2025-12-29 10:53:56 +02:00
2979cc6cfc chore(nvim): cleanup, add fff.nvim
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-12-22 16:16:15 +02:00
renovate[bot]
5630200d95 chore(deps): update ivuorinen/actions action (v2025.12.07 → v2025.12.16) (#264)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-17 16:21:29 +02:00
961efec364 feat: switch to biome, apply formatting, shellcheck (#227)
* feat: switch to biome, apply formatting, shellcheck
* chore: apply cr comments
* chore: few config tweaks, shellcheck hook now py-based
* chore: lint fixes and pr comments
* chore(lint): megalinter, and other fixes

Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-12-17 16:03:29 +02:00
4b0e38ffd2 chore(tmux): config cleanup
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-12-17 12:51:41 +02:00
github-actions[bot]
c6ba0e4036 chore: update pre-commit hooks (#263)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-12-15 09:35:47 +02:00
renovate[bot]
7b1ed2f596 chore(deps): update pre-commit hook igorshubovych/markdownlint-cli (v0.46.0 → v0.47.0) (#262)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-13 20:55:07 +00:00
renovate[bot]
82d48c8989 chore(deps): update node.js (v24.11.1 → v24.12.0) (#261)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-12 14:07:47 +00:00
github-actions[bot]
48f61fa917 chore: update pre-commit hooks (#260)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-12-11 13:56:31 +02:00
renovate[bot]
abc3408609 chore(deps): update image python to v3.14.2 (#259)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-11 04:16:31 +00:00
renovate[bot]
8bef11095e chore(deps)!: update peter-evans/create-pull-request (v7.0.11 → v8.0.0) (#258) 2025-12-10 01:23:11 +02:00
7d427d29bb chore: update workflows, go and yarn (#253) 2025-12-08 20:40:21 +02:00
renovate[bot]
fd71a1ad32 chore(deps): update peter-evans/create-pull-request action (v7.0.9 → v7.0.11) (#256)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-08 05:48:14 +00:00
renovate[bot]
277d47098f chore(deps): update image python to v3.14.1 (#255)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-08 05:48:06 +00:00
github-actions[bot]
d35014ed2e chore: update pre-commit hooks (#257) 2025-12-08 07:41:13 +02:00
github-actions[bot]
8e7af8ddc7 chore: update pre-commit hooks (#254) 2025-12-04 12:06:46 +02:00
099e6672c8 chore: upgrade actions 2025-12-02 23:54:02 +01:00
e578e52aff chore: upgrade yarn 2025-12-02 23:29:04 +01:00
renovate[bot]
0b5f80cb03 chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (42.27.0 → 42.27.1) (#251)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 09:15:57 +02:00
github-actions[bot]
72f42835ff chore: update pre-commit hooks (#252)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-12-01 09:14:14 +02:00
renovate[bot]
a949f0d4cf chore(deps): update actions/setup-python action (v6.0.0 → v6.1.0) (#250)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 05:54:45 +00:00
renovate[bot]
8b1e4462b3 chore(deps): update ivuorinen/actions action (v2025.11.02 → v2025.11.23) (#249)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 05:54:39 +00:00
github-actions[bot]
055cf7ef2e chore: update pre-commit hooks (#242) 2025-11-27 07:51:23 +02:00
renovate[bot]
8c2b3fb475 chore(deps): update peter-evans/create-pull-request action (v7.0.8 → v7.0.9) (#246)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-24 18:39:10 +00:00
3fa1efe88d chore(ci): remove .github/dependabot.yml
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-11-24 14:21:30 +02:00
9cc81c4cbf chore(deps): update github actions 2025-11-22 09:40:16 +02:00
bba76843db chore(deps): update pre-commit hooks 2025-11-22 09:39:37 +02:00
9018d1a038 chore(deps): update go version to 1.25.4 2025-11-22 09:38:39 +02:00
github-actions[bot]
a8595e2e07 chore: update pre-commit hooks (#241) 2025-11-17 08:10:49 +02:00
renovate[bot]
beb89e9490 chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (42.7.0 → 42.11.0) (#240)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-17 04:10:37 +00:00
dependabot[bot]
cb381fe57d chore(deps): bump js-yaml in the npm_and_yarn group across 1 directory (#239) 2025-11-16 01:22:30 +02:00
renovate[bot]
7be770a2af chore(deps): update node.js (v24.11.0 → v24.11.1) (#238)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-15 00:39:45 +00:00
github-actions[bot]
d16ce9ad0f chore: update pre-commit hooks (#237) 2025-11-13 13:21:31 +02:00
ab67f6be5a chore(tmux): fix catppuccin submodule 2025-11-13 00:25:40 +02:00
efadbb4248 chore(tmux): remove double default-terminal, theme tweaks
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-11-12 16:45:45 +02:00
ded4bf3bb3 fix(tmux): sesh selection now works in fish
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-11-12 11:48:10 +02:00
github-actions[bot]
62eb417935 chore: update pre-commit hooks (#234) 2025-11-11 22:34:15 +02:00
d22f9ece7d feat: hammerspoon & karabiner-elements
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-11-11 17:15:55 +02:00
79be2d41bc chore(theme): switch back to Catppuccin
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-11-11 14:02:07 +02:00
renovate[bot]
743ebb0e9f chore(deps): update softprops/action-gh-release action (v2.4.1 → v2.4.2) (#235)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-10 12:47:02 +00:00
renovate[bot]
8fcab21a67 chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (42.0.2 → 42.1.3) (#233)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-09 06:48:18 +02:00
renovate[bot]
43a714513f chore(deps)!: update renovatebot/pre-commit-hooks (41.173.0 → 42.0.2) (#232)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-07 15:14:24 +02:00
github-actions[bot]
044298af74 chore: update pre-commit hooks (#231)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-11-06 07:15:25 +02:00
renovate[bot]
6604f7a2ca chore(deps)!: update node (v22.21.1 → v24.11.0) (#228) 2025-11-04 07:50:35 +02:00
github-actions[bot]
065eb2f9c0 chore: update pre-commit hooks (#230) 2025-11-03 09:30:56 +02:00
renovate[bot]
49b7fa43ad chore(deps)!: update ivuorinen/actions (25.10.31 → v2025.11.02) (#223)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-02 22:15:16 +02:00
renovate[bot]
8f652a2a9b chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (41.146.0 → 41.168.5) (#225)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-02 07:25:14 +00:00
renovate[bot]
b81adc62b1 chore(deps): update node.js (v22.21.0 → v22.21.1) (#229)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-02 07:25:06 +00:00
renovate[bot]
fd044776b9 chore(deps): update ivuorinen/actions action (25.10.20 → 25.10.31) (#224)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-02 09:25:01 +02:00
5472634f08 chore: switch to ubuntu-latest 2025-11-02 09:23:44 +02:00
33db70e725 feat(bin): x-ssh-audit 2025-10-24 07:56:26 +03:00
56b2fdabf1 chore(deps): update. go to 1.25.3 2025-10-23 23:44:29 +03:00
3f2d1b85ed chore: make fish files executable 2025-10-23 23:44:05 +03:00
renovate[bot]
0bd72c6d51 chore(deps): update ivuorinen/actions action (25.10.18 → 25.10.20) (#221)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 09:29:01 +03:00
renovate[bot]
69684c23b9 chore(deps): update simek/yarn-lock-changes action (v0.12.1 → v0.12.2) (#220)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 09:27:14 +03:00
renovate[bot]
28a36b5d6b chore(deps): update node.js (v22.20.0 → v22.21.0) (#222)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 01:58:47 +00:00
renovate[bot]
00fd6fc5dc chore(deps): update ivuorinen/actions action (25.10.16 → 25.10.18) (#219)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 12:58:03 +03:00
renovate[bot]
abfe7cc011 chore(deps): update markdownlint (0.38.0 → 0.39.0) (#218) 2025-10-20 12:55:54 +03:00
renovate[bot]
95e21a124b chore(deps): update ivuorinen/actions action (25.10.12 → 25.10.16) (#217)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-18 03:49:13 +00:00
renovate[bot]
5178bec1a0 chore(deps): update softprops/action-gh-release action (v2.4.0 → v2.4.1) (#216)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 20:05:10 +00:00
renovate[bot]
1b94674e6b chore(deps): update ivuorinen/actions action (25.10.7 → 25.10.12) (#215)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 20:04:13 +00:00
github-actions[bot]
7e9d2df990 chore: update pre-commit hooks (#212) 2025-10-13 14:29:07 +03:00
91be3b9edc feat: everforest themes 2025-10-13 14:16:49 +03:00
6bfcd38773 feat(bin): x-pr-comments - fetch GitHub PR comments 2025-10-13 14:16:29 +03:00
74a3d58417 feat(bin): x-codeql - run codeql checks to your project 2025-10-13 14:15:22 +03:00
7b6e95c4ab chore: linting 2025-10-13 14:14:45 +03:00
88a2b3dadf chore: sesh, and removal of zed settings.json
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-10-13 13:56:28 +03:00
renovate[bot]
416523660a chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (41.143.1 → 41.146.0) (#211)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-12 08:39:47 +00:00
github-actions[bot]
1e15c0cad2 chore: update pre-commit hooks (#207) 2025-10-10 19:42:24 +03:00
renovate[bot]
93129c0fd0 chore(deps): update image python to v3.14.0 (#209) 2025-10-10 19:28:41 +03:00
renovate[bot]
7c835df7dc chore(deps): update softprops/action-gh-release action (v2.3.4 → v2.4.0) (#210) 2025-10-10 19:27:42 +03:00
renovate[bot]
729efdd406 chore(deps): update ivuorinen/actions action (25.10.1 → 25.10.7) (#208)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 11:08:06 +00:00
ebb22064ce chore: add zoxide and sesh, cleanup
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-10-06 20:55:21 +03:00
github-actions[bot]
c4a55efd7c chore: update pre-commit hooks (#206) 2025-10-06 09:02:47 +03:00
renovate[bot]
508b44fd48 chore(deps): update softprops/action-gh-release action (v2.3.3 → v2.3.4) (#205)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-05 04:52:21 +00:00
renovate[bot]
2fdcd839a4 chore(deps): update ivuorinen/actions action (25.9.21 → 25.10.1) (#204) 2025-10-03 09:39:23 +03:00
github-actions[bot]
cdf791bb63 chore: update pre-commit hooks (#203) 2025-10-02 12:54:15 +03:00
renovate[bot]
cd72b003a0 chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (41.131.9 → 41.132.5) (#202)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-02 04:06:34 +00:00
bb93200f52 chore(cleanup): remove hosts/v
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-09-30 09:29:31 +03:00
github-actions[bot]
7715e1c8b0 chore: update pre-commit hooks (#201) 2025-09-29 18:50:02 +03:00
renovate[bot]
e91f31a049 chore(deps): update pre-commit hook johnnymorganz/stylua (v2.2.0 → v2.3.0) (#200) 2025-09-28 23:22:53 +03:00
renovate[bot]
56791753f7 chore(deps): update node.js (v22.19.0 → v22.20.0) (#199)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-26 20:30:33 +00:00
e9bd3708fa chore(nvim): update mini.nvim to use the new repo
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-09-25 17:52:34 +03:00
0a2b0b8a45 chore(deps): update Brewfile
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-09-25 17:52:34 +03:00
github-actions[bot]
1be21eb247 chore: update pre-commit hooks (#198) 2025-09-25 08:04:34 +03:00
dependabot[bot]
dd89164b8b chore(deps): bump ivuorinen/actions from 25.9.19 to 25.9.21 (#197) 2025-09-22 15:23:01 +03:00
github-actions[bot]
aae39dd913 chore: update pre-commit hooks (#196) 2025-09-22 09:50:19 +03:00
renovate[bot]
4ab8182d90 chore(deps): update ivuorinen/actions action (25.9.17 → 25.9.19) (#195)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-21 00:47:16 +00:00
renovate[bot]
b281efc576 chore(deps): update ivuorinen/actions action (25.9.8 → 25.9.17) (#194)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 12:35:07 +00:00
github-actions[bot]
35ede87808 chore: update pre-commit hooks (#193) 2025-09-18 11:48:28 +03:00
github-actions[bot]
2e184aa6c1 chore: update pre-commit hooks (#192) 2025-09-15 11:05:05 +03:00
github-actions[bot]
ffd4121eef chore: update pre-commit hooks (#191) 2025-09-11 10:15:37 +03:00
renovate[bot]
a424347974 chore(deps): update ivuorinen/actions action (25.8.31 → 25.9.8) (#190)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-10 05:03:24 +00:00
dependabot[bot]
574cafed0e chore(deps): bump softprops/action-gh-release from 2.3.2 to 2.3.3 (#189) 2025-09-08 15:13:41 +03:00
github-actions[bot]
099a80c78b chore: update pre-commit hooks (#188) 2025-09-08 08:51:18 +03:00
renovate[bot]
081ac55dd7 chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (41.96.0 → 41.97.7) (#187)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 13:39:24 +00:00
renovate[bot]
4136b66d9f chore(deps): update node.js (v22.18.0 → v22.19.0) (#186)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-06 01:03:48 +00:00
renovate[bot]
4183bc0a24 chore(deps)!: update actions/setup-python (v5.6.0 → v6.0.0) (#185) 2025-09-05 00:54:58 +03:00
github-actions[bot]
cc8578ed4c chore: update pre-commit hooks (#184)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-09-04 10:10:41 +03:00
65d5040af2 chore(config): tmux: add history limit 2025-09-03 15:39:42 +03:00
5606cff9fd chore(lint): prettier, added ignored directories 2025-09-03 14:49:00 +03:00
530ce0df4f feat(theme): starting switch to everforest
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-09-03 14:16:46 +03:00
dependabot[bot]
f6252c871e chore(deps): bump ivuorinen/actions from 25.8.25 to 25.8.31 (#183) 2025-09-03 08:48:47 +03:00
caf5722b95 chore(config): orbstack 2025-09-01 12:08:45 +03:00
github-actions[bot]
185562737c chore: update pre-commit hooks (#182)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-09-01 09:29:43 +03:00
579685e4ee chore(nvim): drop omnisharp, tweak neotree 2025-08-31 23:14:12 +03:00
9ece4c64c6 feat(config): upgrade go to 1.25, use latest packages 2025-08-31 23:14:12 +03:00
b413eefd37 chore: ignore config/op/plugins/used_items/gh.json 2025-08-31 23:14:11 +03:00
06c1275fa5 chore(config): misc config tweaks 2025-08-31 23:14:11 +03:00
c2a5d45998 chore(fish): add completions 2025-08-31 23:14:11 +03:00
94038a71bf chore(config): wezterm: my eyesight is getting worse
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-08-31 22:59:38 +03:00
4bfa54972e chore(deps): update Brewfile
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-08-31 22:58:32 +03:00
25831458aa chore: fix git configs
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-08-28 11:22:22 +03:00
github-actions[bot]
41315f7c53 chore: update pre-commit hooks (#181) 2025-08-28 08:17:01 +03:00
renovate[bot]
fecbb3568c chore(deps): update ivuorinen/actions action (25.8.21 → 25.8.25) (#180)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 02:00:55 +00:00
f18d08ec5f chore(zed): add mcp-server-time, predictions driver copilot
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-08-26 13:45:22 +03:00
b9fac1a444 chore(fish): add grype completions
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-08-26 13:43:15 +03:00
a5fe70d3c2 chore(fish): add stats abbreviation for onefetch
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-08-26 13:42:32 +03:00
fdaa1883a7 chore: add lm studio config end marker
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-08-26 13:41:18 +03:00
renovate[bot]
e67abce6ed fix(github-release): update renovatebot/pre-commit-hooks (41.82.9 → 41.82.10) (#179)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-24 23:05:18 +00:00
renovate[bot]
ab07793804 fix(github-release): update renovatebot/pre-commit-hooks (41.82.8 → 41.82.9) (#178) 2025-08-24 16:49:12 +03:00
renovate[bot]
ba87c82d51 fix(github-release): update renovatebot/pre-commit-hooks (41.82.7 → 41.82.8) (#177) 2025-08-24 14:29:07 +03:00
renovate[bot]
cf5ce57a57 fix(github-release): update renovatebot/pre-commit-hooks (41.82.1 → 41.82.7) (#174) 2025-08-24 14:23:38 +03:00
renovate[bot]
17a0dfd6e1 chore(github-action): update amannn/action-semantic-pull-request (v6.1.0 → v6.1.1) (#176)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-24 10:09:47 +00:00
renovate[bot]
e3e0f99eaf fix(github-action): update ivuorinen/actions (25.8.18 → 25.8.21) (#175)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-23 02:00:51 +00:00
github-actions[bot]
3399288a81 chore: update pre-commit hooks (#172)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-08-21 10:50:15 +03:00
renovate[bot]
fe0d7408cf feat(github-action): update amannn/action-semantic-pull-request (v6.0.1 → v6.1.0) (#173)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 06:09:06 +00:00
renovate[bot]
0223e08da8 fix(github-action): update ivuorinen/actions (25.8.11 → 25.8.18) (#171)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-20 01:53:15 +00:00
github-actions[bot]
bfe46f0a90 chore: update pre-commit hooks (#170) 2025-08-18 19:36:04 +03:00
renovate[bot]
a60ce374b5 fix(container): update image python (3.13.6 → 3.13.7) (#169) 2025-08-16 13:24:14 +03:00
5f59851c7a chore(tooling): use yarn for linting scripts (#149)
* chore(tooling): use yarn for linting scripts

* chore: fixes and tweaks

* chore(ci): more permissions

* chore: clean up, lint fixes

* chore: clean up, lint fixes

* chore: clean up, lint fixes

* chore(lint): fix yamllint errors and warnings

* chore(lint): lint fixes

* chore(lint): lint fixes
2025-08-15 09:06:22 +03:00
renovate[bot]
9c68e8b05c feat(github-action)!: Update actions/checkout (v4.3.0 → v5.0.0) (#164)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-14 10:48:05 +03:00
84e3351125 fix(ci): tweaks 2025-08-14 10:06:20 +03:00
363ae046c8 fix(ci): update submodules 2025-08-14 09:53:43 +03:00
github-actions[bot]
9ac792b924 chore: update pre-commit hooks (#168) 2025-08-14 09:29:36 +03:00
renovate[bot]
e377d9212a feat(github-action)!: Update amannn/action-semantic-pull-request (v5.5.3 → v6.0.1) (#167) 2025-08-14 02:29:11 +03:00
renovate[bot]
125fd027f7 feat(github-action): update actions/checkout (v4.2.2 → v4.3.0) (#166)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-13 13:56:09 +00:00
renovate[bot]
ecd099edbd fix(github-action): update ivuorinen/actions (25.8.4 → 25.8.11) (#165)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-13 13:56:02 +00:00
3baa7547e1 chore(config): update tmux-window-name and tmux.conf 2025-08-13 16:21:51 +03:00
github-actions[bot]
782eeb78ec chore: update pre-commit hooks (#162)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-08-11 14:03:56 +03:00
renovate[bot]
7b211489fd fix(container): update image python (3.13.5 → 3.13.6) (#161) 2025-08-09 12:44:08 +03:00
d3ec2e7332 chore(config): nvim: telescope file finding and preview
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-08-07 10:59:13 +03:00
github-actions[bot]
0b11f6456a chore: update pre-commit hooks (#160) 2025-08-07 10:07:08 +03:00
renovate[bot]
58064a7b9b feat(github-action): update ivuorinen/actions (25.7.28 → 25.8.4) (#159)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 02:51:52 +00:00
github-actions[bot]
4723d5c61c chore: update pre-commit hooks (#158) 2025-08-04 07:35:25 +03:00
renovate[bot]
4e0e4b8883 fix(github-action): update ivuorinen/actions (25.7.21 → 25.7.28) (#156)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-02 10:43:13 +00:00
renovate[bot]
5b6f43e22f chore(deps): update node.js to v22.18.0 (#157) 2025-08-02 13:42:23 +03:00
ca594f9b2d chore(config): zed: php formatter
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-30 18:09:30 +03:00
685a843d78 chore(config): tms: use rose pine colors
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-30 18:08:56 +03:00
470acd8956 chore(config): fish: add ivuorinen/phpenv.fish
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-30 18:08:34 +03:00
a6907d890e chore: update configs, add .go-version 2025-07-29 14:13:52 +03:00
renovate[bot]
c37fdb7cd3 fix(github-action): update ivuorinen/actions (25.7.14 → 25.7.21) (#154)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 12:44:02 +03:00
bad1ce2a34 chore(fish): add bob completions
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-24 11:43:33 +03:00
e67d4285b6 chore(nvim): tweak plugins
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-24 11:42:58 +03:00
f577ad28a9 chore(deps): update yarn dependencies
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-24 11:41:39 +03:00
github-actions[bot]
e9ac5e48ac chore: update pre-commit hooks (#155)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-07-24 11:15:17 +03:00
github-actions[bot]
cc01f4fdde chore: update pre-commit hooks (#153)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-07-21 09:08:43 +03:00
52a5f226e9 chore(nvim): plugin cleanup
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-18 17:10:38 +03:00
github-actions[bot]
9b94302270 chore: update pre-commit hooks (#152)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-07-17 11:49:04 +03:00
renovate[bot]
fe7e9173d0 fix(github-action): update ivuorinen/actions (25.7.7 → 25.7.14) (#151)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 20:57:27 +03:00
renovate[bot]
fb5aae3deb chore(deps): update node.js to v22.17.1 (#150)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 15:43:54 +03:00
036392d38a fix(ci): editorconfig-linter config version 2025-07-16 13:51:44 +03:00
2cb11292d4 chore(fish): add pinact completions file 2025-07-16 13:39:04 +03:00
a163d6338a chore(config): upgrade editorconfig-linter config 2025-07-16 13:38:27 +03:00
191488c081 chore(git): add masf to git profile 2025-07-13 21:09:32 +03:00
cc47614280 chore(git): move gitignore to ignore 2025-07-13 21:09:11 +03:00
91cde60dba fix(scripts): resolve shellcheck warnings (#148) 2025-07-10 17:44:36 +03:00
5dea757707 chore(config): remove aqua from go packages
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-10 12:38:54 +03:00
f8833fca73 chore(zed): add templ, add requirements
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-10 12:38:26 +03:00
9cd99dbc88 chore(zed): update theme, update config
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-10 12:37:26 +03:00
14f67cb5ca chore(yabai): ignore golang
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-10 12:19:24 +03:00
github-actions[bot]
4ce76fbd70 chore: update pre-commit hooks (#147) 2025-07-10 09:36:39 +03:00
renovate[bot]
ca68803fb9 feat(github-action): update ivuorinen/actions (25.6.30 → 25.7.7) (#146) 2025-07-09 15:29:09 +03:00
fb97f10f64 chore(nvim): lax hardtime rules
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-08 01:34:33 +03:00
6dbbc439b3 feat(nvim): switch to rose pine
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-08 01:33:18 +03:00
368fbfc7c8 feat(fish): cr function
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-07 22:32:08 +03:00
d6d5a8ca36 feat(shell): patrickf1/fzf.fish
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-07-07 14:29:45 +03:00
github-actions[bot]
d65c25819f chore: update pre-commit hooks (#145) 2025-07-07 09:45:56 +03:00
renovate[bot]
62c620efad fix(github-action): update ivuorinen/actions (25.6.25 → 25.6.30) (#144) 2025-07-03 09:45:24 +03:00
07fe18af75 fix(scripts): correct usage and help exit status (#143) 2025-06-30 08:51:06 +03:00
renovate[bot]
29d3676b38 fix(github-action): update ivuorinen/actions (25.6.23 → 25.6.25) (#142) 2025-06-30 08:04:34 +03:00
0b9e1803d4 docs(agents): update instructions for yarn (#141) 2025-06-30 07:59:58 +03:00
github-actions[bot]
c45ad9710d chore: update pre-commit hooks (#140) 2025-06-30 07:52:04 +03:00
cf7ca2109f feat: add bats tests, docs (#139)
* fix(test): ensure bats file list uses xargs

* docs(readme): use yarn for testing instructions

* fix(test): ensure pipelines fail properly

* docs(alias): fix table header

---------

Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-30 04:30:06 +03:00
379 changed files with 28172 additions and 15621 deletions

View File

@@ -9,10 +9,11 @@ insert_final_newline = true
trim_trailing_whitespace = true
[*.fish]
max_line_length = 80
max_line_length = 120
[*.md]
max_line_length = 100
max_line_length = 120
trim_trailing_whitespace = false
[*.lua]
max_line_length = 90
@@ -24,11 +25,7 @@ indent_size = 4
indent_style = tab
indent_size = 1
[*.plist]
indent_size = 1
indent_style = tab
[{local/bin/*,local/dfm/*,**/*.sh,**/zshrc,config/*,scripts/*}]
[{local/bin/*,**/*.sh,**/zshrc,config/*,scripts/*}]
indent_size = 2
tab_width = 2
shell_variant = bash # --language-variant
@@ -38,9 +35,20 @@ space_redirects = true
keep_padding = false
function_next_line = true # --func-next-line
[{*.plist,config/git/**,**/config/git/**}]
indent_size = 1
indent_style = tab
# Ignore the entire "third_party" directory when calling shfmt on directories,
# such as "shfmt -l -w .". When formatting files directly,
# like "shfmt -w third_party/foo.sh" or "shfmt --filename=third_party/foo.sh",
# the ignore logic is applied only when the --apply-ignore flag is given.
[{tools/**,local/bin/asdf/**,config/cheat/cheatsheets/**,config/tmux/plugins/**}]
ignore = true
[plan]
trim_trailing_whitespace = false
max_line_length = off
[base/hammerspoon/hammerspoon.types.lua]
max_line_length = off

View File

@@ -1,11 +1,21 @@
{
"Version": "2.7.0",
"Verbose": false,
"Debug": false,
"IgnoreDefaults": false,
"SpacesAftertabs": false,
"SpacesAfterTabs": false,
"NoColor": false,
"Exclude": [],
"Exclude": [
"base/plan",
"config/fish/completions/.*",
"config/fish/conf.d/.*",
"config/fish/functions/.*",
"config/fzf/key-bindings.fish",
"config/irssi/scripts/autorun/.*",
"config/vim/autoload/.*",
"docs/.*",
"local/man/.*",
"local/share/.*"
],
"AllowedContentTypes": [],
"PassedFiles": [],
"Disable": {

1
.envrc
View File

@@ -1 +0,0 @@
use asdf

View File

@@ -1,3 +0,0 @@
{
"extends": ["@ivuorinen"]
}

5
.gitattributes vendored
View File

@@ -85,6 +85,7 @@ LICENSE text
NEWS text
readme text
*README* text
# Files literally named "TODO", not a todo list item
TODO text
# Templates
@@ -122,7 +123,8 @@ package.json text eol=lf
package-lock.json text eol=lf -diff
pnpm-lock.yaml text eol=lf -diff
.prettierrc text
yarn.lock text -diff
# Ensure yarn.lock shows textual diffs
yarn.lock text eol=lf
*.toml text
*.yaml text
*.yml text
@@ -251,3 +253,4 @@ install text eol=lf diff=shell
*.snippets text eol=lf
*.theme text eol=lf
*.yamlfmt text eol=lf
*.bats text eol=lf diff=shell

View File

@@ -60,7 +60,7 @@ representative at an online or offline event.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
ismo@ivuorinen.net.
<ismo@ivuorinen.net>.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
@@ -116,7 +116,7 @@ the community.
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
<https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
@@ -124,5 +124,5 @@ enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
<https://www.contributor-covenant.org/faq>. Translations are available at
<https://www.contributor-covenant.org/translations>.

54
.github/README.md vendored
View File

@@ -16,11 +16,9 @@ see what interesting stuff you've done with it. Sharing is caring.
### First time setup
1. Clone this repository to `$HOME/.dotfiles`
2. Install [shellcheck](https://github.com/koalaman/shellcheck) and [pre-commit](https://pre-commit.com/)
3. Run `pre-commit install` to enable Git hooks
4. `./install`
5. ???
6. Profit
2. `./install`
3. ???
4. Profit
### Updates
@@ -45,6 +43,12 @@ see what interesting stuff you've done with it. Sharing is caring.
| `local/bin` | Helper scripts that I've collected or wrote. |
| `scripts` | Setup scripts. |
### Host specific configuration
Configurations under `hosts/<hostname>` are applied only when running on the
matching machine. Each host folder contains its own `install.conf.yaml` that
is processed by Dotbot during installation.
### dotfile folders
| Repo | Destination | Description |
@@ -60,6 +64,21 @@ see what interesting stuff you've done with it. Sharing is caring.
Running `dfm` gives you a list of available commands.
#### Documentation generation
`dfm docs` generates Markdown documentation under the `docs/` directory. The
subcommands are:
```bash
dfm docs alias # regenerate alias table
dfm docs folders # document interesting folders
dfm docs keybindings # update keybinding docs for tmux, nvim and others
dfm docs all # run every docs task
```
The `docs/` folder contains generated cheat sheets, keybindings and other
reference files. New documentation can be added without modifying this README.
## Configuration
The folder structure follows [XDG Base Directory Specification][xdg] where possible.
@@ -75,6 +94,31 @@ The folder structure follows [XDG Base Directory Specification][xdg] where possi
Please see [docs/folders.md][docs-folders] for more information.
## Managing submodules
This repository uses Git submodules for external dependencies. After cloning,
run:
```bash
git submodule update --init --recursive
```
To pull submodule updates later use:
```bash
git submodule update --remote --merge
```
The helper script `add-submodules.sh` documents how each submodule is added and
configured. Submodules are automatically updated by the
[update-submodules.yml](.github/workflows/update-submodules.yml) workflow.
## Testing
Shell scripts under `local/bin` are validated with [Bats](https://github.com/bats-core/bats-core).
Run `yarn test` to execute every test file. Bats is installed as a development
dependency, so run `yarn install` first if needed.
[dfm]: https://github.com/ivuorinen/dotfiles/blob/main/local/bin/dfm
[docs-folders]: https://github.com/ivuorinen/dotfiles/blob/main/docs/folders.md
[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

View File

@@ -1,7 +0,0 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'

View File

@@ -16,10 +16,10 @@ module.exports = {
excludeTypes: [],
renderTypeSection: function (label, commits) {
renderTypeSection: (label, commits) => {
let text = `\n## ${label}\n\n`
commits.forEach(commit => {
commits.forEach((commit) => {
const scope = commit.scope ? `**${commit.scope}:** ` : ''
text += `- ${scope}${commit.subject}\n`
})
@@ -27,10 +27,10 @@ module.exports = {
return text
},
renderChangelog: function (release, changes) {
renderChangelog: (release, changes) => {
const now = new Date()
const d = now.toISOString().substring(0, 10)
const header = `# ${release} - ${d}\n`
return header + changes + '\n\n'
return `${header}${changes}\n\n`
},
}

View File

@@ -13,12 +13,12 @@ permissions: read-all
jobs:
debug-changelog:
runs-on: self-hosted
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Create changelog text
id: changelog

View File

@@ -2,6 +2,7 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: Lint Code Base
# yamllint disable-line
on:
pull_request:
branches: [master, main]
@@ -18,19 +19,20 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
statuses: write
contents: read
issues: write
packages: read
pull-requests: write
statuses: write
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Yarn Lock Changes
uses: Simek/yarn-lock-changes@34017425198654c20162a4dfd4f238fbece9636f # v0.12.1
uses: Simek/yarn-lock-changes@61d1a0595070b79c1abdc8e1e5a5f5d98b18918c # v0.12.2
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run PR Lint
# https://github.com/ivuorinen/actions
uses: ivuorinen/actions/pr-lint@9480614ba2231013d99dd5b9c730d2b105b9e160 # 25.6.25
uses: ivuorinen/actions/pr-lint@f98ae7cd7d0feb1f9d6b01de0addbb11414cfc73 # v2026.01.21

View File

@@ -15,7 +15,7 @@ permissions: read-all
jobs:
new-daily-release:
runs-on: self-hosted
runs-on: ubuntu-latest
permissions: write-all
@@ -24,7 +24,7 @@ jobs:
version: ${{ steps.daily-version.outputs.version }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Create tag if necessary
uses: fregante/daily-version-action@fb1a60b7c4daf1410cd755e360ebec3901e58588 # v2.1.3
@@ -40,7 +40,7 @@ jobs:
- name: Create release
if: steps.daily-version.outputs.created
uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ steps.daily-version.outputs.version }}

View File

@@ -16,20 +16,20 @@ permissions: read-all
jobs:
auto-update:
runs-on: self-hosted
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
- run: pip install pre-commit && pre-commit autoupdate
- uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
- uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: update/pre-commit-hooks

View File

@@ -2,8 +2,9 @@
# $schema: "https://json.schemastore.org/github-workflow.json"
name: Semantic PR
# yamllint disable-line
on:
pull_request_target:
pull_request:
types:
- opened
- edited
@@ -17,10 +18,10 @@ permissions: read-all
jobs:
semantic-pr:
runs-on: self-hosted
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3
- uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:

View File

@@ -23,10 +23,10 @@ permissions: read-all
jobs:
SyncLabels:
runs-on: self-hosted
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- uses: ivuorinen/actions/sync-labels@99f3911475dbb5b8d43d314b24c0882997433868 # 25.6.23
- uses: ivuorinen/actions/sync-labels@f98ae7cd7d0feb1f9d6b01de0addbb11414cfc73 # v2026.01.21

View File

@@ -16,33 +16,35 @@ permissions: read-all
jobs:
update-submodules:
runs-on: self-hosted
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
fetch-depth: 2
token: ${{secrets.GITHUB_TOKEN}}
- name: Config Git User
shell: bash
run: |
git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
- name: Update submodules
shell: bash
run: |
git submodule sync
git submodule foreach --quiet '
tag="$(git describe --tags --abbrev=0 origin/HEAD)"
if [ "$(git describe --tags)" != "$tag" ]; then
git checkout --quiet "$tag"
echo "$name updated to $tag"
git submodule foreach --quiet "
tag=\"$(git describe --tags --abbrev=0 origin/HEAD)\"
if [ \"$(git describe --tags)\" != \"$tag\" ]; then
git checkout --quiet \"$tag\"
echo \"$name updated to $tag\"
fi
'
"
if git diff --quiet; then
echo "No updates for submodules."

41
.gitignore vendored
View File

@@ -9,43 +9,52 @@
.env
.idea
.nfs*
.scannerwork
.vscode
.yarn/
!config/git/local.d/.gitkeep
!config/nvim/spell/.gitkeep
!config/zed/settings.json
!ssh/local.d/.gitkeep
**/exports-secret.fish
**/exports.secret.fish
*.tmp.*
Brewfile.lock.json
antidote_plugins.zsh
config/alacritty/theme-active.toml
config/cheat/cheatsheets/pure-bash-bible/*
config/cheat/cheatsheets/tldr/*
config/fish/completions/asdf.fish
config/fish/fish_variables
config/fish/fish_variables.*
config/gh/hosts.yml
config/git/credentials
config/git/local.d/*
config/gnupg/S.*
config/gnupg/private-keys-v1.d
config/gnupg/s
config/iterm2/AppSupport
config/karabiner/automatic_backups
config/npm/npmrc
config/nvim/lazy-lock.json
config/nvim/spell/*
!config/nvim/spell/.gitkeep
config/git/local.d/*
!config/git/local.d/.gitkeep
config/op/plugins/gh.json
config/op/plugins/used_items/gh.json
config/vim/.netrwhist
config/vim/extra/*
config/vim/fzf
config/vim/plugged/*
config/zed/*
!config/zed/settings.json
config/zed/settings.json
config/zsh/.zcompdump
dependency-check-report.html
iTermServer-*
lazy-lock.json
local/share/fonts/*
local/bin/asdf/plugins/*
local/bin/yabai
local/man/yabai.1
local/share/fonts/*
lock
node_modules
ssh/local.d/*
!ssh/local.d/.gitkeep
config/fish/fish_variables
**/exports.secret.fish
**/exports-secret.fish
config/fish/completions/asdf.fish
config/vim/.netrwhist
config/vim/extra/*
config/gh/hosts.yml
dependency-check-report.html
local/bin/yabai
local/man/yabai.1
config/fish/fish_variables*

5
.gitmodules vendored
View File

@@ -71,7 +71,7 @@
[submodule "tmux/tmux-dark-notify"]
path = config/tmux/plugins/tmux-dark-notify
url = https://github.com/erikw/tmux-dark-notify.git
url = https://github.com/ivuorinen/tmux-dark-notify.git
ignore = dirty
[submodule "antidote"]
@@ -83,3 +83,6 @@
[submodule "tmux/tmux-resurrect"]
path = config/tmux/plugins/tmux-resurrect
url = https://github.com/tmux-plugins/tmux-resurrect.git
[submodule "tmux/catppuccin"]
path = config/tmux/plugins/catppuccin
url = https://github.com/catppuccin/tmux.git

1
.go-version Normal file
View File

@@ -0,0 +1 @@
1.25.5

View File

@@ -1,10 +1,11 @@
**/__pycache__/**
*.pyc
.git/**
config/cheat/cheatsheets/community/**
config/tmux/plugins/**
config/vim/plugged/**
node_modules
tools/antidote/**
tools/dotbot-brew/**
tools/dotbot-include/**
tools/dotbot/**
*.pyc

View File

@@ -1,19 +0,0 @@
{
"extends": "@ivuorinen/markdownlint-config",
"code-block-style": {
"style": "fenced"
},
"code-fence-style": {
"style": "backtick"
},
"heading-style": {
"style": "atx"
},
"no-duplicate-heading": {
"siblings_only": true
},
"required-headings": false,
"ul-style": {
"style": "dash"
}
}

View File

@@ -1,9 +1,10 @@
# only care about files that are directly under our control
.git/*
config/cheat/cheatsheets/community/*
config/cheat/cheatsheets/tldr/*
config/op/plugins/used_plugins/*
config/tmux/plugins/*
config/vim/*
local/bin/asdf/*
tools/*
node_modules/*
tools/*

View File

@@ -2,7 +2,6 @@
# Configuration file for MegaLinter
# See all available variables at
# https://megalinter.io/configuration/ and in linters documentation
APPLY_FIXES: all
SHOW_ELAPSED_TIME: false # Show elapsed time at the end of MegaLinter run
PARALLEL: true
@@ -15,15 +14,11 @@ PRINT_ALPACA: false # Print Alpaca logo in console
SARIF_REPORTER: true # Generate SARIF report
SHOW_SKIPPED_LINTERS: false # Show skipped linters in MegaLinter log
TYPESCRIPT_DEFAULT_STYLE: prettier # Default style for TypeScript
DISABLE_LINTERS:
- REPOSITORY_DEVSKIM
- JAVASCRIPT_ES # using biome
- JAVASCRIPT_PRETTIER # using biome
YAML_YAMLLINT_CONFIG_FILE: .yamllint.yml
MARKDOWN_MARKDOWNLINT_CONFIG_FILE: .markdownlint.json
JAVASCRIPT_ES_CONFIG_FILE: .eslintrc.json
TYPESCRIPT_ES_CONFIG_FILE: .eslintrc.json
REPOSITORY_GIT_DIFF_DISABLE_ERRORS: true
FILTER_REGEX_EXCLUDE: >
(node_modules|tools|config/cheat/cheatsheets/community|config/cheat/cheatsheets/tldr|config/fzf|config/zsh|config/tmux/plugins)

2
.nvmrc
View File

@@ -1 +1 @@
22.17.0
24.13.0

View File

@@ -1,6 +1,7 @@
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: requirements-txt-fixer
- id: detect-aws-credentials
@@ -19,44 +20,40 @@ repos:
- id: end-of-file-fixer
- id: mixed-line-ending
args: [--fix=auto]
- id: pretty-format-json
args: [--autofix, --no-sort-keys]
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.45.0
- repo: local
hooks:
- id: markdownlint
args: [-c, .markdownlint.json, --fix]
- id: biome-check
name: Biome Check
entry: yarn biome check --write --files-ignore-unknown=true --no-errors-on-unmatched
language: system
files: \.(js|ts|jsx|tsx|json|md)$
- repo: https://github.com/adrienverge/yamllint
rev: v1.37.1
rev: v1.38.0
hooks:
- id: yamllint
- repo: https://github.com/koalaman/shellcheck-precommit
rev: v0.10.0
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.11.0.1
hooks:
- id: shellcheck
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.11.0-1
rev: v3.12.0-2
hooks:
- id: shfmt
- repo: https://github.com/rhysd/actionlint
rev: v1.7.7
rev: v1.7.10
hooks:
- id: actionlint
- repo: https://github.com/renovatebot/pre-commit-hooks
rev: 41.11.1
hooks:
- id: renovate-config-validator
- repo: https://github.com/JohnnyMorganz/StyLua
rev: v2.1.0
rev: v2.3.1
hooks:
- id: stylua # or stylua-system / stylua-github
exclude: hammerspoon\.types\.lua$
- repo: https://github.com/hugoh/pre-commit-fish.git
rev: v1.2

View File

@@ -1,15 +0,0 @@
# vim: ft=gitignore
.mypy_cache/*
Brewfile.lock.json
config/cheat/cheatsheets/community
config/cheat/cheatsheets/tldr
config/fzf/*
config/nvim/*
config/op/plugins/used_plugins/*
config/tmux/plugins/*
config/zsh/*
lazy-lock.json
local/bin/antigen.zsh
local/bin/asdf
tools/antidote/*
tools/dotbot*

View File

@@ -1,14 +0,0 @@
module.exports = {
...require('@ivuorinen/prettier-config'),
trailingComma: 'all',
// Add custom options below:
overrides: [
{
files: '*.md',
options: {
printWidth: 120,
proseWrap: 'preserve',
},
},
],
}

View File

@@ -1 +1 @@
3.13.5
3.14.2

1
.serena/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/cache

View File

@@ -0,0 +1,67 @@
# Areas for Improvement
## Code Quality Enhancements
### 1. Configuration Management
- **Inconsistent indentation**: Mixed tabs/spaces across config files
- **Line length management**: Need consistent enforcement of limits
- **Template standardization**: Memory files need consistent formatting template
### 2. Linting Configuration Improvements
- **Shellcheck exclusions**: Add proper ignore patterns for submodules
- **EditorConfig refinement**: Some rules too strict for generated/third-party content
- **Prettier ignore patterns**: Better exclusion of binary/generated files
### 3. Testing Infrastructure
- **Bats test errors**: Tests failing due to missing `rm` command in PATH
- **Test coverage**: Limited test coverage for shell functions
- **CI/CD integration**: Need automated linting in GitHub Actions
### 4. Documentation Gaps
- **Onboarding docs**: Missing clear setup instructions for new contributors
- **Troubleshooting guide**: Need common error resolution steps
- **Architecture overview**: Missing high-level system architecture
## Performance & Maintenance
### 5. Submodule Management
- **Large submodules**: Some submodules contain unnecessary files
- **Update frequency**: Need systematic submodule update process
- **Dependency tracking**: Better documentation of submodule purposes
### 6. Cross-Platform Considerations
- **Darwin-specific paths**: Some hardcoded macOS paths could be parameterized
- **Shell compatibility**: More testing across bash/zsh/fish environments
- **Tool availability**: Better fallbacks when optional tools missing
### 7. Security & Privacy
- **Secret management**: Better examples for secret configuration
- **Permission handling**: Some scripts could use more restrictive permissions
- **Audit trail**: Track configuration changes and their impact
## Development Workflow
### 8. Automation Opportunities
- **Auto-formatting**: Pre-commit hooks for consistent formatting
- **Dependency updates**: Automated updates for package.json dependencies
- **Health checks**: Scripts to validate configuration integrity
### 9. Error Handling
- **Graceful degradation**: Better fallbacks when tools unavailable
- **Error messages**: More informative error output
- **Recovery procedures**: Automated recovery from common failures
### 10. Modularity
- **Configuration splitting**: Some large config files could be modularized
- **Feature flags**: Optional components for minimal installations
- **Host-specific configs**: Better organization of machine-specific settings

View File

@@ -0,0 +1,50 @@
# Code Style and Conventions
## EditorConfig Rules (.editorconfig)
- **Charset**: UTF-8
- **Line endings**: LF
- **Indent style**: Spaces (except for specific files)
- **Indent size**: 2 spaces (default)
- **Final newline**: Required
- **Trailing whitespace**: Trimmed
### Language-specific Rules
- **Fish scripts**: 4-space indent, 80 char line limit
- **PHP files**: 4-space indent
- **Markdown**: 120 char line limit
- **Lua**: 90 char line limit
- **Git files**: Tab indentation
- **Shell scripts**: 2-space indent with specific shfmt settings
## Prettier Configuration
- Extends `@ivuorinen/prettier-config`
- **Trailing commas**: Always
- **Markdown**: 120 char width, preserve prose wrapping
## ESLint Configuration
- Extends `@ivuorinen` base configuration
- Applied to JavaScript/TypeScript files
## Shell Script Standards (.shellcheckrc)
- External sources following enabled
- Disabled checks: SC2039, SC2166, SC2154, SC1091, SC2174, SC2016
- Must include shebang or `# shellcheck shell=bash`
## Formatting Tools
- **Shell scripts**: shfmt with specific rules
- **Markdown**: markdownlint + prettier
- **JavaScript/TypeScript**: prettier + eslint
- **YAML**: yamllint
## Naming Conventions
- **Shell functions**: Use `x-` prefix for cross-shell compatibility
- **Environment variables**: UPPERCASE with underscores
- **File names**: lowercase with hyphens for scripts
- **Directory structure**: lowercase, organized by tool/purpose

View File

@@ -0,0 +1,80 @@
# Critical Linting Errors That Must Be Fixed
## Current Status: BLOCKING Issues Identified
The linting system has revealed 150+ violations across multiple categories that must be addressed immediately.
## EditorConfig Violations (High Priority)
### Missing Final Newlines
- All `.serena/memories/*.md` files missing final newlines
- Multiple project configuration files affected
- This is a BLOCKING issue per user instructions
### Line Length Violations
- Fish shell configs exceed 80-character limit (`.editorconfig` enforced)
- Memory files have lines exceeding 120-character limit
- WezTerm configuration files have long lines
### Indentation Errors
- Git configuration using tabs instead of spaces
- WezTerm color scheme files using tabs vs spaces
- Perl scripts with inconsistent indentation
## Markdownlint Issues (Memory Files)
### Systematic Problems Across All Memory Files
- Missing blank lines around headings (MD022)
- Lists not surrounded by blank lines (MD032)
- Fenced code blocks not surrounded by blank lines (MD031)
- Trailing punctuation in headings (MD026)
- Missing language specification for fenced code blocks (MD040)
- Missing final newlines (MD047)
### Specific Files Affected
- `areas_for_improvement.md`: 20+ violations
- `code_style_conventions.md`: 15+ violations
- `critical_linting_errors.md`: 25+ violations
- `darwin_system_utilities.md`: 15+ violations
- `immediate_action_items.md`: 25+ violations
- `project_overview.md`: 15+ violations
- `project_structure.md`: 20+ violations
- `shellcheck_issues.md`: 15+ violations
- `suggested_commands.md`: 25+ violations
- `task_completion_checklist.md`: 10+ violations
## Prettier Formatting Issues
### JSON Configuration Files
- `.commitlintrc.json`, `.eslintrc.json`, `.luarc.json`
- `.releaserc.json`, `.github/renovate.json`
- Host-specific configurations in `config/` directory
### YAML Files
- `.mega-linter.yml` formatting inconsistencies
- Various configuration files needing formatting
## Immediate Action Required
1. **Fix memory files**: Apply markdown formatting rules
2. **Run auto-fixers**: `yarn fix` to address automatic fixes
3. **Manual corrections**: Address remaining EditorConfig violations
4. **Validation**: Ensure `yarn lint` passes completely
## Impact Assessment
These violations prevent:
- Successful CI/CD pipeline execution
- Code quality standards compliance
- Pre-commit hook success
- Project maintainability standards
Per user instructions: "Linting issues ARE NOT ACCEPTABLE" and "EditorConfig problems are blocking errors"

View File

@@ -0,0 +1,66 @@
# Darwin (macOS) System Utilities
## Available Command Paths
Based on the current system setup:
### Core System Commands
- `git`: `/opt/homebrew/bin/git` (Homebrew version)
- `find`: `/usr/bin/find` (system version)
- `cd`: shell built-in command
- `ls`: aliased to `eza -h -s=type --git --icons --group-directories-first`
- `grep`: aliased to `grep --color`
### Modern Alternatives (Rust-based)
- `fd`: `/Users/ivuorinen/.local/share/cargo/bin/fd` (modern find)
- `rg`: `/Users/ivuorinen/.local/share/cargo/bin/rg` (ripgrep for text search)
## Recommended Usage Patterns
### File Search
```bash
# Use fd instead of find when possible
fd "*.sh" # Find shell scripts
fd -t f -e lua # Find Lua files
find . -name "*.sh" # Fallback to system find
```
### Text Search
```bash
# Use rg (ripgrep) instead of grep when possible
rg "function.*bash" # Search for bash functions
rg -t shell "export" # Search in shell files only
grep "pattern" file.txt # Fallback to system grep
```
### Directory Navigation
```bash
# Use eza features via ls alias
ls # Shows icons, git status, grouped directories
ls -la # Long format with hidden files
cd /full/path # Always use full paths in scripts
```
## Path Configuration
The system is configured with these PATH priorities:
1. `~/.local/bin` (user scripts)
2. `~/.dotfiles/local/bin` (dotfiles scripts)
3. `~/.local/share/bob/nvim-bin` (Neovim)
4. `~/.local/share/cargo/bin` (Rust tools like fd, rg)
5. `/opt/homebrew/bin` (Homebrew packages)
6. `/usr/local/bin` (system packages)
## Shell Compatibility
The dotfiles support multiple shells through `config/shared.sh`:
- Functions prefixed with `x-` work across bash, zsh, and fish
- Path management handled automatically per shell
- Environment variables set appropriately per shell

View File

@@ -0,0 +1,114 @@
# Immediate Action Items - Priority Order
## HIGH PRIORITY (Must Fix Before Any Development)
### 1. Fix Memory File Formatting (BLOCKING)
```bash
# These files prevent any linting from passing:
- .serena/memories/code_style_conventions.md
- .serena/memories/darwin_system_utilities.md
- .serena/memories/project_overview.md
- .serena/memories/project_structure.md
- .serena/memories/suggested_commands.md
- .serena/memories/task_completion_checklist.md
# Issues: Missing final newlines, markdown formatting, line length
# Impact: Blocks all linting commands
```
### 2. Fix Fish Shell Line Length Violations (BLOCKING)
```bash
# Files exceeding 80-char limit:
config/fish/alias.fish (4 violations)
config/fish/exports.fish (15 violations)
# These are CRITICAL - Fish config has strict limits
# Must be fixed before any fish-related changes
```
### 3. Fix Git Configuration Indentation (BLOCKING)
```bash
# Files with tab/space mixing:
config/git/shared (40+ violations)
hosts/s/config/git/overrides/config
hosts/s/config/git/local.d/work-git
# Impact: Git configuration may not work correctly
```
## MEDIUM PRIORITY (Fix During Next Development Cycle)
### 4. Prettier Formatting Issues
```bash
# 17 files need prettier formatting:
yarn fix:prettier
# Most are JSON/YAML configuration files
```
### 5. WezTerm Color Scheme Indentation
```bash
# All files in config/wezterm/colors/ using tabs instead of spaces
# Affects terminal appearance configuration
```
### 6. Update Linting Configuration
```bash
# Add shellcheck exclusions for submodules:
# - tools/antidote/
# - config/tmux/plugins/
# - config/vim/extra/fzf/
# - config/cheat/cheatsheets/tldr/
```
## LOW PRIORITY (Future Improvements)
### 7. Test Infrastructure
```bash
# Fix bats test PATH issues
# Tests pass but show rm command not found errors
```
### 8. Documentation Updates
```bash
# Add troubleshooting section to AGENTS.md
# Create shellcheck exclusion documentation
```
## Immediate Commands to Run
### Step 1: Auto-fix What's Possible
```bash
yarn fix:prettier # Fix 17 files
yarn fix:markdown # Attempt markdown fixes
```
### Step 2: Manual Fixes Required
- Add final newlines to all memory files
- Wrap long lines in Fish configuration files
- Convert tabs to spaces in Git configuration files
### Step 3: Verify Progress
```bash
yarn lint:ec # Check EditorConfig compliance
yarn lint:markdown # Check markdown issues
yarn lint:prettier # Check remaining prettier issues
```
## Success Criteria
`yarn lint` passes without errors
✅ All EditorConfig violations resolved
✅ Memory files properly formatted
✅ Fish configuration under line limits
✅ Git configuration uses consistent indentation

View File

@@ -0,0 +1,61 @@
# .dotfiles Project Overview
## Purpose
This is a comprehensive personal dotfiles repository for managing development
environment configurations across macOS systems. The project uses **Dotbot** as
the primary installation framework to manage symlinks and setup configurations.
## Key Features
- Automated configuration management using Dotbot
- Support for multiple development tools and applications
- Host-specific configurations in `/hosts/` directory
- Comprehensive testing and linting setup with pre-commit hooks
- Cross-shell compatibility (bash, zsh, fish)
- Large collection of custom utility scripts in `local/bin/`
- Git submodules for external tools (dotbot, antidote, tmux plugins)
- Environment-specific configurations (secrets management)
## Recent Notable Changes (from git status)
- New everforest color theme configurations added
- Multiple temporary fish configuration files present
- Updates to various configuration files (.commitlintrc.json, .eslintrc.json, etc.)
- New x-pr-comments script and documentation added
- Various tmux plugin updates
- Husky configuration relocated from base/ to config/husky/
## Tech Stack
- **Shell**: Bash (primary), with Fish and Zsh support
- **Configuration Manager**: Dotbot with plugins (asdf, brew, include, pip)
- **Package Manager**: Yarn 1.22.22 (Node.js), Homebrew (macOS), pipx (Python)
- **Testing**: Bats test framework, custom test-all.sh script
- **Linting**: MegaLinter, Prettier, ESLint, Markdownlint, ShellCheck, EditorConfig
- **Automation**: Pre-commit hooks, GitHub Actions, Renovate
## Project Structure Highlights
- `/config/` - Main configuration directory (74+ subdirectories)
- `/local/bin/` - Custom utility scripts (100+ scripts with documentation)
- `/hosts/` - Host-specific configurations
- `/tools/` - Git submodules for external tools
- `/base/` - Base configuration files
- `/secrets/` - Secret management configurations
- `/scripts/` - Installation and setup scripts
- `/.github/` - GitHub Actions workflows and configurations
## Target System
- **Platform**: Darwin (macOS) - Version 24.6.0
- **Architecture**: Universal (Intel/Apple Silicon via Homebrew)
- **Dependencies**: Git, Homebrew, Yarn, various CLI tools managed via asdf/aqua
## Development Environment
- Node.js managed via nvm/asdf
- Go version specified (.go-version)
- Python version specified (.python-version)
- Package management via Yarn with lockfile
- TypeScript support for configuration files

View File

@@ -0,0 +1,116 @@
# Project Structure
## Root Directory
```text
.dotfiles/
├── install # Main installation script (Dotbot runner)
├── install.conf.yaml # Dotbot configuration
├── package.json # Node.js dependencies for linting/testing (Yarn managed)
├── AGENTS.md # Project documentation and guidelines
├── test-all.sh # Bats test runner
├── add-submodules.sh # Git submodule management
└── .serena/ # Claude Code/Serena analysis cache (new)
```
## Main Directories
### `config/` (74+ subdirectories)
Configuration files for development tools and applications:
- `git/` - Git configuration with delta integration and everforest theme
- `nvim/` - Neovim configuration with Lua plugins
- `tmux/` - Tmux configuration with multiple plugins (dark-notify, window-name, etc.)
- `fish/` - Fish shell configuration with completions and functions
- `zsh/` - Zsh configuration with antidote plugin manager
- `fzf/` - Fuzzy finder configuration with everforest theme
- `wezterm/` - WezTerm terminal configuration
- `homebrew/` - Homebrew environment configuration
- `starship.toml` - Starship prompt configuration
- `shared.sh` - Cross-shell compatibility functions
- `aerospace/`, `amethyst/`, `yabai/`, `skhd/` - Window managers
- `direnv/`, `asdf/`, `aqua/` - Development environment tools
- `gpg-tui/`, `op/`, `gh/` - Security and CLI tools
- Theme configurations: everforest color schemes across multiple tools
### `base/`
Dotfiles that get symlinked to home directory with `.` prefix:
- Contains traditional dotfiles like `.bashrc`, `.zshrc`, etc.
- `plan` - Planning/note-taking configuration
- `shellcheckrc` - ShellCheck rules
### `local/`
- `bin/` - 100+ custom scripts with comprehensive documentation
- Homegrown utilities (dfm, git tools, backup scripts, etc.)
- Sourced utilities (from skx/sysadmin-util, mvdan/dotfiles)
- Each script has corresponding .md documentation
- Recent additions: x-pr-comments for GitHub PR analysis
- `share/fonts/` - JetBrains Mono font files
- `man/` - Manual pages
### `ssh/`
SSH configuration files (mode 0600/0700)
- `shared.d/` - Shared SSH configurations for specific hosts
### `tools/` (Git submodules)
External tools and Dotbot plugins:
- `dotbot/` - Dotbot installation framework
- `dotbot-*` - Dotbot plugins (asdf, brew, include, pip)
- `antidote/` - Zsh plugin manager
- Various tmux plugins (continuum, resurrect, yank, etc.)
### `hosts/`
Host-specific configurations:
- `air/`, `s/`, `v/` - Individual host configurations
- Applied after main configuration
### `secrets/`
Secret and credential management configuration
### `scripts/`
Installation and setup automation scripts
### `.github/`
- GitHub Actions workflows
- Renovate configuration
- Issue templates and documentation
### Development Configuration Files
- `.editorconfig` - Editor configuration rules
- `.prettierrc.js` - Prettier formatting rules
- `.eslintrc.json` - ESLint linting rules
- `.commitlintrc.json` - Commit message linting
- `.shellcheckrc` - ShellCheck configuration
- `.mega-linter.yml` - MegaLinter configuration
- `.luarc.json` - Lua language server configuration
- `.nvmrc`, `.go-version`, `.python-version` - Version management
- Various ignore files (.gitignore, .prettierignore, .yamlignore, etc.)
## Testing Infrastructure
- `tests/` - Bats test files
- `test-all.sh` - Main test runner
- Pre-commit hooks for automated testing
- GitHub Actions for CI/CD
## Recent Structural Changes
- Husky configuration moved from `base/huskyrc` to `config/husky/init.sh`
- Addition of everforest theme configurations across multiple tools
- New .serena directory for AI analysis caching
- Multiple temporary fish configuration files (everforest themes)
- Enhanced git configuration with delta and everforest theming

View File

@@ -0,0 +1,62 @@
# ShellCheck Issues Analysis
## Critical Shell Script Problems
### Missing Shebangs (SC2148)
Multiple shell scripts missing proper shebang lines:
- `tools/antidote/tests/` - Test scripts
- `config/vim/*/test/lib/common.sh` - FZF test libraries
- `config/tmux/plugins/*/scripts/helpers.sh` - Plugin helper scripts
- Various submodule scripts
### Syntax Errors (SC1036, SC1088, SC1073)
- `config/vim/fzf/test/lib/common.sh` - Invalid ERB template syntax
- `config/cheat/cheatsheets/tldr/` - Markdown files incorrectly parsed as shell
- `tmux-sessionist/scripts/list_sessions.sh` - Brace parsing errors
### Variable Assignment Issues (SC1007, SC2155)
- `config/vim/extra/fzf/test/lib/common.sh` - Incorrect empty variable assignments
- Multiple tmux plugin scripts - Declare and assign should be separate
### Quoting Problems (SC2086, SC2006)
- Unquoted variable expansions in tmux plugin scripts
- Legacy backtick usage instead of $(...) syntax
- Missing quotes around variable expansions
## Third-Party Code Issues
### Submodule Problems
Most shellcheck errors are in **third-party submodules**:
- `tools/antidote/` - Zsh plugin manager
- `config/tmux/plugins/` - Tmux plugins
- `config/vim/extra/fzf/` - FZF integration
- `config/cheat/cheatsheets/tldr/` - Cheat sheet collection
### Recommendation
- These should be **excluded from shellcheck** via configuration
- Focus linting only on **project-owned scripts**
- Add shellcheck ignore patterns for submodule directories
## Project-Owned Script Issues
### Main Scripts Status
- `install` - ✅ Clean (no shellcheck errors)
- `test-all.sh` - ✅ Clean
- `add-submodules.sh` - ✅ Clean
- `config/shared.sh` - ✅ Clean
- Scripts in `local/bin/` - ✅ Mostly clean
### Minor Issues Found
- Some scripts could benefit from stricter quoting
- Consistent shebang usage across all scripts
- Consider adding `set -euo pipefail` to more scripts

View File

@@ -0,0 +1,121 @@
# Essential Commands for .dotfiles Development
## Installation & Setup
```bash
# Initial setup - install linting tools and dependencies
yarn install
# Install/update all dotfiles configurations
./install
# Update git submodules (multiple approaches)
git submodule update --remote --merge
git submodule update --init --recursive --force
bash add-submodules.sh
```
## Development Commands
```bash
# Linting (run all linters - ALWAYS fix all issues)
yarn lint
# Individual linting commands
yarn lint:markdown # Markdownlint
yarn lint:prettier # Prettier check
yarn lint:ec # EditorConfig checker
# Auto-fixing (use these BEFORE manual linting)
yarn fix # Fix all format issues
yarn fix:markdown # Fix markdown formatting
yarn fix:prettier # Fix prettier formatting
# Testing
yarn test # Run all Bats tests
bash test-all.sh # Alternative test runner
```
## Pre-commit Hooks (Comprehensive)
Current pre-commit configuration includes:
- **Security**: detect-aws-credentials, detect-private-key
- **File integrity**: check-case-conflict, check-merge-conflict, check-symlinks
- **Shell scripts**: shellcheck, shfmt (formatting)
- **YAML/JSON**: yamllint, check-yaml, check-toml, pretty-format-json
- **Markdown**: markdownlint with auto-fix
- **Lua**: stylua formatting for Neovim configs
- **Fish**: fish_syntax, fish_indent for shell configs
- **GitHub Actions**: actionlint validation
- **Renovate**: renovate-config-validator
- **General**: trailing-whitespace, end-of-file-fixer, mixed-line-ending
```bash
# Run pre-commit manually
pre-commit run --all-files
```
## Version Management
```bash
# Check current versions
node --version # Managed by nvm (.nvmrc: v20.18.1)
go version # Managed by asdf (.go-version)
python --version # Managed by asdf (.python-version)
```
## System Utilities (Darwin-specific)
```bash
# Modern CLI tools available
ls # aliased to eza with icons and git info
grep # aliased to grep --color
fd pattern # modern find alternative
rg pattern # ripgrep for text search
bat file # modern cat with syntax highlighting
```
## Project-specific Scripts (100+ available)
```bash
# Dotfiles management
bash local/bin/dfm install all
# Git utilities
git-dirty # Check for dirty git repositories
git-fsck-dirs # Run fsck on git directories
git-update-dirs # Update multiple git directories
# Development utilities
x-pr-comments <pr> # Analyze GitHub PR comments (NEW)
x-set-php-aliases # Generate PHP version aliases
x-env-list # List environment variables
x-open-ports # Check open network ports
# Backup utilities
x-backup-folder # Backup directories
x-backup-mysql-with-prefix # MySQL backup with prefix
```
## Configuration Management
```bash
# Load shell configurations
source config/shared.sh # Cross-shell compatibility functions
source x-set-php-aliases # PHP version management
# Host-specific configurations
# Automatically applied: hosts/{hostname}/
```
## Quality Assurance (CRITICAL)
**All linting errors are BLOCKING and must be fixed:**
- EditorConfig violations are considered blocking errors
- ShellCheck warnings must be addressed
- Prettier formatting must be consistent
- Markdownlint rules must be followed
- NEVER use --no-verify with git operations
- ALWAYS run autofixers before manual intervention

View File

@@ -0,0 +1,115 @@
# Task Completion Checklist
When completing any development task in this dotfiles repository, follow this
checklist to ensure compliance with project standards.
## Required Steps (BLOCKING)
### 1. Code Quality Checks
```bash
# Run all linting tools - MUST PASS with zero errors
yarn lint
# Individual checks if needed:
yarn lint:markdown # Markdownlint validation
yarn lint:prettier # Prettier formatting check
yarn lint:ec # EditorConfig compliance verification
```
### 2. Shell Script Validation (if applicable)
```bash
# All shell scripts must pass shellcheck without warnings
find . -path ./node_modules -prune -o -name '*.sh' -print0 | xargs -0 shellcheck
# For individual scripts:
shellcheck path/to/script.sh
```
### 3. Testing Infrastructure
```bash
# Run all tests - MUST PASS completely
yarn test
# OR alternative runner
bash test-all.sh
# For specific test categories:
# Bats tests in tests/ directory
# Individual script functionality tests
```
### 4. EditorConfig Compliance (CRITICAL)
- **BLOCKING REQUIREMENT**: EditorConfig violations prevent completion
- All code must follow `.editorconfig` rules exactly:
- UTF-8 charset
- LF line endings
- Final newline required
- Trailing whitespace removal
- Language-specific indentation (2-space default, 4-space for Fish)
- Use autofixers before attempting manual fixes
- Never modify linting configuration to bypass errors
## Auto-fixing Protocol
```bash
# ALWAYS run auto-fixers first, in this order:
yarn fix # Fix all auto-fixable issues
yarn fix:markdown # Fix markdown formatting violations
yarn fix:prettier # Fix code formatting issues
# Verify fixes applied correctly:
yarn lint # Should show reduced error count
```
## Pre-commit Hook Integration
Current pre-commit configuration enforces:
- Security checks (credentials, private keys)
- Shell script validation (shellcheck, shfmt)
- Markdown formatting (markdownlint with auto-fix)
- YAML/JSON validation and formatting
- Lua formatting (stylua for Neovim configs)
- Fish shell syntax validation
- GitHub Actions validation (actionlint)
- Renovate configuration validation
## Memory File Maintenance
When updating memory files:
1. Follow markdown best practices (blank lines around headings/lists)
2. Specify language for fenced code blocks
3. Ensure final newline exists
4. Respect line length limits (120 chars for markdown)
5. Use proper heading hierarchy
## Critical Success Criteria
✅ **REQUIRED FOR TASK COMPLETION:**
- `yarn lint` exits with code 0 (no errors)
- `yarn test` passes all test suites
- EditorConfig compliance verified
- No trailing whitespace or missing final newlines
- Shell scripts have proper shebangs and pass shellcheck
- All temporary/cache files cleaned up
❌ **BLOCKING ISSUES:**
- Any linting errors or warnings
- EditorConfig violations of any kind
- Test failures or incomplete test coverage
- Use of `--no-verify` flag with git operations
- Modified linting configurations to bypass errors
## Quality Assurance Notes
- **Use `which command`** to get full paths in scripts
- **Prefer modern tools**: `rg` over `grep`, `fd` over `find`, `bat` over `cat`
- **Test cross-shell compatibility**: bash, zsh, fish
- **Validate host-specific configurations** don't break general setup
- **Document any new utilities** in `local/bin/README.md`

90
.serena/project.yml Normal file
View File

@@ -0,0 +1,90 @@
# language of the project (csharp, python, rust, java, typescript, go, cpp, or ruby)
# * For C, use cpp
# * For JavaScript, use typescript
# Special requirements:
# * csharp: Requires the presence of a .sln file in the project folder.
language: bash
# whether to use the project's gitignore file to ignore files
# Added on 2025-04-07
ignore_all_files_in_gitignore: true
# list of additional paths to ignore
# same syntax as gitignore, so you can use * and **
# Was previously called `ignored_dirs`, please update your config if you are using that.
# Added (renamed) on 2025-04-07
ignored_paths:
- '*.swp'
- '*.tmp'
- '*.tmp.*'
- '.DS_Store'
- '.git/**'
- /config/cheat/cheatsheets/community/**
- /config/cheat/cheatsheets/pure-bash-bible/**
- /config/cheat/cheatsheets/tldr/**
- /config/fish/cheatsheets/community/**
- /config/fzf/**
- /config/nvim/snippets/**
- /config/nvim/spell/**
- /config/op/plugins/**
- /config/tmux/plugins/**
- /config/vim/extra/**
- /config/zsh/completions/**
- /config/zsh/plugins/**
- /local/man/fzf
- /local/share/fonts
- /tools/antidote
- /tools/dotbot
- /tools/dotbot-*/**
- node_modules/**
# whether the project is in read-only mode
# If set to true, all editing tools will be disabled and attempts to use them will result in an error
# Added on 2025-04-18
read_only: false
# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details.
# Below is the complete list of tools for convenience.
# To make sure you have the latest list of tools, and to view their descriptions,
# execute `uv run scripts/print_tool_overview.py`.
#
# * `activate_project`: Activates a project by name.
# * `check_onboarding_performed`: Checks whether project onboarding was already performed.
# * `create_text_file`: Creates/overwrites a file in the project directory.
# * `delete_lines`: Deletes a range of lines within a file.
# * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
# * `execute_shell_command`: Executes a shell command.
# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
# * `initial_instructions`: Gets the initial instructions for the current project.
# Should only be used in settings where the system prompt cannot be set,
# e.g. in clients you have no control over, like Claude Desktop.
# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
# * `insert_at_line`: Inserts content at a given line in a file.
# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
# * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
# * `list_memories`: Lists memories in Serena's project-specific memory store.
# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
# * `read_file`: Reads a file within the project directory.
# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
# * `remove_project`: Removes a project from the Serena configuration.
# * `replace_lines`: Replaces a range of lines within a file with new content.
# * `replace_symbol_body`: Replaces the full definition of a symbol.
# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
# * `search_for_pattern`: Performs a search for a pattern in the project.
# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
# * `switch_modes`: Activates modes by providing a list of their names
# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
excluded_tools: []
# initial prompt for the project. It will always be given to the LLM upon activating the project
# (contrary to the memories, which are loaded on demand).
initial_prompt: ''
project_name: '.dotfiles'

View File

@@ -0,0 +1,5 @@
{
"sonarCloudOrganization": "ivuorinen",
"projectKey": "ivuorinen_dotfiles",
"region": "EU"
}

View File

@@ -0,0 +1,16 @@
# vim: ft=gitignore
.mypy_cache/*
Brewfile.lock.json
config/cheat/cheatsheets/community
config/cheat/cheatsheets/tldr
config/fzf/*
config/nvim/*
config/op/plugins/used_plugins/*
config/tmux/plugins/*
config/vim/plugged/*
config/zsh/*
lazy-lock.json
local/bin/antigen.zsh
local/bin/asdf
tools/antidote/*
tools/dotbot*

21
.yamllint.yml Normal file
View File

@@ -0,0 +1,21 @@
---
extends: default
ignore: |
node_modules
tools
config/tmux/plugins
rules:
empty-lines:
level: warning
max: 1
line-length:
max: 200
level: warning
truthy:
check-keys: false
comments:
min-spaces-from-content: 1
trailing-spaces:
level: warning

1
.yarnrc.yml Normal file
View File

@@ -0,0 +1 @@
nodeLinker: node-modules

55
AGENTS.md Normal file
View File

@@ -0,0 +1,55 @@
# Project guidelines
This repository contains configuration files and helper scripts for managing
a development environment.
Dotbot drives installation, and host-specific folders under `hosts/` contain extra configs.
## Setup
1. Run `yarn install` to fetch linting tools and the Bats test framework.
2. Re-run `yarn install` whenever `package.json` changes.
3. Yarn is the package manager of choice; avoid `npm` commands.
## Keeping the repository up to date
1. Update submodules with `git submodule update --remote --merge`.
2. Pull the latest changes and run `./install`.
## Linting and tests
- Format files with:
```bash
yarn fix:prettier
yarn fix:markdown
```
- Shell scripts must pass `shellcheck`.
```bash
find . -path ./node_modules -prune -o -name '*.sh' -print0 | xargs -0 shellcheck
```
- Ensure `.editorconfig` rules pass:
```bash
tools/install-ec.sh
ec
```
- Execute tests with `yarn test` when code changes.
## Debugging lint issues
- `yarn lint:prettier` and `yarn lint:markdown` show formatting errors.
- Ensure shell scripts have a shebang or `# shellcheck shell=bash` directive.
- Consult `.shellcheckrc` for project specific checks.
Scripts rely on helpers in `config/shared.sh` so they run under Bash, Zsh and Fish by default.
## Commits and PRs
- Use Semantic Commit messages: `type(scope): summary`.
- Keep PR titles in the same format.
<!-- vim: set ft=markdown spell spelllang=en_us cc=80 : -->

View File

@@ -41,7 +41,9 @@ git submodule add --name tmux/tmux-yank \
git submodule add --name tmux/tmux-current-pane-hostname \
-f https://github.com/soyuka/tmux-current-pane-hostname.git config/tmux/plugins/tmux-current-pane-hostname
git submodule add --name tmux/tmux-dark-notify \
-f https://github.com/erikw/tmux-dark-notify.git config/tmux/plugins/tmux-dark-notify
-f https://github.com/ivuorinen/tmux-dark-notify.git config/tmux/plugins/tmux-dark-notify
git submodule add --name tmux/catppuccin \
-f https://github.com/catppuccin/tmux.git config/tmux/plugins/catppuccin
# Takes submodules and sets them to ignore all changes
for MODULE in $(git config --file .gitmodules --get-regexp path | awk '{ print $2 }'); do

View File

@@ -20,6 +20,16 @@
"value": "Ismo Vuorinen"
}
],
"masf": [
{
"key": "user.email",
"value": "ismo@masf.fi"
},
{
"key": "user.name",
"value": "Ismo Vuorinen"
}
],
"work": [
{
"key": "user.email",

View File

@@ -0,0 +1,15 @@
--
-- These globals can be set and accessed:
--
globals = {
"rawrequire",
}
--
-- These globals can only be accessed:
--
read_globals = {
"hs",
"ls",
"spoon",
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

205
base/hammerspoon/init.lua Normal file
View File

@@ -0,0 +1,205 @@
-- ╭─────────────────────────────────────────────────────────╮
-- │ Hammerspoon config file │
-- ╰─────────────────────────────────────────────────────────╯
-- init.lua — Pure Hammerspoon window controls
-- Converted from skhdrc logic; expanded with perdisplay grids,
-- app rules with groups, wraparound focus, crossdisplay moves,
-- and overlay/notification toggles.
-- Author: Ismo Vuorinen (ivuorinen)
--------------------------------------------------
-- Caps Lock as Meh key (Shift+Control+Alt)
--------------------------------------------------
-- Prerequisites:
-- 1. Go to System Settings → Keyboard → Keyboard Shortcuts → Modifier Keys
-- 2. Set Caps Lock to "No Action" (you mentioned you already did this)
-- 3. Install Karabiner-Elements: brew install --cask karabiner-elements
-- 4. Open Karabiner-Elements, go to "Simple Modifications"
-- 5. Add: caps_lock → f18
--
-- Then you can use F18 as your Meh key in Hammerspoon:
local f18 = hs.hotkey.modal.new()
-- Capture F18 key press/release
hs.hotkey.bind({}, 'F18', function()
f18:enter()
end, function()
f18:exit()
end)
-- Meh (F18/Caps Lock) key bindings for window management
-- These provide quick access to common window operations
-- Helper function to get focused window
local function W()
return hs.window.focusedWindow()
end
-- Window positioning: thirds (U/I/O)
f18:bind({}, 'u', function()
local w = W()
if w then
w:moveToUnit({ x = 0, y = 0, w = 1 / 3, h = 1 }, 0)
end
end)
f18:bind({}, 'i', function()
local w = W()
if w then
w:moveToUnit({ x = 1 / 3, y = 0, w = 1 / 3, h = 1 }, 0)
end
end)
f18:bind({}, 'o', function()
local w = W()
if w then
w:moveToUnit({ x = 2 / 3, y = 0, w = 1 / 3, h = 1 }, 0)
end
end)
-- Window positioning: half width, full height (Y)
f18:bind({}, 'y', function()
local w = W()
if w then
w:moveToUnit({ x = 0, y = 0, w = 0.5, h = 1 }, 0)
end
end)
-- Cycle through all windows (H/L)
-- We need to maintain state to properly cycle through all windows
local windowCycleIndex = 1
local windowCycleList = {}
local lastCycleTime = 0
local function getWindowCycleList()
local currentTime = hs.timer.secondsSinceEpoch()
-- Reset if more than 2 seconds have passed since last cycle
if currentTime - lastCycleTime > 2 then
windowCycleIndex = 1
windowCycleList = hs.window.orderedWindows()
end
lastCycleTime = currentTime
return windowCycleList
end
f18:bind({}, 'h', function()
local windows = getWindowCycleList()
if #windows <= 1 then
return
end
-- Cycle backward
windowCycleIndex = windowCycleIndex - 1
if windowCycleIndex < 1 then
windowCycleIndex = #windows
end
windows[windowCycleIndex]:focus()
end)
f18:bind({}, 'l', function()
local windows = getWindowCycleList()
if #windows <= 1 then
return
end
-- Cycle forward
windowCycleIndex = windowCycleIndex + 1
if windowCycleIndex > #windows then
windowCycleIndex = 1
end
windows[windowCycleIndex]:focus()
end)
-- Window sizing: maximize (Up/J) and center (Down)
f18:bind({}, 'up', function()
local w = W()
if w then
w:maximize(0)
end
end)
f18:bind({}, 'j', function()
local w = W()
if w then
w:maximize(0)
end
end)
f18:bind({}, 'down', function()
local w = W()
if not w then
return
end
local f = w:frame()
local sf = w:screen():frame()
if f.w < sf.w * 0.95 then
w:maximize(0)
else
local ww, hh = math.floor(sf.w * 0.5), math.floor(sf.h * 0.9)
local xx = sf.x + math.floor((sf.w - ww) / 2)
local yy = sf.y + math.floor((sf.h - hh) / 2)
w:setFrame({ x = xx, y = yy, w = ww, h = hh }, 0)
end
end)
f18:bind({}, 'k', function()
local w = W()
if w then
local sf = w:screen():frame()
local ww, hh = math.floor(sf.w * 0.9), math.floor(sf.h * 0.9)
local xx = sf.x + math.floor((sf.w - ww) / 2)
local yy = sf.y + math.floor((sf.h - hh) / 2)
w:setFrame({ x = xx, y = yy, w = ww, h = hh }, 0)
end
end)
-- Move to next/previous screen (. and ,)
f18:bind({}, '.', function()
local w = W()
if w then
local s = w:screen()
local ns = s:toEast() or s:toWest()
if ns then
w:moveToScreen(ns, true, true, 0)
end
end
end)
f18:bind({}, ',', function()
local w = W()
if w then
local s = w:screen()
local ps = s:toWest() or s:toEast()
if ps then
w:moveToScreen(ps, true, true, 0)
end
end
end)
-- Window positioning: halves (Left/Right arrows)
f18:bind({}, 'left', function()
local w = W()
if w then
w:moveToUnit(hs.layout.left50, 0)
end
end)
f18:bind({}, 'right', function()
local w = W()
if w then
w:moveToUnit(hs.layout.right50, 0)
end
end)
-- Paste from clipboard with Meh + V
f18:bind({}, 'v', function()
hs.eventtap.keyStrokes(hs.pasteboard.getContents())
end)
-- Paste 1Password secret with Meh + P
f18:bind({}, 'p', function()
local output, status =
hs.execute('op read "op://Svea/3hzhctmvovbwlgulv7mgy25rf4/login-input"', true)
if status then
hs.eventtap.keyStrokes(output:gsub('%s+$', '')) -- trim trailing whitespace
else
hs.alert.show '1Password CLI error'
end
end)
-- require 'generate_emmylua'

View File

@@ -12,5 +12,3 @@
~-.__| /_ - ~ ^| /- _ `..-' f: f:
| / | / ~-. `-. _||_||_
|_____| |_____| ~ - . _ _ _ _ _>

View File

@@ -4,4 +4,3 @@
# paths in source statements (since 0.8.0).
external-sources=true
includeAllWorkspaceSymbols=true

103
biome.json Normal file
View File

@@ -0,0 +1,103 @@
{
"$schema": "https://biomejs.dev/schemas/2.3.1/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true,
"defaultBranch": "main"
},
"files": {
"ignoreUnknown": true,
"includes": [
"**",
"!!**/.mypy_cache",
"!!**/Brewfile.lock.json",
"!!**/base/plan",
"!!**/config/cheat/cheatsheets/community",
"!!**/config/cheat/cheatsheets/tldr",
"!!**/config/fzf",
"!!**/config/nvim",
"!!**/config/op/plugins/used_plugins",
"!!**/config/tmux/plugins",
"!!**/config/zsh",
"!!**/config/vim",
"!!**/lazy-lock.json",
"!!**/local/bin/antigen.zsh",
"!!**/local/bin/asdf",
"!!**/tools/antidote",
"!!**/tools/dotbot",
"!!**/node_modules"
]
},
"formatter": {
"enabled": true,
"formatWithErrors": false,
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf",
"lineWidth": 80
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"correctness": {
"noUnusedVariables": "warn",
"noUnusedImports": "warn"
},
"style": {
"useConst": "warn",
"useTemplate": "warn"
},
"suspicious": {
"noExplicitAny": "warn",
"noConsole": "off"
}
}
},
"javascript": {
"formatter": {
"enabled": true,
"quoteStyle": "single",
"jsxQuoteStyle": "double",
"trailingCommas": "all",
"semicolons": "asNeeded",
"arrowParentheses": "always",
"bracketSpacing": true,
"bracketSameLine": false,
"quoteProperties": "asNeeded",
"indentStyle": "space",
"indentWidth": 2
}
},
"json": {
"parser": {
"allowComments": true,
"allowTrailingCommas": false
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 80
}
},
"overrides": [
{
"includes": ["*.md", "*.mdx"],
"formatter": {
"enabled": true,
"lineWidth": 120
}
},
{
"includes": ["package.json"],
"json": {
"formatter": {
"enabled": true,
"indentWidth": 2
}
}
}
]
}

View File

@@ -1,8 +1,3 @@
import = [
# Default to night if the copied one doesn't exist.
"~/.dotfiles/config/alacritty/theme-night.toml",
"~/.config/alacritty/theme-active.toml"
]
[env]
TERM = "xterm-256color"
@@ -50,3 +45,10 @@ lines = 75
[window.padding]
x = 5
y = 5
[general]
import = [
# Default to night if the copied one doesn't exist.
"~/.dotfiles/config/alacritty/theme-night.toml",
"~/.config/alacritty/theme-active.toml"
]

View File

@@ -180,7 +180,7 @@ swap-main:
# Move focus to the n-th screen in the list; e.g.,
# focus-screen-3 will move mouse focus to the 3rd screen.
# Note that the main window in the given screen will be focused.
#focus-screen-n:
# focus-screen-n:
# focus-screen-<screen-number>:
# mod: mod1
# key: y
@@ -197,12 +197,12 @@ swap-main:
# key: i
# Select tall layout
#select-tall-layout:
# mod: mod1
# key: a
# select-tall-layout:
# mod: mod1
# key: a
# Select wide layout
#select-wide-layout:
# select-wide-layout:
# mod: mod1
# key: s

View File

@@ -6,21 +6,19 @@
*
* @param {Object} windows - All windows in the current space.
* @param {Object} screenFrame - The frame of the current screen.
* @param {Object} state - The state of the current space.
* @param {Object} extendedFrames - The frames of the windows in the current space.
* @return {Object} - The frames for the windows in the current space.
*/
function layout() {
return {
name: 'Almost Maximize',
getFrameAssignments: (windows, screenFrame, state, extendedFrames) => {
getFrameAssignments: (windows, screenFrame) => {
const width = screenFrame.width * 0.95
const height = screenFrame.height * 0.95
const x = (screenFrame.width - width) / 2
const y = (screenFrame.height - height) / 2
const windowFrames = {}
windows.forEach(window => {
windows.forEach((window) => {
windowFrames[window.id] = {
Y: screenFrame.y + y,
x: screenFrame.x + x,
@@ -33,3 +31,5 @@ function layout() {
},
}
}
module.exports = layout()

View File

@@ -23,3 +23,5 @@ bottom
eza
// Tmux Sessionizer: A tool for opening git repositories as tmux sessions
tmux-sessionizer
// zoxide, a smarter cd command
zoxide

View File

@@ -1,23 +1,29 @@
// These are golang packages I use,
// so they should be available with all versions
// Aqua is a package manager like asdf, or Brew
github.com/aquaproj/aqua/v2/cmd/aqua@latest
// Git Profile allows you to switch between user profiles in git repos
github.com/dotzero/git-profile@v1.4.0
github.com/dotzero/git-profile@latest
// An extensible command line tool or library to format yaml files.
github.com/google/yamlfmt/cmd/yamlfmt@v0.13.0
github.com/google/yamlfmt/cmd/yamlfmt@latest
// Parsing HTML at the command line
github.com/ericchiang/pup@v0.4.0
github.com/ericchiang/pup@latest
// HTML to Markdown converter
github.com/suntong/html2md@v1.5.0
github.com/suntong/html2md@latest
// cheat allows you to create and view interactive cheatsheets on the cli.
github.com/cheat/cheat/cmd/cheat@4.4.2
github.com/cheat/cheat/cmd/cheat@latest
// Render markdown on the CLI, with pizzazz! 💅
github.com/charmbracelet/glow@v1.5.1
github.com/charmbracelet/glow@latest
// Static checker for GitHub Actions workflow files
github.com/rhysd/actionlint/cmd/actionlint@v1.7.1
github.com/rhysd/actionlint/cmd/actionlint@latest
// Cleans up your $HOME from those pesky dotfiles
github.com/doron-cohen/antidot@v0.6.3
github.com/doron-cohen/antidot@latest
// FZF is a general-purpose command-line fuzzy finder.
github.com/junegunn/fzf@latest
// gopls, the Go language server
golang.org/x/tools/gopls@latest
// A language for writing HTML user interfaces in Go.
github.com/a-h/templ/cmd/templ@latest
// A tool for glamorous shell scripts 🎀
github.com/charmbracelet/gum@latest
// A terminal session manager
github.com/joshmedeski/sesh/v2@latest

View File

@@ -69,5 +69,3 @@ Available format modifiers are:
'. For decimal conversions, applies the thousands grouping
separator to the integer portion of the output according
to the current LC_NUMERIC file.

View File

@@ -56,11 +56,11 @@ TERM xterm*
RESET 0 # reset to "normal" color
DIR 01;34 # directory
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00 # regular file with more than one link
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
# numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00 # regular file with more than one link
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...

View File

@@ -10,4 +10,3 @@ prefix = [
exact = [
"~/.dotfiles/.envrc"
]

View File

@@ -1,4 +1,6 @@
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
use_asdf() {
# shellcheck shell=bash
use_asdf()
{
source_env "$(asdf direnv envrc "$@")"
}

View File

@@ -458,5 +458,7 @@ export SQLITE_HISTORY="${XDG_CACHE_HOME}/sqlite_history"
[ -f "$XDG_CONFIG_HOME/exports-secret" ] && source "$XDG_CONFIG_HOME/exports-secret"
[ -f "$XDG_CONFIG_HOME/exports-local" ] && source "$XDG_CONFIG_HOME/exports-local"
# shellcheck source=./exports-lakka
[ -f "$XDG_CONFIG_HOME/exports-$(hostname)" ] && source "$XDG_CONFIG_HOME/exports-$(hostname)"
# shellcheck source=./exports-lakka-secret
[ -f "$XDG_CONFIG_HOME/exports-$(hostname)-secret" ] && source "$XDG_CONFIG_HOME/exports-$(hostname)-secret"

View File

@@ -1,5 +1,3 @@
#!/usr/bin/env bash
#
# This file is secret and wont be added to the git repo.
export GITLAB_API_TOKEN=""

View File

@@ -6,9 +6,12 @@ alias vim='vim -u "$XDG_CONFIG_HOME/vim/vimrc"'
if type -q eza >/dev/null
function eza_git -d "Use eza and its git options if in a git repo"
if git rev-parse --is-inside-work-tree &>/dev/null
eza --group-directories-first --icons=always --smart-group --git $argv
eza --group-directories-first --icons=always \
--smart-group --git $argv
else
eza --group-directories-first --icons=always --smart-group $argv
eza --group-directories-first \
--icons=always \
--smart-group $argv
end
end
@@ -30,7 +33,9 @@ if type -q eza >/dev/null
end
# Edit fish alias file
function .a --wraps='nvim ~/.dotfiles/config/fish/alias.fish' --description 'edit alias.fish'
function .a \
--wraps='nvim ~/.dotfiles/config/fish/alias.fish' \
--description 'edit alias.fish'
nvim ~/.dotfiles/config/fish/alias.fish $argv
end
@@ -55,7 +60,9 @@ function .p --wraps='cd ~/Code/ivuorinen' --description 'cd ~/Code/ivuorinen'
end
# shortcut to commit with a message
function commit --wraps='git commit -a -m "chore: automated commit"' --description 'commit shortcut'
function commit \
--wraps='git commit -a -m "chore: automated commit"' \
--description 'commit shortcut'
set -l commitMessage $argv
git add .
@@ -71,7 +78,8 @@ function commit --wraps='git commit -a -m "chore: automated commit"' --descripti
git commit -a -m "$commitMessage"
end
function configure_tide --description 'Configure tide with the lean style and my preferences'
function configure_tide \
--description 'Configure tide with the lean style and my preferences'
tide configure \
--auto \
--style=Lean \
@@ -84,25 +92,5 @@ function configure_tide --description 'Configure tide with the lean style and my
--transient=Yes
end
# Abbreviations for git
abbr --add gau git add -u
abbr --add gaa git add -A
abbr --add gcv git commit -v
# Abbreviations for composer
abbr --add c composer
abbr --add cu composer update
abbr --add ci composer install
# Abbreviations for php artisan
abbr --add .pa php artisan
abbr --add .paf php artisan fresh
abbr --add .pam php artisan migrate
abbr --add .pams php artisan migrate --seed
abbr --add .pat php artisan test
# Abbreviations for npm
abbr --add .n npm
abbr --add .nt npm test --if-present
abbr --add .nb npm run build --if-present
abbr --add .ns npm run start --if-present
# Random abbreviations
abbr --add stats onefetch --nerd-fonts --true-color never

View File

@@ -1,71 +0,0 @@
# @halostatue/fish-macos/completions/app.fish:v7.0.1
complete --command app --erase
complete --command app --arguments bundleid \
--exclusive --condition __fish_use_subcommand \
--description 'Show bundle IDs for macOS apps'
complete --command app --arguments find \
--exclusive --condition __fish_use_subcommand \
--description 'Find macOS apps by pattern'
complete --command app --arguments frontmost \
--exclusive --condition __fish_use_subcommand \
--description 'Shows the front-most application'
complete --command app --arguments icon \
--exclusive --condition __fish_use_subcommand \
--description 'Extracts a MacOS app icon as a png file'
complete --command app --arguments quit \
--exclusive --condition __fish_use_subcommand \
--description 'Quit macOS apps by pattern'
for subcommand in bundleid find
complete --command app --condition '__fish_seen_subcommand_from '$subcommand \
--short-option x --long-option exact --description 'Exact matches only'
complete --command app --condition '__fish_seen_subcommand_from '$subcommand \
--short-option a --long-option all --description 'Show all matches'
complete --command app --condition '__fish_seen_subcommand_from '$subcommand \
--short-option q --long-option quiet --description 'Quiet (show no output)'
complete --command app --condition '__fish_seen_subcommand_from '$subcommand \
--short-option h --long-option help --description 'Help for app '$subcommand
end
complete --command app --condition '__fish_seen_subcommand_from 'bundleid \
--short-option s --long-option short --description 'Show only the bundle ID'
complete --command app --condition '__fish_seen_subcommand_from 'frontmost \
--short-option b --long-option bundle-id --description 'Shows the app bundle ID'
complete --command app --condition '__fish_seen_subcommand_from 'frontmost \
--short-option p --long-option path --description 'Shows the app path'
complete --command app --condition '__fish_seen_subcommand_from 'frontmost \
--short-option n --long-option name --description 'Shows the app name'
complete --command app --condition '__fish_seen_subcommand_from 'frontmost \
--short-option P --long-option pid --description 'Shows the PID of the app'
complete --command app --condition '__fish_seen_subcommand_from 'frontmost \
--short-option a --long-option all --description 'Shows all details'
complete --command app --condition '__fish_seen_subcommand_from 'frontmost \
--short-option h --long-option help --description 'Help for app 'frontmost
complete --command app --condition '__fish_seen_subcommand_from 'icon \
--short-option x --long-option exact --description 'Exact matches only'
complete --command app --condition '__fish_seen_subcommand_from 'icon \
--short-option o --long-option output --description 'Extracts to this file or directory' \
--force-files
complete --command app --condition '__fish_seen_subcommand_from 'icon \
--short-option w --long-option width --description 'Uses this pixel width' \
--no-files
complete --command app --condition '__fish_seen_subcommand_from 'icon \
--short-option h --long-option help --description 'Help for app 'icon
complete --command app --condition '__fish_seen_subcommand_from 'quit \
--short-option x --long-option exact --description 'Exact matches only'
complete --command app --condition '__fish_seen_subcommand_from 'quit \
--short-option r --long-option restart --description 'Restart after quit'
complete --command app --condition '__fish_seen_subcommand_from 'quit \
--short-option h --long-option help --description 'Help for app 'quit

View File

@@ -9,31 +9,31 @@ function __fish_aqua_no_subcommand --description 'Test if there has been any sub
return 0
end
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l log-level -r -d 'log level'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l config -s c -r -d 'configuration file path'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l disable-cosign -d 'Disable Cosign verification'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l disable-slsa -d 'Disable SLSA verification'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l disable-github-artifact-attestation -d 'Disable GitHub Artifact Attestations verification'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l trace -r -d 'trace output file path'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l cpu-profile -r -d 'cpu profile output file path'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l help -s h -d 'show help'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l version -s v -d 'print the version'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l help -s h -d 'show help'
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l version -s v -d 'print the version'
complete -c aqua -n __fish_aqua_no_subcommand -f -l log-level -r -d 'log level'
complete -c aqua -n __fish_aqua_no_subcommand -f -l config -s c -r -d 'configuration file path'
complete -c aqua -n __fish_aqua_no_subcommand -f -l disable-cosign -d 'Disable Cosign verification'
complete -c aqua -n __fish_aqua_no_subcommand -f -l disable-slsa -d 'Disable SLSA verification'
complete -c aqua -n __fish_aqua_no_subcommand -f -l disable-github-artifact-attestation -d 'Disable GitHub Artifact Attestations verification'
complete -c aqua -n __fish_aqua_no_subcommand -f -l trace -r -d 'trace output file path'
complete -c aqua -n __fish_aqua_no_subcommand -f -l cpu-profile -r -d 'cpu profile output file path'
complete -c aqua -n __fish_aqua_no_subcommand -f -l help -s h -d 'show help'
complete -c aqua -n __fish_aqua_no_subcommand -f -l version -s v -d 'print the version'
complete -c aqua -n __fish_aqua_no_subcommand -f -l help -s h -d 'show help'
complete -c aqua -n __fish_aqua_no_subcommand -f -l version -s v -d 'print the version'
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'init' -d 'Create a configuration file if it doesn\'t exist'
complete -r -c aqua -n __fish_aqua_no_subcommand -a init -d 'Create a configuration file if it doesn\'t exist'
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l use-import-dir -s u -d 'Use import_dir'
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l import-dir -s i -r -d 'import_dir'
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l import-dir -s i -r -d import_dir
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l create-dir -s d -d 'Create a directory named aqua and create aqua.yaml in it'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'install i' -d 'Install tools'
complete -r -c aqua -n __fish_aqua_no_subcommand -a 'install i' -d 'Install tools'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l only-link -s l -d 'create links but skip downloading packages'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l test -d 'This flag was deprecated and had no meaning from aqua v2.0.0. This flag will be removed in aqua v3.0.0. https://github.com/aquaproj/aqua/issues/1691'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l all -s a -d 'install all aqua configuration packages'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l tags -s t -r -d 'filter installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l exclude-tags -r -d 'exclude installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'generate g' -d 'Search packages in registries and output the configuration interactively'
complete -r -c aqua -n __fish_aqua_no_subcommand -a 'generate g' -d 'Search packages in registries and output the configuration interactively'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l f -r -d 'the file path of packages list. When the value is "-", the list is passed from the standard input'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l i -d 'Insert packages to configuration file'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l pin -d 'Pin version'
@@ -43,14 +43,14 @@ complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l o -r -d 'inse
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l select-version -s s -d 'Select the installed version interactively. Default to display 30 versions, use --limit/-l to change it.'
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l limit -s l -r -d 'The maximum number of versions. Non-positive number refers to no limit.'
complete -c aqua -n '__fish_seen_subcommand_from update-aqua upa' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'update-aqua upa' -d 'Update aqua'
complete -r -c aqua -n __fish_aqua_no_subcommand -a 'update-aqua upa' -d 'Update aqua'
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'update-checksum upc' -d 'Create or Update aqua-checksums.json'
complete -r -c aqua -n __fish_aqua_no_subcommand -a 'update-checksum upc' -d 'Create or Update aqua-checksums.json'
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l all -s a -d 'Create or Update all aqua-checksums.json including global configuration'
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l deep -d 'This flag was deprecated and had no meaning from aqua v2.0.0. This flag will be removed in aqua v3.0.0. https://github.com/aquaproj/aqua/issues/1769'
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l prune -d 'Remove unused checksums'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'update up' -d 'Update registries and packages'
complete -r -c aqua -n __fish_aqua_no_subcommand -a 'update up' -d 'Update registries and packages'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l i -d 'Select packages with fuzzy finder'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l select-version -s s -d 'Select the version with fuzzy finder. Default to display 30 versions, use --limit/-l to change it.'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l only-registry -s r -d 'Update only registries'
@@ -59,57 +59,57 @@ complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l limit -s l -r
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l tags -s t -r -d 'filter installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l exclude-tags -r -d 'exclude installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from completion' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'completion' -d 'Output shell completion script for bash, zsh, or fish'
complete -r -c aqua -n __fish_aqua_no_subcommand -a completion -d 'Output shell completion script for bash, zsh, or fish'
complete -c aqua -n '__fish_seen_subcommand_from completion' -f -l help -s h -d 'show help'
complete -c aqua -n '__fish_seen_subcommand_from bash' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'bash' -d 'Output shell completion script for bash'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a bash -d 'Output shell completion script for bash'
complete -c aqua -n '__fish_seen_subcommand_from zsh' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'zsh' -d 'Output shell completion script for zsh'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a zsh -d 'Output shell completion script for zsh'
complete -c aqua -n '__fish_seen_subcommand_from fish' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'fish' -d 'Output shell completion script for fish'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a fish -d 'Output shell completion script for fish'
complete -c aqua -n '__fish_seen_subcommand_from fish' -f -l help -s h -d 'show help'
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from fish' -a 'help h' -d 'Shows a list of commands or help for one command'
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'help h' -d 'Shows a list of commands or help for one command'
complete -c aqua -n '__fish_seen_subcommand_from which' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'which' -d 'Output the absolute file path of the given command'
complete -r -c aqua -n __fish_aqua_no_subcommand -a which -d 'Output the absolute file path of the given command'
complete -c aqua -n '__fish_seen_subcommand_from which' -f -l version -s v -d 'Output the given package version'
complete -c aqua -n '__fish_seen_subcommand_from info' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'info' -d 'Show information'
complete -r -c aqua -n __fish_aqua_no_subcommand -a info -d 'Show information'
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'remove rm' -d 'Uninstall packages'
complete -r -c aqua -n __fish_aqua_no_subcommand -a 'remove rm' -d 'Uninstall packages'
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l all -s a -d 'uninstall all packages'
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l mode -s m -r -d 'Removed target modes. l: link, p: package'
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l i -d 'Select packages with a Fuzzy Finder'
complete -c aqua -n '__fish_seen_subcommand_from vacuum' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'vacuum' -d 'Remove unused installed packages'
complete -r -c aqua -n __fish_aqua_no_subcommand -a vacuum -d 'Remove unused installed packages'
complete -c aqua -n '__fish_seen_subcommand_from vacuum' -f -l init -d 'Create timestamp files.'
complete -c aqua -n '__fish_seen_subcommand_from vacuum' -f -l days -s d -r -d 'Expiration days'
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'cp' -d 'Copy executable files in a directory'
complete -r -c aqua -n __fish_aqua_no_subcommand -a cp -d 'Copy executable files in a directory'
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l o -r -d 'destination directory'
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l all -s a -d 'install all aqua configuration packages'
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l tags -s t -r -d 'filter installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l exclude-tags -r -d 'exclude installed packages with tags'
complete -c aqua -n '__fish_seen_subcommand_from policy' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'policy' -d 'Manage Policy'
complete -r -c aqua -n __fish_aqua_no_subcommand -a policy -d 'Manage Policy'
complete -c aqua -n '__fish_seen_subcommand_from allow' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a 'allow' -d 'Allow a policy file'
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a allow -d 'Allow a policy file'
complete -c aqua -n '__fish_seen_subcommand_from deny' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a 'deny' -d 'Deny a policy file'
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a deny -d 'Deny a policy file'
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a 'init' -d 'Create a policy file if it doesn\'t exist'
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a init -d 'Create a policy file if it doesn\'t exist'
complete -c aqua -n '__fish_seen_subcommand_from init-policy' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'init-policy' -d '[Deprecated] Create a policy file if it doesn\'t exist'
complete -r -c aqua -n __fish_aqua_no_subcommand -a init-policy -d '[Deprecated] Create a policy file if it doesn\'t exist'
complete -c aqua -n '__fish_seen_subcommand_from exec' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'exec' -d 'Execute tool'
complete -r -c aqua -n __fish_aqua_no_subcommand -a exec -d 'Execute tool'
complete -c aqua -n '__fish_seen_subcommand_from list' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'list' -d 'List packages in Registries'
complete -r -c aqua -n __fish_aqua_no_subcommand -a list -d 'List packages in Registries'
complete -c aqua -n '__fish_seen_subcommand_from list' -f -l installed -s i -d 'List installed packages'
complete -c aqua -n '__fish_seen_subcommand_from list' -f -l all -s a -d 'List global configuration packages too'
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'generate-registry gr' -d 'Generate a registry\'s package configuration'
complete -r -c aqua -n __fish_aqua_no_subcommand -a 'generate-registry gr' -d 'Generate a registry\'s package configuration'
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l out-testdata -r -d 'A file path where the testdata is outputted'
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l cmd -r -d 'A list of commands joined with commas \',\''
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l generate-config -s c -r -d 'A configuration file path'
@@ -117,9 +117,8 @@ complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l lim
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l deep -d 'This flag was deprecated and had no meaning from aqua v2.15.0. This flag will be removed in aqua v3.0.0. https://github.com/aquaproj/aqua/issues/2351'
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l init -d 'Generate a configuration file'
complete -c aqua -n '__fish_seen_subcommand_from version' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'version' -d 'Show version'
complete -r -c aqua -n __fish_aqua_no_subcommand -a version -d 'Show version'
complete -c aqua -n '__fish_seen_subcommand_from root-dir' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'root-dir' -d 'Output the aqua root directory (AQUA_ROOT_DIR)'
complete -r -c aqua -n __fish_aqua_no_subcommand -a root-dir -d 'Output the aqua root directory (AQUA_ROOT_DIR)'
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'help h' -d 'Shows a list of commands or help for one command'
complete -r -c aqua -n __fish_aqua_no_subcommand -a 'help h' -d 'Shows a list of commands or help for one command'

View File

@@ -0,0 +1,71 @@
# Print an optspec for argparse to handle cmd's options that are independent of any subcommand.
function __fish_bob_global_optspecs
string join \n h/help V/version
end
function __fish_bob_needs_command
# Figure out if the current invocation already has a command.
set -l cmd (commandline -opc)
set -e cmd[1]
argparse -s (__fish_bob_global_optspecs) -- $cmd 2>/dev/null
or return
if set -q argv[1]
# Also print the command, so this can be used to figure out what it is.
echo $argv[1]
return 1
end
return 0
end
function __fish_bob_using_subcommand
set -l cmd (__fish_bob_needs_command)
test -z "$cmd"
and return 1
contains -- $cmd[1] $argv
end
complete -c bob -n __fish_bob_needs_command -s h -l help -d 'Print help'
complete -c bob -n __fish_bob_needs_command -s V -l version -d 'Print version'
complete -c bob -n __fish_bob_needs_command -f -a use -d 'Switch to the specified version, by default will auto-invoke install command if the version is not installed already'
complete -c bob -n __fish_bob_needs_command -f -a install -d 'Install the specified version, can also be used to update out-of-date nightly version'
complete -c bob -n __fish_bob_needs_command -f -a sync -d 'If Config::version_sync_file_location is set, the version in that file will be parsed and installed'
complete -c bob -n __fish_bob_needs_command -f -a uninstall -d 'Uninstall the specified version'
complete -c bob -n __fish_bob_needs_command -f -a rm -d 'Uninstall the specified version'
complete -c bob -n __fish_bob_needs_command -f -a rollback -d 'Rollback to an existing nightly rollback'
complete -c bob -n __fish_bob_needs_command -f -a erase -d 'Erase any change bob ever made, including neovim installation, neovim version downloads and registry changes'
complete -c bob -n __fish_bob_needs_command -f -a list -d 'List all installed and used versions'
complete -c bob -n __fish_bob_needs_command -f -a ls -d 'List all installed and used versions'
complete -c bob -n __fish_bob_needs_command -f -a list-remote
complete -c bob -n __fish_bob_needs_command -f -a ls-remote
complete -c bob -n __fish_bob_needs_command -f -a complete -d 'Generate shell completion'
complete -c bob -n __fish_bob_needs_command -f -a update -d 'Update existing version |nightly|stable|--all|'
complete -c bob -n __fish_bob_needs_command -f -a run
complete -c bob -n __fish_bob_needs_command -f -a help -d 'Print this message or the help of the given subcommand(s)'
complete -c bob -n "__fish_bob_using_subcommand use" -s n -l no-install -d 'Whether not to auto-invoke install command'
complete -c bob -n "__fish_bob_using_subcommand use" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c bob -n "__fish_bob_using_subcommand install" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c bob -n "__fish_bob_using_subcommand sync" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand uninstall" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c bob -n "__fish_bob_using_subcommand rm" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c bob -n "__fish_bob_using_subcommand rollback" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand erase" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand list" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand ls" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand list-remote" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand ls-remote" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand complete" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand update" -s a -l all -d 'Apply the update to all versions'
complete -c bob -n "__fish_bob_using_subcommand update" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand run" -s h -l help -d 'Print help'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a use -d 'Switch to the specified version, by default will auto-invoke install command if the version is not installed already'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a install -d 'Install the specified version, can also be used to update out-of-date nightly version'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a sync -d 'If Config::version_sync_file_location is set, the version in that file will be parsed and installed'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a uninstall -d 'Uninstall the specified version'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a rollback -d 'Rollback to an existing nightly rollback'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a erase -d 'Erase any change bob ever made, including neovim installation, neovim version downloads and registry changes'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a list -d 'List all installed and used versions'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a list-remote
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a complete -d 'Generate shell completion'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a update -d 'Update existing version |nightly|stable|--all|'
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a run
complete -c bob -n "__fish_bob_using_subcommand help; and not __fish_seen_subcommand_from use install sync uninstall rollback erase list list-remote complete update run help" -f -a help -d 'Print this message or the help of the given subcommand(s)'

View File

@@ -0,0 +1,234 @@
# fish completion for docker -*- shell-script -*-
function __docker_debug
set -l file "$BASH_COMP_DEBUG_FILE"
if test -n "$file"
echo "$argv" >>$file
end
end
function __docker_perform_completion
__docker_debug "Starting __docker_perform_completion"
# Extract all args except the last one
set -l args (commandline -opc)
# Extract the last arg and escape it in case it is a space
set -l lastArg (string escape -- (commandline -ct))
__docker_debug "args: $args"
__docker_debug "last arg: $lastArg"
# Disable ActiveHelp which is not supported for fish shell
set -l requestComp "DOCKER_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
__docker_debug "Calling $requestComp"
set -l results (eval $requestComp 2> /dev/null)
# Some programs may output extra empty lines after the directive.
# Let's ignore them or else it will break completion.
# Ref: https://github.com/spf13/cobra/issues/1279
for line in $results[-1..1]
if test (string trim -- $line) = ""
# Found an empty line, remove it
set results $results[1..-2]
else
# Found non-empty line, we have our proper output
break
end
end
set -l comps $results[1..-2]
set -l directiveLine $results[-1]
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
# completions must be prefixed with the flag
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
__docker_debug "Comps: $comps"
__docker_debug "DirectiveLine: $directiveLine"
__docker_debug "flagPrefix: $flagPrefix"
for comp in $comps
printf "%s%s\n" "$flagPrefix" "$comp"
end
printf "%s\n" "$directiveLine"
end
# this function limits calls to __docker_perform_completion, by caching the result behind $__docker_perform_completion_once_result
function __docker_perform_completion_once
__docker_debug "Starting __docker_perform_completion_once"
if test -n "$__docker_perform_completion_once_result"
__docker_debug "Seems like a valid result already exists, skipping __docker_perform_completion"
return 0
end
set --global __docker_perform_completion_once_result (__docker_perform_completion)
if test -z "$__docker_perform_completion_once_result"
__docker_debug "No completions, probably due to a failure"
return 1
end
__docker_debug "Performed completions and set __docker_perform_completion_once_result"
return 0
end
# this function is used to clear the $__docker_perform_completion_once_result variable after completions are run
function __docker_clear_perform_completion_once_result
__docker_debug ""
__docker_debug "========= clearing previously set __docker_perform_completion_once_result variable =========="
set --erase __docker_perform_completion_once_result
__docker_debug "Successfully erased the variable __docker_perform_completion_once_result"
end
function __docker_requires_order_preservation
__docker_debug ""
__docker_debug "========= checking if order preservation is required =========="
__docker_perform_completion_once
if test -z "$__docker_perform_completion_once_result"
__docker_debug "Error determining if order preservation is required"
return 1
end
set -l directive (string sub --start 2 $__docker_perform_completion_once_result[-1])
__docker_debug "Directive is: $directive"
set -l shellCompDirectiveKeepOrder 32
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
__docker_debug "Keeporder is: $keeporder"
if test $keeporder -ne 0
__docker_debug "This does require order preservation"
return 0
end
__docker_debug "This doesn't require order preservation"
return 1
end
# This function does two things:
# - Obtain the completions and store them in the global __docker_comp_results
# - Return false if file completion should be performed
function __docker_prepare_completions
__docker_debug ""
__docker_debug "========= starting completion logic =========="
# Start fresh
set --erase __docker_comp_results
__docker_perform_completion_once
__docker_debug "Completion results: $__docker_perform_completion_once_result"
if test -z "$__docker_perform_completion_once_result"
__docker_debug "No completion, probably due to a failure"
# Might as well do file completion, in case it helps
return 1
end
set -l directive (string sub --start 2 $__docker_perform_completion_once_result[-1])
set --global __docker_comp_results $__docker_perform_completion_once_result[1..-2]
__docker_debug "Completions are: $__docker_comp_results"
__docker_debug "Directive is: $directive"
set -l shellCompDirectiveError 1
set -l shellCompDirectiveNoSpace 2
set -l shellCompDirectiveNoFileComp 4
set -l shellCompDirectiveFilterFileExt 8
set -l shellCompDirectiveFilterDirs 16
if test -z "$directive"
set directive 0
end
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
if test $compErr -eq 1
__docker_debug "Received error directive: aborting."
# Might as well do file completion, in case it helps
return 1
end
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
if test $filefilter -eq 1; or test $dirfilter -eq 1
__docker_debug "File extension filtering or directory filtering not supported"
# Do full file completion instead
return 1
end
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
__docker_debug "nospace: $nospace, nofiles: $nofiles"
# If we want to prevent a space, or if file completion is NOT disabled,
# we need to count the number of valid completions.
# To do so, we will filter on prefix as the completions we have received
# may not already be filtered so as to allow fish to match on different
# criteria than the prefix.
if test $nospace -ne 0; or test $nofiles -eq 0
set -l prefix (commandline -t | string escape --style=regex)
__docker_debug "prefix: $prefix"
set -l completions (string match -r -- "^$prefix.*" $__docker_comp_results)
set --global __docker_comp_results $completions
__docker_debug "Filtered completions are: $__docker_comp_results"
# Important not to quote the variable for count to work
set -l numComps (count $__docker_comp_results)
__docker_debug "numComps: $numComps"
if test $numComps -eq 1; and test $nospace -ne 0
# We must first split on \t to get rid of the descriptions to be
# able to check what the actual completion will be.
# We don't need descriptions anyway since there is only a single
# real completion which the shell will expand immediately.
set -l split (string split --max 1 \t $__docker_comp_results[1])
# Fish won't add a space if the completion ends with any
# of the following characters: @=/:.,
set -l lastChar (string sub -s -1 -- $split)
if not string match -r -q "[@=/:.,]" -- "$lastChar"
# In other cases, to support the "nospace" directive we trick the shell
# by outputting an extra, longer completion.
__docker_debug "Adding second completion to perform nospace directive"
set --global __docker_comp_results $split[1] $split[1].
__docker_debug "Completions are now: $__docker_comp_results"
end
end
if test $numComps -eq 0; and test $nofiles -eq 0
# To be consistent with bash and zsh, we only trigger file
# completion when there are no other completions
__docker_debug "Requesting file completion"
return 1
end
end
return 0
end
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
# so we can properly delete any completions provided by another script.
# Only do this if the program can be found, or else fish may print some errors; besides,
# the existing completions will only be loaded if the program can be found.
if type -q docker
# The space after the program name is essential to trigger completion for the program
# and not completion of the program name itself.
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
complete --do-complete "docker " >/dev/null 2>&1
end
# Remove any pre-existing completions for the program since we will be handling all of them.
complete -c docker -e
# this will get called after the two calls below and clear the $__docker_perform_completion_once_result global
complete -c docker -n __docker_clear_perform_completion_once_result
# The call to __docker_prepare_completions will setup __docker_comp_results
# which provides the program's completion choices.
# If this doesn't require order preservation, we don't use the -k flag
complete -c docker -n 'not __docker_requires_order_preservation && __docker_prepare_completions' -f -a '$__docker_comp_results'
# otherwise we use the -k flag
complete -k -c docker -n '__docker_requires_order_preservation && __docker_prepare_completions' -f -a '$__docker_comp_results'

View File

@@ -1,70 +0,0 @@
# @halostatue/fish-macos/completions/finder.fish:v7.0.1
complete --command finder --erase
complete --command finder --arguments track \
--exclusive --condition __fish_use_subcommand \
--description 'Enables Finder PWD tracking'
complete --command finder --arguments untrack \
--exclusive --condition __fish_use_subcommand \
--description 'Disables Finder PWD tracking'
complete --command finder --arguments pwd \
--exclusive --condition __fish_use_subcommand \
--description 'Prints the path of the Finder window'
complete --command finder --arguments cd \
--exclusive --condition __fish_use_subcommand \
--description 'Changes to the path of the Finder window'
complete --command finder --arguments pushd \
--exclusive --condition __fish_use_subcommand \
--description 'Pushes to the path of the Finder window'
complete --command finder --arguments update \
--exclusive --condition __fish_use_subcommand \
--description 'Updates the Finder to PWD'
complete --command finder --arguments list \
--exclusive --condition __fish_use_subcommand \
--description 'Sets Finder to list view with PWD'
complete --command finder --arguments icon \
--exclusive --condition __fish_use_subcommand \
--description 'Sets Finder to icon view with PWD'
complete --command finder --arguments column \
--exclusive --condition __fish_use_subcommand \
--description 'Sets Finder to column view with PWD'
complete --command finder --arguments hidden \
--exclusive --condition __fish_use_subcommand \
--description 'Shows or hides `hidden` files'
complete --command finder --arguments desktop-icons \
--exclusive --condition __fish_use_subcommand \
--description 'Shows or hides desktop icons'
complete --command finder --arguments clean \
--exclusive --condition __fish_use_subcommand \
--description 'Cleans .DS_Store files'
complete --command finder --arguments quarantine \
--exclusive --condition __fish_use_subcommand \
--description 'Works with file quarantine data'
complete --command finder --arguments selected \
--exclusive --condition __fish_use_subcommand \
--description 'Print Finder selected files'
for subcommand in cd clean column desktop-icons hidden icon list pushd pwd quarantine selected track untrack update
complete --command finder --condition '__fish_seen_subcommand_from '$subcommand \
--short-option h --long-option help --description 'Help for finder '$subcommand
end
for subcommand in hidden desktop-icons
complete --command finder --condition '__fish_seen_subcommand_from '$subcommand \
--arguments off --description 'Turns '$subcommand' off'
complete --command finder --condition '__fish_seen_subcommand_from '$subcommand \
--arguments on --description 'Turns '$subcommand' on'
complete --command finder --condition '__fish_seen_subcommand_from '$subcommand \
--arguments toggle --description 'Toggles '$subcommand
complete --command finder --condition '__fish_seen_subcommand_from '$subcommand \
--arguments status --description 'Shows the status of '$subcommand
end
complete --command finder --condition '__fish_seen_subcommand_from 'quarantine \
--arguments show --description 'Shows quarantine events'
complete --command finder --condition '__fish_seen_subcommand_from 'quarantine \
--arguments clear --description 'Clears all quarantine events'
complete --command finder --condition '__fish_seen_subcommand_from 'quarantine \
--arguments clean --description 'Removes 'quarantine' attributes from files' \
--require-parameter --force-files

View File

@@ -3,7 +3,7 @@
function __git_profile_debug
set -l file "$BASH_COMP_DEBUG_FILE"
if test -n "$file"
echo "$argv" >> $file
echo "$argv" >>$file
end
end
@@ -160,11 +160,11 @@ end
# so we can properly delete any completions provided by another script.
# Only do this if the program can be found, or else fish may print some errors; besides,
# the existing completions will only be loaded if the program can be found.
if type -q "git-profile"
if type -q git-profile
# The space after the program name is essential to trigger completion for the program
# and not completion of the program name itself.
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
complete --do-complete "git-profile " > /dev/null 2>&1
complete --do-complete "git-profile " >/dev/null 2>&1
end
# Remove any pre-existing completions for the program since we will be handling all of them.
@@ -172,5 +172,4 @@ complete -c git-profile -e
# The call to __git_profile_prepare_completions will setup __git_profile_comp_results
# which provides the program's completion choices.
complete -c git-profile -n '__git_profile_prepare_completions' -f -a '$__git_profile_comp_results'
complete -c git-profile -n __git_profile_prepare_completions -f -a '$__git_profile_comp_results'

View File

@@ -0,0 +1,234 @@
# fish completion for golangci-lint -*- shell-script -*-
function __golangci_lint_debug
set -l file "$BASH_COMP_DEBUG_FILE"
if test -n "$file"
echo "$argv" >>$file
end
end
function __golangci_lint_perform_completion
__golangci_lint_debug "Starting __golangci_lint_perform_completion"
# Extract all args except the last one
set -l args (commandline -opc)
# Extract the last arg and escape it in case it is a space
set -l lastArg (string escape -- (commandline -ct))
__golangci_lint_debug "args: $args"
__golangci_lint_debug "last arg: $lastArg"
# Disable ActiveHelp which is not supported for fish shell
set -l requestComp "GOLANGCI_LINT_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
__golangci_lint_debug "Calling $requestComp"
set -l results (eval $requestComp 2> /dev/null)
# Some programs may output extra empty lines after the directive.
# Let's ignore them or else it will break completion.
# Ref: https://github.com/spf13/cobra/issues/1279
for line in $results[-1..1]
if test (string trim -- $line) = ""
# Found an empty line, remove it
set results $results[1..-2]
else
# Found non-empty line, we have our proper output
break
end
end
set -l comps $results[1..-2]
set -l directiveLine $results[-1]
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
# completions must be prefixed with the flag
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
__golangci_lint_debug "Comps: $comps"
__golangci_lint_debug "DirectiveLine: $directiveLine"
__golangci_lint_debug "flagPrefix: $flagPrefix"
for comp in $comps
printf "%s%s\n" "$flagPrefix" "$comp"
end
printf "%s\n" "$directiveLine"
end
# this function limits calls to __golangci_lint_perform_completion, by caching the result behind $__golangci_lint_perform_completion_once_result
function __golangci_lint_perform_completion_once
__golangci_lint_debug "Starting __golangci_lint_perform_completion_once"
if test -n "$__golangci_lint_perform_completion_once_result"
__golangci_lint_debug "Seems like a valid result already exists, skipping __golangci_lint_perform_completion"
return 0
end
set --global __golangci_lint_perform_completion_once_result (__golangci_lint_perform_completion)
if test -z "$__golangci_lint_perform_completion_once_result"
__golangci_lint_debug "No completions, probably due to a failure"
return 1
end
__golangci_lint_debug "Performed completions and set __golangci_lint_perform_completion_once_result"
return 0
end
# this function is used to clear the $__golangci_lint_perform_completion_once_result variable after completions are run
function __golangci_lint_clear_perform_completion_once_result
__golangci_lint_debug ""
__golangci_lint_debug "========= clearing previously set __golangci_lint_perform_completion_once_result variable =========="
set --erase __golangci_lint_perform_completion_once_result
__golangci_lint_debug "Successfully erased the variable __golangci_lint_perform_completion_once_result"
end
function __golangci_lint_requires_order_preservation
__golangci_lint_debug ""
__golangci_lint_debug "========= checking if order preservation is required =========="
__golangci_lint_perform_completion_once
if test -z "$__golangci_lint_perform_completion_once_result"
__golangci_lint_debug "Error determining if order preservation is required"
return 1
end
set -l directive (string sub --start 2 $__golangci_lint_perform_completion_once_result[-1])
__golangci_lint_debug "Directive is: $directive"
set -l shellCompDirectiveKeepOrder 32
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
__golangci_lint_debug "Keeporder is: $keeporder"
if test $keeporder -ne 0
__golangci_lint_debug "This does require order preservation"
return 0
end
__golangci_lint_debug "This doesn't require order preservation"
return 1
end
# This function does two things:
# - Obtain the completions and store them in the global __golangci_lint_comp_results
# - Return false if file completion should be performed
function __golangci_lint_prepare_completions
__golangci_lint_debug ""
__golangci_lint_debug "========= starting completion logic =========="
# Start fresh
set --erase __golangci_lint_comp_results
__golangci_lint_perform_completion_once
__golangci_lint_debug "Completion results: $__golangci_lint_perform_completion_once_result"
if test -z "$__golangci_lint_perform_completion_once_result"
__golangci_lint_debug "No completion, probably due to a failure"
# Might as well do file completion, in case it helps
return 1
end
set -l directive (string sub --start 2 $__golangci_lint_perform_completion_once_result[-1])
set --global __golangci_lint_comp_results $__golangci_lint_perform_completion_once_result[1..-2]
__golangci_lint_debug "Completions are: $__golangci_lint_comp_results"
__golangci_lint_debug "Directive is: $directive"
set -l shellCompDirectiveError 1
set -l shellCompDirectiveNoSpace 2
set -l shellCompDirectiveNoFileComp 4
set -l shellCompDirectiveFilterFileExt 8
set -l shellCompDirectiveFilterDirs 16
if test -z "$directive"
set directive 0
end
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
if test $compErr -eq 1
__golangci_lint_debug "Received error directive: aborting."
# Might as well do file completion, in case it helps
return 1
end
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
if test $filefilter -eq 1; or test $dirfilter -eq 1
__golangci_lint_debug "File extension filtering or directory filtering not supported"
# Do full file completion instead
return 1
end
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
__golangci_lint_debug "nospace: $nospace, nofiles: $nofiles"
# If we want to prevent a space, or if file completion is NOT disabled,
# we need to count the number of valid completions.
# To do so, we will filter on prefix as the completions we have received
# may not already be filtered so as to allow fish to match on different
# criteria than the prefix.
if test $nospace -ne 0; or test $nofiles -eq 0
set -l prefix (commandline -t | string escape --style=regex)
__golangci_lint_debug "prefix: $prefix"
set -l completions (string match -r -- "^$prefix.*" $__golangci_lint_comp_results)
set --global __golangci_lint_comp_results $completions
__golangci_lint_debug "Filtered completions are: $__golangci_lint_comp_results"
# Important not to quote the variable for count to work
set -l numComps (count $__golangci_lint_comp_results)
__golangci_lint_debug "numComps: $numComps"
if test $numComps -eq 1; and test $nospace -ne 0
# We must first split on \t to get rid of the descriptions to be
# able to check what the actual completion will be.
# We don't need descriptions anyway since there is only a single
# real completion which the shell will expand immediately.
set -l split (string split --max 1 \t $__golangci_lint_comp_results[1])
# Fish won't add a space if the completion ends with any
# of the following characters: @=/:.,
set -l lastChar (string sub -s -1 -- $split)
if not string match -r -q "[@=/:.,]" -- "$lastChar"
# In other cases, to support the "nospace" directive we trick the shell
# by outputting an extra, longer completion.
__golangci_lint_debug "Adding second completion to perform nospace directive"
set --global __golangci_lint_comp_results $split[1] $split[1].
__golangci_lint_debug "Completions are now: $__golangci_lint_comp_results"
end
end
if test $numComps -eq 0; and test $nofiles -eq 0
# To be consistent with bash and zsh, we only trigger file
# completion when there are no other completions
__golangci_lint_debug "Requesting file completion"
return 1
end
end
return 0
end
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
# so we can properly delete any completions provided by another script.
# Only do this if the program can be found, or else fish may print some errors; besides,
# the existing completions will only be loaded if the program can be found.
if type -q golangci-lint
# The space after the program name is essential to trigger completion for the program
# and not completion of the program name itself.
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
complete --do-complete "golangci-lint " >/dev/null 2>&1
end
# Remove any pre-existing completions for the program since we will be handling all of them.
complete -c golangci-lint -e
# this will get called after the two calls below and clear the $__golangci_lint_perform_completion_once_result global
complete -c golangci-lint -n __golangci_lint_clear_perform_completion_once_result
# The call to __golangci_lint_prepare_completions will setup __golangci_lint_comp_results
# which provides the program's completion choices.
# If this doesn't require order preservation, we don't use the -k flag
complete -c golangci-lint -n 'not __golangci_lint_requires_order_preservation && __golangci_lint_prepare_completions' -f -a '$__golangci_lint_comp_results'
# otherwise we use the -k flag
complete -k -c golangci-lint -n '__golangci_lint_requires_order_preservation && __golangci_lint_prepare_completions' -f -a '$__golangci_lint_comp_results'

View File

@@ -0,0 +1,234 @@
# fish completion for grype -*- shell-script -*-
function __grype_debug
set -l file "$BASH_COMP_DEBUG_FILE"
if test -n "$file"
echo "$argv" >>$file
end
end
function __grype_perform_completion
__grype_debug "Starting __grype_perform_completion"
# Extract all args except the last one
set -l args (commandline -opc)
# Extract the last arg and escape it in case it is a space
set -l lastArg (string escape -- (commandline -ct))
__grype_debug "args: $args"
__grype_debug "last arg: $lastArg"
# Disable ActiveHelp which is not supported for fish shell
set -l requestComp "GRYPE_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
__grype_debug "Calling $requestComp"
set -l results (eval $requestComp 2> /dev/null)
# Some programs may output extra empty lines after the directive.
# Let's ignore them or else it will break completion.
# Ref: https://github.com/spf13/cobra/issues/1279
for line in $results[-1..1]
if test (string trim -- $line) = ""
# Found an empty line, remove it
set results $results[1..-2]
else
# Found non-empty line, we have our proper output
break
end
end
set -l comps $results[1..-2]
set -l directiveLine $results[-1]
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
# completions must be prefixed with the flag
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
__grype_debug "Comps: $comps"
__grype_debug "DirectiveLine: $directiveLine"
__grype_debug "flagPrefix: $flagPrefix"
for comp in $comps
printf "%s%s\n" "$flagPrefix" "$comp"
end
printf "%s\n" "$directiveLine"
end
# this function limits calls to __grype_perform_completion, by caching the result behind $__grype_perform_completion_once_result
function __grype_perform_completion_once
__grype_debug "Starting __grype_perform_completion_once"
if test -n "$__grype_perform_completion_once_result"
__grype_debug "Seems like a valid result already exists, skipping __grype_perform_completion"
return 0
end
set --global __grype_perform_completion_once_result (__grype_perform_completion)
if test -z "$__grype_perform_completion_once_result"
__grype_debug "No completions, probably due to a failure"
return 1
end
__grype_debug "Performed completions and set __grype_perform_completion_once_result"
return 0
end
# this function is used to clear the $__grype_perform_completion_once_result variable after completions are run
function __grype_clear_perform_completion_once_result
__grype_debug ""
__grype_debug "========= clearing previously set __grype_perform_completion_once_result variable =========="
set --erase __grype_perform_completion_once_result
__grype_debug "Successfully erased the variable __grype_perform_completion_once_result"
end
function __grype_requires_order_preservation
__grype_debug ""
__grype_debug "========= checking if order preservation is required =========="
__grype_perform_completion_once
if test -z "$__grype_perform_completion_once_result"
__grype_debug "Error determining if order preservation is required"
return 1
end
set -l directive (string sub --start 2 $__grype_perform_completion_once_result[-1])
__grype_debug "Directive is: $directive"
set -l shellCompDirectiveKeepOrder 32
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
__grype_debug "Keeporder is: $keeporder"
if test $keeporder -ne 0
__grype_debug "This does require order preservation"
return 0
end
__grype_debug "This doesn't require order preservation"
return 1
end
# This function does two things:
# - Obtain the completions and store them in the global __grype_comp_results
# - Return false if file completion should be performed
function __grype_prepare_completions
__grype_debug ""
__grype_debug "========= starting completion logic =========="
# Start fresh
set --erase __grype_comp_results
__grype_perform_completion_once
__grype_debug "Completion results: $__grype_perform_completion_once_result"
if test -z "$__grype_perform_completion_once_result"
__grype_debug "No completion, probably due to a failure"
# Might as well do file completion, in case it helps
return 1
end
set -l directive (string sub --start 2 $__grype_perform_completion_once_result[-1])
set --global __grype_comp_results $__grype_perform_completion_once_result[1..-2]
__grype_debug "Completions are: $__grype_comp_results"
__grype_debug "Directive is: $directive"
set -l shellCompDirectiveError 1
set -l shellCompDirectiveNoSpace 2
set -l shellCompDirectiveNoFileComp 4
set -l shellCompDirectiveFilterFileExt 8
set -l shellCompDirectiveFilterDirs 16
if test -z "$directive"
set directive 0
end
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
if test $compErr -eq 1
__grype_debug "Received error directive: aborting."
# Might as well do file completion, in case it helps
return 1
end
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
if test $filefilter -eq 1; or test $dirfilter -eq 1
__grype_debug "File extension filtering or directory filtering not supported"
# Do full file completion instead
return 1
end
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
__grype_debug "nospace: $nospace, nofiles: $nofiles"
# If we want to prevent a space, or if file completion is NOT disabled,
# we need to count the number of valid completions.
# To do so, we will filter on prefix as the completions we have received
# may not already be filtered so as to allow fish to match on different
# criteria than the prefix.
if test $nospace -ne 0; or test $nofiles -eq 0
set -l prefix (commandline -t | string escape --style=regex)
__grype_debug "prefix: $prefix"
set -l completions (string match -r -- "^$prefix.*" $__grype_comp_results)
set --global __grype_comp_results $completions
__grype_debug "Filtered completions are: $__grype_comp_results"
# Important not to quote the variable for count to work
set -l numComps (count $__grype_comp_results)
__grype_debug "numComps: $numComps"
if test $numComps -eq 1; and test $nospace -ne 0
# We must first split on \t to get rid of the descriptions to be
# able to check what the actual completion will be.
# We don't need descriptions anyway since there is only a single
# real completion which the shell will expand immediately.
set -l split (string split --max 1 \t $__grype_comp_results[1])
# Fish won't add a space if the completion ends with any
# of the following characters: @=/:.,
set -l lastChar (string sub -s -1 -- $split)
if not string match -r -q "[@=/:.,]" -- "$lastChar"
# In other cases, to support the "nospace" directive we trick the shell
# by outputting an extra, longer completion.
__grype_debug "Adding second completion to perform nospace directive"
set --global __grype_comp_results $split[1] $split[1].
__grype_debug "Completions are now: $__grype_comp_results"
end
end
if test $numComps -eq 0; and test $nofiles -eq 0
# To be consistent with bash and zsh, we only trigger file
# completion when there are no other completions
__grype_debug "Requesting file completion"
return 1
end
end
return 0
end
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
# so we can properly delete any completions provided by another script.
# Only do this if the program can be found, or else fish may print some errors; besides,
# the existing completions will only be loaded if the program can be found.
if type -q grype
# The space after the program name is essential to trigger completion for the program
# and not completion of the program name itself.
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
complete --do-complete "grype " >/dev/null 2>&1
end
# Remove any pre-existing completions for the program since we will be handling all of them.
complete -c grype -e
# this will get called after the two calls below and clear the $__grype_perform_completion_once_result global
complete -c grype -n __grype_clear_perform_completion_once_result
# The call to __grype_prepare_completions will setup __grype_comp_results
# which provides the program's completion choices.
# If this doesn't require order preservation, we don't use the -k flag
complete -c grype -n 'not __grype_requires_order_preservation && __grype_prepare_completions' -f -a '$__grype_comp_results'
# otherwise we use the -k flag
complete -k -c grype -n '__grype_requires_order_preservation && __grype_prepare_completions' -f -a '$__grype_comp_results'

View File

@@ -0,0 +1 @@
/Applications/OrbStack.app/Contents/MacOS/../Resources/completions/fish/kubectl.fish

View File

@@ -1,119 +0,0 @@
# @halostatue/fish-macos/completions/mac.fish:v7.0.1
complete --command mac --erase
complete --command mac --arguments airdrop \
--exclusive --condition __fish_use_subcommand \
--description 'Changes AirDrop settings'
complete --command mac --arguments airport \
--exclusive --condition __fish_use_subcommand \
--description 'Work with AirPort (WiFi) settings'
complete --command mac --arguments brightness \
--exclusive --condition __fish_use_subcommand \
--description 'Adjust the screen brightness level'
complete --command mac --arguments flushdns \
--exclusive --condition __fish_use_subcommand \
--description 'Flushes DNS'
complete --command mac --arguments font-smoothing \
--exclusive --condition __fish_use_subcommand \
--description 'Manages font smoothing settings'
complete --command mac --arguments lsclean \
--exclusive --condition __fish_use_subcommand \
--description 'Cleans LaunchServices to remove duplicate Open with... entries'
complete --command mac --arguments mail \
--exclusive --condition __fish_use_subcommand \
--description 'Manage various operations of Mail.app'
complete --command mac --arguments proxy-icon \
--exclusive --condition __fish_use_subcommand \
--description 'Manage proxy icon appearance delay'
complete --command mac --arguments transparency \
--exclusive --condition __fish_use_subcommand \
--description 'Manage UI transparency'
complete --command mac --arguments vol \
--exclusive --condition __fish_use_subcommand \
--description 'Changes Mac volume; accepts 0100 volume percentage'
for subcommand in airdrop airport brightness flushdns font-smoothing lsclean mail proxy-icon transparency version vol
complete --command mac --condition '__fish_seen_subcommand_from '$subcommand \
--short-option h --long-option help --description 'Help for mac '$subcommand
end
complete --command mac --condition '__fish_seen_subcommand_from brightness' \
--arguments up --description 'Increases screen brightness'
complete --command mac --condition '__fish_seen_subcommand_from brightness' \
--arguments down --description 'Decreases screen brightness'
for subcommand in airdrop proxy-icon transparency
complete --command mac --condition '__fish_seen_subcommand_from '$subcommand \
--arguments on --description 'Enables '$subcommand
complete --command mac --condition '__fish_seen_subcommand_from '$subcommand \
--arguments off --description 'Disables '$subcommand
complete --command mac --condition '__fish_seen_subcommand_from '$subcommand \
--arguments toggle --description 'Toggles '$subcommand
complete --command mac --condition '__fish_seen_subcommand_from '$subcommand \
--arguments status --description 'Shows the status of '$subcommand
end
complete --command mac --condition '__fish_seen_subcommand_from 'airport \
--arguments scan --description 'Shows available networks'
complete --command mac --condition '__fish_seen_subcommand_from 'airport \
--arguments ssid --description 'Shows the SSID'
complete --command mac --condition '__fish_seen_subcommand_from 'airport \
--arguments password --description 'Gets the current WiFi network password'
complete --command mac --condition '__fish_seen_subcommand_from 'font-smoothing \
--arguments on --description 'Enables font smoothing; app IDs can be provided to limit control'
complete --command mac --condition '__fish_seen_subcommand_from 'font-smoothing \
--arguments off --description 'Disables font smoothing; app IDs can be provided to limit control'
complete --command mac --condition '__fish_seen_subcommand_from 'mail \
--arguments vacuum --description 'Vacuums the Mail.app envelope index'
complete --command mac --condition '__fish_seen_subcommand_from 'mail \
--arguments attachments --description 'Sets Mail.app attachment handling' \
--require-parameter --no-files
complete --command mac --condition '__fish_seen_subcommand_from 'attachments \
--arguments inline \
--description 'Sets Mail.app attachment handling so that they are inline to the message'
complete --command mac --condition '__fish_seen_subcommand_from 'attachments \
--arguments icon \
--description 'Sets Mail.app attachment handling so that they are icons on the message'
complete --command mac --condition '__fish_seen_subcommand_from 'version \
--short-option s --long-option simple --description 'Simple mac version name'
complete --command mac --condition '__fish_seen_subcommand_from 'version \
--short-option l --long-option lowercase --description 'Lowercase mac version name'
complete --command mac --condition '__fish_seen_subcommand_from 'version \
--short-option f --long-option version --description 'Full version number'
complete --command mac --condition '__fish_seen_subcommand_from 'version \
--short-option c --long-option comparable --description 'Simplified comparable version value'
complete --command mac --condition '__fish_seen_subcommand_from 'version \
--short-option h --long-option help --description 'Help for mac 'version
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments mute --description 'Mutes volume'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments unmute --description 'Unmutes volume'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments show --description 'Shows the current volume'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments 10 --description 'Sets the volume to 10%'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments 20 --description 'Sets the volume to 20%'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments 30 --description 'Sets the volume to 30%'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments 40 --description 'Sets the volume to 40%'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments 50 --description 'Sets the volume to 50%'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments 60 --description 'Sets the volume to 60%'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments 70 --description 'Sets the volume to 70%'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments 80 --description 'Sets the volume to 80%'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments 90 --description 'Sets the volume to 90%'
complete --command mac --condition '__fish_seen_subcommand_from 'vol \
--arguments 100 --description 'Sets the volume to 100%'

View File

@@ -1,8 +0,0 @@
# @halostatue/fish-macos/completions/manp.fish:v7.0.1
complete --command manp --erase
complete --command manp --wraps man
complete --command manp --exclusive --condition __fish_no_arguments \
--short-option h --long-option help --description 'Show help for manp'
complete --command manp --exclusive --condition __fish_no_arguments \
--long-option clear-cache --description 'Clear the man page PDF cache'

View File

@@ -0,0 +1 @@
/Applications/OrbStack.app/Contents/MacOS/../Resources/completions/fish/orbctl.fish

View File

@@ -0,0 +1,122 @@
# Completions for phpenv command
# Place in ~/.config/fish/completions/phpenv.fish
# Complete main commands
complete -c phpenv -f -n "__fish_use_subcommand" -a "install" -d "Install a PHP version"
complete -c phpenv -f -n "__fish_use_subcommand" -a "uninstall" -d "Uninstall a PHP version"
complete -c phpenv -f -n "__fish_use_subcommand" -a "use" -d "Use PHP version for current shell"
complete -c phpenv -f -n "__fish_use_subcommand" -a "local" -d "Set PHP version for current project"
complete -c phpenv -f -n "__fish_use_subcommand" -a "global" -d "Set global PHP version"
complete -c phpenv -f -n "__fish_use_subcommand" -a "list" -d "List installed PHP versions"
complete -c phpenv -f -n "__fish_use_subcommand" -a "ls" -d "List installed PHP versions"
complete -c phpenv -f -n "__fish_use_subcommand" -a "current" -d "Show current PHP version"
complete -c phpenv -f -n "__fish_use_subcommand" -a "which" -d "Show path to PHP binary"
complete -c phpenv -f -n "__fish_use_subcommand" -a "versions" -d "Show all available versions"
complete -c phpenv -f -n "__fish_use_subcommand" -a "doctor" -d "Check phpenv installation"
complete -c phpenv -f -n "__fish_use_subcommand" -a "config" -d "Manage configuration"
complete -c phpenv -f -n "__fish_use_subcommand" -a "extensions" -d "Manage PHP extensions"
complete -c phpenv -f -n "__fish_use_subcommand" -a "ext" -d "Manage PHP extensions"
complete -c phpenv -f -n "__fish_use_subcommand" -a "help" -d "Show help"
# Helper functions for completions
function __phpenv_complete_installed_versions
phpenv list 2>/dev/null | sed 's/^[* ]*//'
end
function __phpenv_complete_available_versions
# Try to get dynamic versions first
if command -q curl -a command -q jq; and functions -q __phpenv_parse_version_field
echo "latest"
echo "nightly"
echo "5.x"
echo "7.x"
echo "8.x"
__phpenv_parse_version_field "latest" "8.4"
__phpenv_parse_version_field "nightly" "8.5"
__phpenv_parse_version_field "5.x" "5.6"
__phpenv_parse_version_field "7.x" "7.4"
__phpenv_parse_version_field "8.x" "8.4"
end
# Fallback to common versions
printf "5.6\n7.0\n7.1\n7.2\n7.3\n7.4\n8.0\n8.1\n8.2\n8.3\n8.4\n8.5\n"
end
function __phpenv_complete_config_keys
printf "global-version\nauto-install\nauto-install-extensions\nauto-switch\ndefault-extensions\n"
end
function __phpenv_complete_extensions
printf "xdebug\nredis\nimagick\nmongodb\nmemcached\npcov\nast\ngrpc\n"
printf "protobuf\nyaml\nzip\ncurl\ngd\nintl\nmbstring\nmysql\nopcache\npdo\nsockets\nxml\n"
end
function __phpenv_complete_binaries
printf "php\nphp-config\nphpize\ncomposer\npecl\npear\n"
end
# Complete versions for install command
complete -c phpenv -f -n "__fish_seen_subcommand_from install" \
-a "(__phpenv_complete_available_versions)" -d "PHP version"
# Complete installed versions for uninstall, use commands
complete -c phpenv -f -n "__fish_seen_subcommand_from uninstall use local global" \
-a "(__phpenv_complete_installed_versions)" -d "Installed PHP version"
# Add system option for use command
complete -c phpenv -f -n "__fish_seen_subcommand_from use" -a "system" -d "Use system PHP"
# Complete binaries for which command
complete -c phpenv -f -n "__fish_seen_subcommand_from which" -a "(__phpenv_complete_binaries)" -d "PHP binary"
# Complete config subcommands
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \
-a "get" -d "Get configuration value"
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \
-a "set" -d "Set configuration value"
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \
-a "list" -d "List all configuration"
# Complete config keys
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and __fish_seen_subcommand_from get set" \
-a "(__phpenv_complete_config_keys)" -d "Configuration key"
# Complete config values for boolean settings
complete -c phpenv -f \
-n "__fish_seen_subcommand_from config; and __fish_seen_subcommand_from set" \
-n "contains -- (commandline -opc)[-1] auto-install auto-install-extensions auto-switch" \
-a "true false" -d "Boolean value"
# Complete extensions subcommands
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "install" -d "Install PHP extension"
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "uninstall" -d "Uninstall PHP extension"
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "remove" -d "Remove PHP extension"
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "list" -d "List installed extensions"
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "ls" -d "List installed extensions"
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a "available" -d "Show available extensions"
# Complete extension names
complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext; and __fish_seen_subcommand_from install" \
-a "(__phpenv_complete_extensions)" -d "PHP extension"
# Complete help options
complete -c phpenv -f -s h -l help -d "Show help"

View File

@@ -0,0 +1,54 @@
# pinact fish shell completion
function __fish_pinact_no_subcommand --description 'Test if there has been any subcommand yet'
for i in (commandline -opc)
if contains -- $i init run migrate token version help-all help h completion
return 1
end
end
return 0
end
complete -c pinact -n __fish_pinact_no_subcommand -f -l log-level -r -d 'log level'
complete -c pinact -n __fish_pinact_no_subcommand -f -l config -s c -r -d 'configuration file path'
complete -c pinact -n __fish_pinact_no_subcommand -f -l help -s h -d 'show help'
complete -c pinact -n __fish_pinact_no_subcommand -f -l version -s v -d 'print the version'
complete -x -c pinact -n __fish_pinact_no_subcommand -a init -d 'Create .pinact.yaml if it doesn\'t exist'
complete -c pinact -n '__fish_seen_subcommand_from init' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from init; and not __fish_seen_subcommand_from help h' -a help -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n __fish_pinact_no_subcommand -a run -d 'Pin GitHub Actions versions'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l verify -s v -d 'Verify if pairs of commit SHA and version are correct'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l check -d 'Exit with a non-zero status code if actions are not pinned. If this is true, files aren\'t updated'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l update -s u -d 'Update actions to latest versions'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l review -d 'Create reviews'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l fix -d 'Fix code. By default, this is true. If -check or -diff is true, this is false by default'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l diff -d 'Output diff. By default, this is false'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l repo-owner -r -d 'GitHub repository owner'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l repo-name -r -d 'GitHub repository name'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l sha -r -d 'Commit SHA to be reviewed'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l pr -r -d 'GitHub pull request number'
complete -c pinact -n '__fish_seen_subcommand_from run' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from run; and not __fish_seen_subcommand_from help h' -a help -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n __fish_pinact_no_subcommand -a migrate -d 'Migrate .pinact.yaml'
complete -c pinact -n '__fish_seen_subcommand_from migrate' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from migrate; and not __fish_seen_subcommand_from help h' -a help -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n __fish_pinact_no_subcommand -a token -d 'Manage GitHub Access token'
complete -c pinact -n '__fish_seen_subcommand_from token' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from token; and not __fish_seen_subcommand_from set remove rm help h' -a set -d 'Set GitHub Access token'
complete -c pinact -n '__fish_seen_subcommand_from token; and __fish_seen_subcommand_from set' -f -l stdin -d 'Read GitHub Access token from stdin'
complete -c pinact -n '__fish_seen_subcommand_from token; and __fish_seen_subcommand_from set' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from token; and __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from help h' -a help -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n '__fish_seen_subcommand_from token; and not __fish_seen_subcommand_from set remove rm help h' -a remove -d 'Remove GitHub Access token'
complete -c pinact -n '__fish_seen_subcommand_from token; and __fish_seen_subcommand_from remove rm' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from token; and __fish_seen_subcommand_from remove rm; and not __fish_seen_subcommand_from help h' -a help -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n '__fish_seen_subcommand_from token; and not __fish_seen_subcommand_from set remove rm help h' -a help -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n __fish_pinact_no_subcommand -a version -d 'Show version'
complete -c pinact -n '__fish_seen_subcommand_from version' -f -l json -s j -d 'Output version in JSON format'
complete -c pinact -n '__fish_seen_subcommand_from version' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from version; and not __fish_seen_subcommand_from help h' -a help -d 'Shows a list of commands or help for one command'
complete -c pinact -n '__fish_seen_subcommand_from help-all' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from help-all; and not __fish_seen_subcommand_from help h' -a help -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n __fish_pinact_no_subcommand -a help -d 'Shows a list of commands or help for one command'
complete -x -c pinact -n __fish_pinact_no_subcommand -a completion -d 'Output shell completion script for bash, zsh, fish, or Powershell'
complete -c pinact -n '__fish_seen_subcommand_from completion' -f -l help -s h -d 'show help'
complete -x -c pinact -n '__fish_seen_subcommand_from completion; and not __fish_seen_subcommand_from help h' -a help -d 'Shows a list of commands or help for one command'

View File

@@ -1,4 +0,0 @@
# @halostatue/fish-macos/completions/ql.fish:v7.0.1
complete --erase --command ql
complete --command ql --wraps qlmanage

View File

@@ -0,0 +1,234 @@
# fish completion for sesh -*- shell-script -*-
function __sesh_debug
set -l file "$BASH_COMP_DEBUG_FILE"
if test -n "$file"
echo "$argv" >>$file
end
end
function __sesh_perform_completion
__sesh_debug "Starting __sesh_perform_completion"
# Extract all args except the last one
set -l args (commandline -opc)
# Extract the last arg and escape it in case it is a space
set -l lastArg (string escape -- (commandline -ct))
__sesh_debug "args: $args"
__sesh_debug "last arg: $lastArg"
# Disable ActiveHelp which is not supported for fish shell
set -l requestComp "SESH_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
__sesh_debug "Calling $requestComp"
set -l results (eval $requestComp 2> /dev/null)
# Some programs may output extra empty lines after the directive.
# Let's ignore them or else it will break completion.
# Ref: https://github.com/spf13/cobra/issues/1279
for line in $results[-1..1]
if test (string trim -- $line) = ""
# Found an empty line, remove it
set results $results[1..-2]
else
# Found non-empty line, we have our proper output
break
end
end
set -l comps $results[1..-2]
set -l directiveLine $results[-1]
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
# completions must be prefixed with the flag
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
__sesh_debug "Comps: $comps"
__sesh_debug "DirectiveLine: $directiveLine"
__sesh_debug "flagPrefix: $flagPrefix"
for comp in $comps
printf "%s%s\n" "$flagPrefix" "$comp"
end
printf "%s\n" "$directiveLine"
end
# this function limits calls to __sesh_perform_completion, by caching the result behind $__sesh_perform_completion_once_result
function __sesh_perform_completion_once
__sesh_debug "Starting __sesh_perform_completion_once"
if test -n "$__sesh_perform_completion_once_result"
__sesh_debug "Seems like a valid result already exists, skipping __sesh_perform_completion"
return 0
end
set --global __sesh_perform_completion_once_result (__sesh_perform_completion)
if test -z "$__sesh_perform_completion_once_result"
__sesh_debug "No completions, probably due to a failure"
return 1
end
__sesh_debug "Performed completions and set __sesh_perform_completion_once_result"
return 0
end
# this function is used to clear the $__sesh_perform_completion_once_result variable after completions are run
function __sesh_clear_perform_completion_once_result
__sesh_debug ""
__sesh_debug "========= clearing previously set __sesh_perform_completion_once_result variable =========="
set --erase __sesh_perform_completion_once_result
__sesh_debug "Successfully erased the variable __sesh_perform_completion_once_result"
end
function __sesh_requires_order_preservation
__sesh_debug ""
__sesh_debug "========= checking if order preservation is required =========="
__sesh_perform_completion_once
if test -z "$__sesh_perform_completion_once_result"
__sesh_debug "Error determining if order preservation is required"
return 1
end
set -l directive (string sub --start 2 $__sesh_perform_completion_once_result[-1])
__sesh_debug "Directive is: $directive"
set -l shellCompDirectiveKeepOrder 32
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
__sesh_debug "Keeporder is: $keeporder"
if test $keeporder -ne 0
__sesh_debug "This does require order preservation"
return 0
end
__sesh_debug "This doesn't require order preservation"
return 1
end
# This function does two things:
# - Obtain the completions and store them in the global __sesh_comp_results
# - Return false if file completion should be performed
function __sesh_prepare_completions
__sesh_debug ""
__sesh_debug "========= starting completion logic =========="
# Start fresh
set --erase __sesh_comp_results
__sesh_perform_completion_once
__sesh_debug "Completion results: $__sesh_perform_completion_once_result"
if test -z "$__sesh_perform_completion_once_result"
__sesh_debug "No completion, probably due to a failure"
# Might as well do file completion, in case it helps
return 1
end
set -l directive (string sub --start 2 $__sesh_perform_completion_once_result[-1])
set --global __sesh_comp_results $__sesh_perform_completion_once_result[1..-2]
__sesh_debug "Completions are: $__sesh_comp_results"
__sesh_debug "Directive is: $directive"
set -l shellCompDirectiveError 1
set -l shellCompDirectiveNoSpace 2
set -l shellCompDirectiveNoFileComp 4
set -l shellCompDirectiveFilterFileExt 8
set -l shellCompDirectiveFilterDirs 16
if test -z "$directive"
set directive 0
end
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
if test $compErr -eq 1
__sesh_debug "Received error directive: aborting."
# Might as well do file completion, in case it helps
return 1
end
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
if test $filefilter -eq 1; or test $dirfilter -eq 1
__sesh_debug "File extension filtering or directory filtering not supported"
# Do full file completion instead
return 1
end
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
__sesh_debug "nospace: $nospace, nofiles: $nofiles"
# If we want to prevent a space, or if file completion is NOT disabled,
# we need to count the number of valid completions.
# To do so, we will filter on prefix as the completions we have received
# may not already be filtered so as to allow fish to match on different
# criteria than the prefix.
if test $nospace -ne 0; or test $nofiles -eq 0
set -l prefix (commandline -t | string escape --style=regex)
__sesh_debug "prefix: $prefix"
set -l completions (string match -r -- "^$prefix.*" $__sesh_comp_results)
set --global __sesh_comp_results $completions
__sesh_debug "Filtered completions are: $__sesh_comp_results"
# Important not to quote the variable for count to work
set -l numComps (count $__sesh_comp_results)
__sesh_debug "numComps: $numComps"
if test $numComps -eq 1; and test $nospace -ne 0
# We must first split on \t to get rid of the descriptions to be
# able to check what the actual completion will be.
# We don't need descriptions anyway since there is only a single
# real completion which the shell will expand immediately.
set -l split (string split --max 1 \t $__sesh_comp_results[1])
# Fish won't add a space if the completion ends with any
# of the following characters: @=/:.,
set -l lastChar (string sub -s -1 -- $split)
if not string match -r -q "[@=/:.,]" -- "$lastChar"
# In other cases, to support the "nospace" directive we trick the shell
# by outputting an extra, longer completion.
__sesh_debug "Adding second completion to perform nospace directive"
set --global __sesh_comp_results $split[1] $split[1].
__sesh_debug "Completions are now: $__sesh_comp_results"
end
end
if test $numComps -eq 0; and test $nofiles -eq 0
# To be consistent with bash and zsh, we only trigger file
# completion when there are no other completions
__sesh_debug "Requesting file completion"
return 1
end
end
return 0
end
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
# so we can properly delete any completions provided by another script.
# Only do this if the program can be found, or else fish may print some errors; besides,
# the existing completions will only be loaded if the program can be found.
if type -q sesh
# The space after the program name is essential to trigger completion for the program
# and not completion of the program name itself.
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
complete --do-complete "sesh " >/dev/null 2>&1
end
# Remove any pre-existing completions for the program since we will be handling all of them.
complete -c sesh -e
# this will get called after the two calls below and clear the $__sesh_perform_completion_once_result global
complete -c sesh -n __sesh_clear_perform_completion_once_result
# The call to __sesh_prepare_completions will setup __sesh_comp_results
# which provides the program's completion choices.
# If this doesn't require order preservation, we don't use the -k flag
complete -c sesh -n 'not __sesh_requires_order_preservation && __sesh_prepare_completions' -f -a '$__sesh_comp_results'
# otherwise we use the -k flag
complete -k -c sesh -n '__sesh_requires_order_preservation && __sesh_prepare_completions' -f -a '$__sesh_comp_results'

View File

@@ -0,0 +1,240 @@
complete -c wezterm -n __fish_use_subcommand -l config-file -d 'Specify the configuration file to use, overrides the normal configuration file resolution' -r -F
complete -c wezterm -n __fish_use_subcommand -l config -d 'Override specific configuration values' -r
complete -c wezterm -n __fish_use_subcommand -s n -l skip-config -d 'Skip loading wezterm.lua'
complete -c wezterm -n __fish_use_subcommand -s h -l help -d 'Print help'
complete -c wezterm -n __fish_use_subcommand -s V -l version -d 'Print version'
complete -c wezterm -n __fish_use_subcommand -f -a start -d 'Start the GUI, optionally running an alternative program [aliases: -e]'
complete -c wezterm -n __fish_use_subcommand -f -a blocking-start -d 'Start the GUI in blocking mode. You shouldn\'t see this, but you may see it in shell completions because of this open clap issue: <https://github.com/clap-rs/clap/issues/1335>'
complete -c wezterm -n __fish_use_subcommand -f -a ssh -d 'Establish an ssh session'
complete -c wezterm -n __fish_use_subcommand -f -a serial -d 'Open a serial port'
complete -c wezterm -n __fish_use_subcommand -f -a connect -d 'Connect to wezterm multiplexer'
complete -c wezterm -n __fish_use_subcommand -f -a ls-fonts -d 'Display information about fonts'
complete -c wezterm -n __fish_use_subcommand -f -a show-keys -d 'Show key assignments'
complete -c wezterm -n __fish_use_subcommand -f -a cli -d 'Interact with experimental mux server'
complete -c wezterm -n __fish_use_subcommand -f -a imgcat -d 'Output an image to the terminal'
complete -c wezterm -n __fish_use_subcommand -f -a set-working-directory -d 'Advise the terminal of the current working directory by emitting an OSC 7 escape sequence'
complete -c wezterm -n __fish_use_subcommand -f -a record -d 'Record a terminal session as an asciicast'
complete -c wezterm -n __fish_use_subcommand -f -a replay -d 'Replay an asciicast terminal session'
complete -c wezterm -n __fish_use_subcommand -f -a shell-completion -d 'Generate shell completion information'
complete -c wezterm -n __fish_use_subcommand -f -a help -d 'Print this message or the help of the given subcommand(s)'
complete -c wezterm -n "__fish_seen_subcommand_from start" -l cwd -d 'Specify the current working directory for the initially spawned program' -r -f -a "(__fish_complete_directories)"
complete -c wezterm -n "__fish_seen_subcommand_from start" -l class -d 'Override the default windowing system class. The default is "org.wezfurlong.wezterm". Under X11 and Windows this changes the window class. Under Wayland this changes the app_id. This changes the class for all windows spawned by this instance of wezterm, including error, update and ssh authentication dialogs' -r
complete -c wezterm -n "__fish_seen_subcommand_from start" -l workspace -d 'Override the default workspace with the provided name. The default is "default"' -r
complete -c wezterm -n "__fish_seen_subcommand_from start" -l position -d 'Override the position for the initial window launched by this process.' -r
complete -c wezterm -n "__fish_seen_subcommand_from start" -l domain -d 'Name of the multiplexer domain section from the configuration to which you\'d like to connect. If omitted, the default domain will be used' -r
complete -c wezterm -n "__fish_seen_subcommand_from start" -l no-auto-connect -d 'If true, do not connect to domains marked as connect_automatically in your wezterm configuration file'
complete -c wezterm -n "__fish_seen_subcommand_from start" -l always-new-process -d 'If enabled, don\'t try to ask an existing wezterm GUI instance to start the command. Instead, always start the GUI in this invocation of wezterm so that you can wait for the command to complete by waiting for this wezterm process to finish'
complete -c wezterm -n "__fish_seen_subcommand_from start" -l new-tab -d 'When spawning into an existing GUI instance, spawn a new tab into the active window rather than spawn a new window'
complete -c wezterm -n "__fish_seen_subcommand_from start" -s e -d 'Dummy argument that consumes "-e" and does nothing. This is meant as a compatibility layer for supporting the widely adopted standard of passing the command to execute to the terminal via a "-e" option. This works because we then treat the remaining cmdline as trailing options, that will automatically be parsed via the existing "prog" option. This option exists only as a fallback. It is recommended to pass the command as a normal trailing command instead if possible'
complete -c wezterm -n "__fish_seen_subcommand_from start" -l attach -d 'When used with --domain, if the domain already has running panes, wezterm will simply attach and will NOT spawn the specified PROG. If you omit --attach when using --domain, wezterm will attach AND then spawn PROG'
complete -c wezterm -n "__fish_seen_subcommand_from start" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -l cwd -d 'Specify the current working directory for the initially spawned program' -r -f -a "(__fish_complete_directories)"
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -l class -d 'Override the default windowing system class. The default is "org.wezfurlong.wezterm". Under X11 and Windows this changes the window class. Under Wayland this changes the app_id. This changes the class for all windows spawned by this instance of wezterm, including error, update and ssh authentication dialogs' -r
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -l workspace -d 'Override the default workspace with the provided name. The default is "default"' -r
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -l position -d 'Override the position for the initial window launched by this process.' -r
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -l domain -d 'Name of the multiplexer domain section from the configuration to which you\'d like to connect. If omitted, the default domain will be used' -r
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -l no-auto-connect -d 'If true, do not connect to domains marked as connect_automatically in your wezterm configuration file'
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -l always-new-process -d 'If enabled, don\'t try to ask an existing wezterm GUI instance to start the command. Instead, always start the GUI in this invocation of wezterm so that you can wait for the command to complete by waiting for this wezterm process to finish'
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -l new-tab -d 'When spawning into an existing GUI instance, spawn a new tab into the active window rather than spawn a new window'
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -s e -d 'Dummy argument that consumes "-e" and does nothing. This is meant as a compatibility layer for supporting the widely adopted standard of passing the command to execute to the terminal via a "-e" option. This works because we then treat the remaining cmdline as trailing options, that will automatically be parsed via the existing "prog" option. This option exists only as a fallback. It is recommended to pass the command as a normal trailing command instead if possible'
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -l attach -d 'When used with --domain, if the domain already has running panes, wezterm will simply attach and will NOT spawn the specified PROG. If you omit --attach when using --domain, wezterm will attach AND then spawn PROG'
complete -c wezterm -n "__fish_seen_subcommand_from blocking-start" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from ssh" -s o -l ssh-option -d 'Override specific SSH configuration options. `wezterm ssh` is able to parse some (but not all!) options from your `~/.ssh/config` and `/etc/ssh/ssh_config` files. This command line switch allows you to override or otherwise specify ssh_config style options' -r
complete -c wezterm -n "__fish_seen_subcommand_from ssh" -l class -d 'Override the default windowing system class. The default is "org.wezfurlong.wezterm". Under X11 and Windows this changes the window class. Under Wayland this changes the app_id. This changes the class for all windows spawned by this instance of wezterm, including error, update and ssh authentication dialogs' -r
complete -c wezterm -n "__fish_seen_subcommand_from ssh" -l position -d 'Override the position for the initial window launched by this process.' -r
complete -c wezterm -n "__fish_seen_subcommand_from ssh" -s v -d 'Enable verbose ssh protocol tracing. The trace information is printed to the stderr stream of the process'
complete -c wezterm -n "__fish_seen_subcommand_from ssh" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from serial" -l baud -d 'Set the baud rate. The default is 9600 baud' -r
complete -c wezterm -n "__fish_seen_subcommand_from serial" -l class -d 'Override the default windowing system class. The default is "org.wezfurlong.wezterm". Under X11 and Windows this changes the window class. Under Wayland this changes the app_id. This changes the class for all windows spawned by this instance of wezterm, including error, update and ssh authentication dialogs' -r
complete -c wezterm -n "__fish_seen_subcommand_from serial" -l position -d 'Override the position for the initial window launched by this process.' -r
complete -c wezterm -n "__fish_seen_subcommand_from serial" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from connect" -l class -d 'Override the default windowing system class. The default is "org.wezfurlong.wezterm". Under X11 and Windows this changes the window class. Under Wayland this changes the app_id. This changes the class for all windows spawned by this instance of wezterm, including error, update and ssh authentication dialogs' -r
complete -c wezterm -n "__fish_seen_subcommand_from connect" -l workspace -d 'Override the default workspace with the provided name. The default is "default"' -r
complete -c wezterm -n "__fish_seen_subcommand_from connect" -l position -d 'Override the position for the initial window launched by this process.' -r
complete -c wezterm -n "__fish_seen_subcommand_from connect" -l new-tab -d 'When spawning into an existing GUI instance, spawn a new tab into the active window rather than spawn a new window'
complete -c wezterm -n "__fish_seen_subcommand_from connect" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from ls-fonts" -l text -d 'Explain which fonts are used to render the supplied text string' -r
complete -c wezterm -n "__fish_seen_subcommand_from ls-fonts" -l codepoints -d 'Explain which fonts are used to render the specified unicode code point sequence. Code points are comma separated hex values' -r
complete -c wezterm -n "__fish_seen_subcommand_from ls-fonts" -l list-system -d 'Whether to list all fonts available to the system'
complete -c wezterm -n "__fish_seen_subcommand_from ls-fonts" -l rasterize-ascii -d 'Show rasterized glyphs for the text in --text or --codepoints using ascii blocks'
complete -c wezterm -n "__fish_seen_subcommand_from ls-fonts" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from show-keys" -l key-table -d 'In lua mode, show only the named key table' -r
complete -c wezterm -n "__fish_seen_subcommand_from show-keys" -l lua -d 'Show the keys as lua config statements'
complete -c wezterm -n "__fish_seen_subcommand_from show-keys" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -l class -d 'When connecting to a gui instance, if you started the gui with `--class SOMETHING`, you should also pass that same value here in order for the client to find the correct gui instance' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -l no-auto-start -d 'Don\'t automatically start the server'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -l prefer-mux -d 'Prefer connecting to a background mux server. The default is to prefer connecting to a running wezterm gui instance'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a list -d 'list windows, tabs and panes'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a list-clients -d 'list clients'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a proxy -d 'start rpc proxy pipe'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a tlscreds -d 'obtain tls credentials'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a move-pane-to-new-tab -d 'Move a pane into a new tab'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a split-pane -d 'split the current pane.
Outputs the pane-id for the newly created pane on success'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a spawn -d 'Spawn a command into a new window or tab
Outputs the pane-id for the newly created pane on success'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a send-text -d 'Send text to a pane as though it were pasted. If bracketed paste mode is enabled in the pane, then the text will be sent as a bracketed paste'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a get-text -d 'Retrieves the textual content of a pane and output it to stdout'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a activate-pane-direction -d 'Activate an adjacent pane in the specified direction'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a get-pane-direction -d 'Determine the adjacent pane in the specified direction'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a kill-pane -d 'Kill a pane'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a activate-pane -d 'Activate (focus) a pane'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a adjust-pane-size -d 'Adjust the size of a pane directionally'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a activate-tab -d 'Activate a tab'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a set-tab-title -d 'Change the title of a tab'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a set-window-title -d 'Change the title of a window'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a rename-workspace -d 'Rename a workspace'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a zoom-pane -d 'Zoom, unzoom, or toggle zoom state'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a help -d 'Print this message or the help of the given subcommand(s)'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from list" -l format -d 'Controls the output format. "table" and "json" are possible formats' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from list-clients" -l format -d 'Controls the output format. "table" and "json" are possible formats' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from list-clients" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from proxy" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from tlscreds" -l pem -d 'Output a PEM file encoded copy of the credentials'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from tlscreds" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from move-pane-to-new-tab" -l pane-id -d 'Specify the pane that should be moved. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from move-pane-to-new-tab" -l window-id -d 'Specify the window into which the new tab will be created. If omitted, the window associated with the current pane is used' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from move-pane-to-new-tab" -l workspace -d 'If creating a new window, override the default workspace name with the provided name. The default name is "default"' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from move-pane-to-new-tab" -l new-window -d 'Create tab in a new window, rather than the window currently containing the pane'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from move-pane-to-new-tab" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l pane-id -d 'Specify the pane that should be split. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l cells -d 'The number of cells that the new split should have. If omitted, 50% of the available space is used' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l percent -d 'Specify the number of cells that the new split should have, expressed as a percentage of the available space' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l cwd -d 'Specify the current working directory for the initially spawned program' -r -f -a "(__fish_complete_directories)"
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l move-pane-id -d 'Instead of spawning a new command, move the specified pane into the newly created split' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l horizontal -d 'Equivalent to `--right`. If neither this nor any other direction is specified, the default is equivalent to `--bottom`'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l left -d 'Split horizontally, with the new pane on the left'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l right -d 'Split horizontally, with the new pane on the right'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l top -d 'Split vertically, with the new pane on the top'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l bottom -d 'Split vertically, with the new pane on the bottom'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -l top-level -d 'Rather than splitting the active pane, split the entire window'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from split-pane" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from spawn" -l pane-id -d 'Specify the current pane. The default is to use the current pane based on the environment variable WEZTERM_PANE. The pane is used to determine the current domain and window' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from spawn" -l domain-name -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from spawn" -l window-id -d 'Specify the window into which to spawn a tab. If omitted, the window associated with the current pane is used. Cannot be used with `--workspace` or `--new-window`' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from spawn" -l cwd -d 'Specify the current working directory for the initially spawned program' -r -f -a "(__fish_complete_directories)"
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from spawn" -l workspace -d 'When creating a new window, override the default workspace name with the provided name. The default name is "default". Requires `--new-window`' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from spawn" -l new-window -d 'Spawn into a new window, rather than a new tab'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from spawn" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from send-text" -l pane-id -d 'Specify the target pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from send-text" -l no-paste -d 'Send the text directly, rather than as a bracketed paste'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from send-text" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from get-text" -l pane-id -d 'Specify the target pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from get-text" -l start-line -d 'The starting line number. 0 is the first line of terminal screen. Negative numbers proceed backwards into the scrollback. The default value is unspecified is 0, the first line of the terminal screen' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from get-text" -l end-line -d 'The ending line number. 0 is the first line of terminal screen. Negative numbers proceed backwards into the scrollback. The default value if unspecified is the bottom of the the terminal screen' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from get-text" -l escapes -d 'Include escape sequences that color and style the text. If omitted, unattributed text will be returned'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from get-text" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from activate-pane-direction" -l pane-id -d 'Specify the current pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from activate-pane-direction" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from get-pane-direction" -l pane-id -d 'Specify the current pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from get-pane-direction" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from kill-pane" -l pane-id -d 'Specify the target pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from kill-pane" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from activate-pane" -l pane-id -d 'Specify the target pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from activate-pane" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from adjust-pane-size" -l pane-id -d 'Specify the target pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from adjust-pane-size" -l amount -d 'Specify the number of cells to resize by, defaults to 1' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from adjust-pane-size" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from activate-tab" -l tab-id -d 'Specify the target tab by its id' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from activate-tab" -l tab-index -d 'Specify the target tab by its index within the window that holds the current pane. Indices are 0-based, with 0 being the left-most tab. Negative numbers can be used to reference the right-most tab, so -1 is the right-most tab, -2 is the penultimate tab and so on' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from activate-tab" -l tab-relative -d 'Specify the target tab by its relative offset. -1 selects the tab to the left. -2 two tabs to the left. 1 is one tab to the right and so on' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from activate-tab" -l pane-id -d 'Specify the current pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from activate-tab" -l no-wrap -d 'When used with tab-relative, prevents wrapping around and will instead clamp to the left-most when moving left or right-most when moving right'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from activate-tab" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from set-tab-title" -l tab-id -d 'Specify the target tab by its id' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from set-tab-title" -l pane-id -d 'Specify the current pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from set-tab-title" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from set-window-title" -l window-id -d 'Specify the target window by its id' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from set-window-title" -l pane-id -d 'Specify the current pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from set-window-title" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from rename-workspace" -l workspace -d 'Specify the workspace to rename' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from rename-workspace" -l pane-id -d 'Specify the current pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from rename-workspace" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from zoom-pane" -l pane-id -d 'Specify the target pane. The default is to use the current pane based on the environment variable WEZTERM_PANE' -r
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from zoom-pane" -l zoom -d 'Zooms the pane if it wasn\'t already zoomed'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from zoom-pane" -l unzoom -d 'Unzooms the pane if it was zoomed'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from zoom-pane" -l toggle -d 'Toggles the zoom state of the pane'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from zoom-pane" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a list -d 'list windows, tabs and panes'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a list-clients -d 'list clients'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a proxy -d 'start rpc proxy pipe'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a tlscreds -d 'obtain tls credentials'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a move-pane-to-new-tab -d 'Move a pane into a new tab'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a split-pane -d 'split the current pane.
Outputs the pane-id for the newly created pane on success'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a spawn -d 'Spawn a command into a new window or tab
Outputs the pane-id for the newly created pane on success'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a send-text -d 'Send text to a pane as though it were pasted. If bracketed paste mode is enabled in the pane, then the text will be sent as a bracketed paste'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a get-text -d 'Retrieves the textual content of a pane and output it to stdout'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a activate-pane-direction -d 'Activate an adjacent pane in the specified direction'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a get-pane-direction -d 'Determine the adjacent pane in the specified direction'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a kill-pane -d 'Kill a pane'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a activate-pane -d 'Activate (focus) a pane'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a adjust-pane-size -d 'Adjust the size of a pane directionally'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a activate-tab -d 'Activate a tab'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a set-tab-title -d 'Change the title of a tab'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a set-window-title -d 'Change the title of a window'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a rename-workspace -d 'Rename a workspace'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a zoom-pane -d 'Zoom, unzoom, or toggle zoom state'
complete -c wezterm -n "__fish_seen_subcommand_from cli; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane; and not __fish_seen_subcommand_from help" -f -a help -d 'Print this message or the help of the given subcommand(s)'
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l width -d 'Specify the display width; defaults to "auto" which automatically selects an appropriate size. You may also use an integer value `N` to specify the number of cells, or `Npx` to specify the number of pixels, or `N%` to size relative to the terminal width' -r
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l height -d 'Specify the display height; defaults to "auto" which automatically selects an appropriate size. You may also use an integer value `N` to specify the number of cells, or `Npx` to specify the number of pixels, or `N%` to size relative to the terminal height' -r
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l position -d 'Set the cursor position prior to displaying the image. The default is to use the current cursor position. Coordinates are expressed in cells with 0,0 being the top left cell position' -r
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l tmux-passthru -d 'How to manage passing the escape through to tmux' -r -f -a "{disable '',enable '',detect ''}"
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l max-pixels -d 'Set the maximum number of pixels per image frame. Images will be scaled down so that they do not exceed this size, unless `--no-resample` is also used. The default value matches the limit set by wezterm. Note that resampling the image here will reduce any animated images to a single frame' -r
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l resample-format -d 'Specify the image format to use to encode resampled/resized images. The default is to match the input format, but you can choose an alternative format' -r -f -a "{png '',jpeg '',input ''}"
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l resample-filter -d 'Specify the filtering technique used when resizing/resampling images. The default is a reasonable middle ground of speed and quality' -r -f -a "{nearest '',triangle '',catmull-rom '',gaussian '',lanczos3 ''}"
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l resize -d 'Pre-process the image to resize it to the specified dimensions, expressed as eg: 800x600 (width x height). The resize is independent of other parameters that control the image placement and dimensions in the terminal; this is provided as a convenience preprocessing step' -r
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l no-preserve-aspect-ratio -d 'Do not respect the aspect ratio. The default is to respect the aspect ratio'
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l no-move-cursor -d 'Do not move the cursor after displaying the image. Note that when used like this from the shell, there is a very high chance that shell prompt will overwrite the image; you may wish to also use `--hold` in that case'
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l hold -d 'Wait for enter to be pressed after displaying the image'
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l no-resample -d 'Do not resample images whose frames are larger than the max-pixels value. Note that this will typically result in the image refusing to display in wezterm'
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -l show-resample-timing -d 'When resampling or resizing, display some diagnostics around the timing/performance of that operation'
complete -c wezterm -n "__fish_seen_subcommand_from imgcat" -s h -l help -d 'Print help (see more with \'--help\')'
complete -c wezterm -n "__fish_seen_subcommand_from set-working-directory" -l tmux-passthru -d 'How to manage passing the escape through to tmux' -r -f -a "{disable '',enable '',detect ''}"
complete -c wezterm -n "__fish_seen_subcommand_from set-working-directory" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from record" -l cwd -d 'Start in the specified directory, instead of the default_cwd defined by your wezterm configuration' -r -F
complete -c wezterm -n "__fish_seen_subcommand_from record" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from replay" -l explain -d 'Explain what is being sent/received'
complete -c wezterm -n "__fish_seen_subcommand_from replay" -l explain-only -d 'Don\'t replay, just show the explanation'
complete -c wezterm -n "__fish_seen_subcommand_from replay" -l cat -d 'Just emit raw escape sequences all at once, with no timing information'
complete -c wezterm -n "__fish_seen_subcommand_from replay" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from shell-completion" -l shell -d 'Which shell to generate for' -r -f -a "{bash '',elvish '',fish '',power-shell '',zsh '',fig ''}"
complete -c wezterm -n "__fish_seen_subcommand_from shell-completion" -s h -l help -d 'Print help'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a start -d 'Start the GUI, optionally running an alternative program [aliases: -e]'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a blocking-start -d 'Start the GUI in blocking mode. You shouldn\'t see this, but you may see it in shell completions because of this open clap issue: <https://github.com/clap-rs/clap/issues/1335>'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a ssh -d 'Establish an ssh session'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a serial -d 'Open a serial port'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a connect -d 'Connect to wezterm multiplexer'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a ls-fonts -d 'Display information about fonts'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a show-keys -d 'Show key assignments'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a cli -d 'Interact with experimental mux server'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a imgcat -d 'Output an image to the terminal'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a set-working-directory -d 'Advise the terminal of the current working directory by emitting an OSC 7 escape sequence'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a record -d 'Record a terminal session as an asciicast'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a replay -d 'Replay an asciicast terminal session'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a shell-completion -d 'Generate shell completion information'
complete -c wezterm -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from start; and not __fish_seen_subcommand_from blocking-start; and not __fish_seen_subcommand_from ssh; and not __fish_seen_subcommand_from serial; and not __fish_seen_subcommand_from connect; and not __fish_seen_subcommand_from ls-fonts; and not __fish_seen_subcommand_from show-keys; and not __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from imgcat; and not __fish_seen_subcommand_from set-working-directory; and not __fish_seen_subcommand_from record; and not __fish_seen_subcommand_from replay; and not __fish_seen_subcommand_from shell-completion; and not __fish_seen_subcommand_from help" -f -a help -d 'Print this message or the help of the given subcommand(s)'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a list -d 'list windows, tabs and panes'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a list-clients -d 'list clients'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a proxy -d 'start rpc proxy pipe'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a tlscreds -d 'obtain tls credentials'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a move-pane-to-new-tab -d 'Move a pane into a new tab'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a split-pane -d 'split the current pane.
Outputs the pane-id for the newly created pane on success'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a spawn -d 'Spawn a command into a new window or tab
Outputs the pane-id for the newly created pane on success'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a send-text -d 'Send text to a pane as though it were pasted. If bracketed paste mode is enabled in the pane, then the text will be sent as a bracketed paste'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a get-text -d 'Retrieves the textual content of a pane and output it to stdout'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a activate-pane-direction -d 'Activate an adjacent pane in the specified direction'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a get-pane-direction -d 'Determine the adjacent pane in the specified direction'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a kill-pane -d 'Kill a pane'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a activate-pane -d 'Activate (focus) a pane'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a adjust-pane-size -d 'Adjust the size of a pane directionally'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a activate-tab -d 'Activate a tab'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a set-tab-title -d 'Change the title of a tab'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a set-window-title -d 'Change the title of a window'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a rename-workspace -d 'Rename a workspace'
complete -c wezterm -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from cli; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from list-clients; and not __fish_seen_subcommand_from proxy; and not __fish_seen_subcommand_from tlscreds; and not __fish_seen_subcommand_from move-pane-to-new-tab; and not __fish_seen_subcommand_from split-pane; and not __fish_seen_subcommand_from spawn; and not __fish_seen_subcommand_from send-text; and not __fish_seen_subcommand_from get-text; and not __fish_seen_subcommand_from activate-pane-direction; and not __fish_seen_subcommand_from get-pane-direction; and not __fish_seen_subcommand_from kill-pane; and not __fish_seen_subcommand_from activate-pane; and not __fish_seen_subcommand_from adjust-pane-size; and not __fish_seen_subcommand_from activate-tab; and not __fish_seen_subcommand_from set-tab-title; and not __fish_seen_subcommand_from set-window-title; and not __fish_seen_subcommand_from rename-workspace; and not __fish_seen_subcommand_from zoom-pane" -f -a zoom-pane -d 'Zoom, unzoom, or toggle zoom state'

View File

@@ -1,7 +0,0 @@
if test -z "$SSH_ENV"
set -xg SSH_ENV $HOME/.ssh/environment
end
if not __ssh_agent_is_started
__ssh_agent_start
end

View File

@@ -1,62 +0,0 @@
# @halostatue/fish-brew/conf.d/halostatue_fish_brew.fish:v3.2.1
# Find Homebrew via a known prefix. If the `__homebrew_prefix` universal
# variable is set, that will be set as the first test prefix.
if not command --query brew
set --local prefixes $HOME/.brew $HOME/.linuxbrew /opt/homebrew /usr/local
set --query --universal __homebrew_prefix
and set --prepend prefixes $__homebrew_prefix
for prefix in $prefixes
test -x $prefix/bin/brew
or continue
set --prepend PATH $prefix/bin
break
end
end
if command --query brew
set --query --universal __brew_prefix
and set --erase --universal __brew_prefix
set --local __brew_prefix (brew --prefix)
if ! contains -- {$__brew_prefix}/bin $fish_user_paths
fish_add_path --append --move --path \
{$__brew_prefix}/bin \
/usr/local/bin \
/usr/bin \
/bin \
{$__brew_prefix}/sbin \
/usr/local/sbin \
/usr/sbin \
/sbin
end
if test -s $HOME/.config/brew/config.fish
if status is-interactive
set --local deprecated 0
if set --query $__halostatue_fish_brew_config_deprecated
set deprecated $__halostatue_fish_brew_config_deprecated
end
if test $deprecated -le 0
echo >&2 "Sourcing ~/.config/brew/config.fish is deprecated."
echo >&2 "See https://docs.brew.sh/Manpage#environment for a better alternative."
set --universal $__halostatue_fish_brew_config_deprecated 10
else
set --universal $__halostatue_fish_brew_config_deprecated (math $deprecated - 1)
end
end
source $HOME/.config/brew/config.fish
end
end
function _halostatue_fish_brew_uninstall -e halostatue_fish_brew_uninstall
set --universal --erase __brew_prefix __halostatue_fish_brew_config_deprecated
functions --erase has_cask has_keg (status function)
end

View File

@@ -1,14 +0,0 @@
# @halostatue/fish-macos/conf.d/halostatue_fish_macos.fish:v7.0.1
function _halostatue_fish_macos_uninstall -e halostatue_fish_macos_uninstall
set --function functions app finder has_app mac manp note ql remind
for cmd in $functions
complete --erase --command $cmd
end
set --append functions (status function) \
(functions --all | string match --entire --regex '^__macos_app_|^__macos_finder_|^__macos_mac_')
functions --erase $functions
end

View File

@@ -0,0 +1,37 @@
# phpenv configuration file
# Place in ~/.config/fish/conf.d/phpenv.fish
# Set default configuration using session variables for most settings
# Only PHPENV_GLOBAL_VERSION needs to persist across shells
if not set -q PHPENV_AUTO_INSTALL
set -g PHPENV_AUTO_INSTALL false
end
if not set -q PHPENV_AUTO_INSTALL_EXTENSIONS
set -g PHPENV_AUTO_INSTALL_EXTENSIONS false
end
if not set -q PHPENV_AUTO_SWITCH
set -g PHPENV_AUTO_SWITCH true
end
if not set -q PHPENV_DEFAULT_EXTENSIONS
set -g PHPENV_DEFAULT_EXTENSIONS "opcache"
end
# Initialize PATH on shell startup if global version is set (less aggressive)
if test -n "$PHPENV_GLOBAL_VERSION"; and not set -q PHPENV_INITIALIZED
if functions -q __phpenv_is_version_installed __phpenv_set_php_path
if __phpenv_is_version_installed "$PHPENV_GLOBAL_VERSION" 2>/dev/null
# Only set PATH if no project-specific version is detected
if not __phpenv_find_version_file .php-version >/dev/null 2>&1
if not __phpenv_find_version_file .tool-version >/dev/null 2>&1
if not test -f composer.json
__phpenv_set_php_path "$PHPENV_GLOBAL_VERSION" 2>/dev/null
end
end
end
end
end
set -g PHPENV_INITIALIZED true
end

View File

@@ -1,25 +0,0 @@
status is-interactive || exit
function _puffer_fish_key_bindings --on-variable fish_key_bindings
set -l modes
if test "$fish_key_bindings" = fish_default_key_bindings
set modes default insert
else
set modes insert default
end
bind --mode $modes[1] . _puffer_fish_expand_dots
bind --mode $modes[1] ! _puffer_fish_expand_bang
bind --mode $modes[1] '$' _puffer_fish_expand_lastarg
bind --mode $modes[2] --erase . ! '$'
end
_puffer_fish_key_bindings
set -l uninstall_event puffer_fish_key_bindings_uninstall
function _$uninstall_event --on-event $uninstall_event
bind -e .
bind -e !
bind -e '$'
end

View File

@@ -1,52 +0,0 @@
# Sponge version
set --global sponge_version 1.1.0
# Allow to repeat previous command by default
if not set --query --universal sponge_delay
set --universal sponge_delay 2
end
# Purge entries both after `sponge_delay` entries and on exit by default
if not set --query --universal sponge_purge_only_on_exit
set --universal sponge_purge_only_on_exit false
end
# Add default filters
if not set --query --universal sponge_filters
set --universal sponge_filters sponge_filter_failed sponge_filter_matched
end
# Don't filter out commands that already have been in the history by default
if not set --query --universal sponge_allow_previously_successful
set --universal sponge_allow_previously_successful true
end
# Consider `0` the only successful exit code by default
if not set --query --universal sponge_successful_exit_codes
set --universal sponge_successful_exit_codes 0
end
# No active regex patterns by default
if not set --query --universal sponge_regex_patterns
set --universal sponge_regex_patterns
end
# Attach event handlers
functions --query \
_sponge_on_prompt \
_sponge_on_preexec \
_sponge_on_postexec \
_sponge_on_exit
# Initialize empty state for the first run
function _sponge_install --on-event sponge_install
set --global _sponge_current_command ''
set --global _sponge_current_command_exit_code 0
set --global _sponge_current_command_previously_in_history false
end
# Clean up variables
function _sponge_uninstall --on-event sponge_uninstall
_sponge_clear_state
set --erase sponge_version
end

View File

@@ -24,13 +24,24 @@ if status is-interactive
type -q pyenv; and source (pyenv virtualenv-init -|psub)
type -q goenv; and source (goenv init -|psub)
# type -q fnm; and fnm env --use-on-cd --shell fish | source
type -q load_nvm; and load_nvm > /dev/stderr
type -q load_nvm; and load_nvm >/dev/stderr
# Initialize other tools if available
type -q zoxide; and zoxide init fish | source
# Start tmux if not already running and not in SSH
open-tmux # defined in functions/open-tmux.fish
#open-tmux # defined in functions/open-tmux.fish
end
# Added by LM Studio CLI (lms)
set -gx PATH $PATH $HOME/.lmstudio/bin
# End of LM Studio CLI section
# vim: ft=fish ts=4 sw=4 et:
# opencode
fish_add_path $HOME/.opencode/bin
# Added by OrbStack: command-line tools and integration
# This won't be added again if you remove it.
source ~/.orbstack/shell/init2.fish 2>/dev/null || :

View File

@@ -1,5 +1,3 @@
#!/usr/bin/env fish
# XDG Base Directory Specification
set -q XDG_CONFIG_HOME; or set -x XDG_CONFIG_HOME "$HOME/.config"
set -q XDG_DATA_HOME; or set -x XDG_DATA_HOME "$HOME/.local/share"
@@ -96,7 +94,8 @@ set -q FNM_RESOLVE_ENGINES; or set -x FNM_RESOLVE_ENGINES true
# fzf configuration
set -q FZF_BASE; or set -x FZF_BASE "$XDG_CONFIG_HOME/fzf"
set -q FZF_DEFAULT_OPTS; or set -x FZF_DEFAULT_OPTS '--height 40% --tmux bottom,40% --layout reverse --border top'
set -q FZF_DEFAULT_OPTS; or set -x FZF_DEFAULT_OPTS \
'--height 40% --tmux bottom,40% --layout reverse --border top'
# GnuPG configuration
set -q GNUPGHOME; or set -x GNUPGHOME "$XDG_DATA_HOME/gnupg"
@@ -160,6 +159,10 @@ set -q TMS_CONFIG_FILE; or set -x TMS_CONFIG_FILE "$XDG_CONFIG_HOME/tms/config.t
set -q WAKATIME_HOME; or set -x WAKATIME_HOME "$XDG_STATE_HOME/wakatime"
x-dc "$WAKATIME_HOME"
# Zoxide configuration
set -q _ZO_DATA_DIR; or set -x _ZO_DATA_DIR "$XDG_DATA_HOME/zoxide"
set -q _ZO_EXCLUDE_DIRS; or set -x _ZO_EXCLUDE_DIRS "$XDG_DATA_HOME"
# Miscellaneous configuration
set -q CHEAT_USE_FZF; or set -x CHEAT_USE_FZF true
set -q SQLITE_HISTORY; or set -x SQLITE_HISTORY "$XDG_CACHE_HOME/sqlite/sqlite_history"
@@ -182,6 +185,8 @@ set -gx tide_prompt_transient_enabled true
set -gx tide_prompt_add_newline_before true
set -gx tide_prompt_min_cols 34
set -gx tide_prompt_pad_items false
set -gx tide_left_prompt_items context pwd git node python rustc java php pulumi ruby go gcloud kubectl distrobox toolbox terraform aws nix_shell crystal elixir zig newline character
set -gx tide_left_prompt_items context pwd git node python rustc java php \
pulumi ruby go gcloud kubectl distrobox toolbox terraform aws nix_shell \
crystal elixir zig newline character
set -gx tide_right_prompt_items status jobs direnv
set -gx tide_context_hostname_parts 1

View File

@@ -1,10 +1,4 @@
jorgebucaran/fisher
ilancosman/tide@v6
jethrokuan/z
halostatue/fish-macos@v7
danhper/fish-ssh-agent
halostatue/fish-brew@v3
edc/bass
meaningful-ooo/sponge
nickeb96/puffer-fish
jgusta/paths
ivuorinen/phpenv.fish

View File

@@ -1,53 +0,0 @@
# @halostatue/fish-macos/functions/__macos_app_bundleid.fish:v7.0.1
function __macos_app_bundleid
argparse --name 'app bundleid' x/exact a/all h/help q/quiet s/short -- $argv
or return 1
if set --query _flag_help
echo 'Usage: app bundleid [options] pattern...
Shows the bundle identifier for each of the applications found for the
pattern (see `app find` for how applications are found).
Options:
-x, --exact Perform exact matches only
-a, --all Show all matches
-q, --quiet Suppress error output
-s, --short Prints out the bundle IDs only
-h, --help Show this help
Examples:
> app bundleid 1password
/Applications/1Password for Safari.app: com.1password.safari
/Applications/1Password.app: com.1password.1password
> app bundleid -x 1password
/Applications/1Password.app: com.1password.1password'
return 0
end
if test (count $argv) -eq 0
echo >&2 'app bundleid: Not enough arguments.'
__macos_app_bundleid --help >&2
return 1
end
set --function apps (__macos_app_find $_flag_exact $_flag_all $argv)
or return 1
for app in $apps
set --local bundle_id (mdls -name kMDItemCFBundleIdentifier -r $app)
if test -z $bundle_id
set --query _flag_quiet
or echo >&2 'Error getting bundle ID for "'$app'"'
else
if set --query _flag_short
echo $bundle_id
else
echo $app: $bundle_id
end
end
end
end

View File

@@ -1,85 +0,0 @@
# @halostatue/fish-macos/functions/__macos_app_find.fish:v7.0.1
function __macos_app_find
argparse --name 'app find' x/exact a/all q/quiet h/help -- $argv
or return 1
if set --query _flag_help
echo 'Usage: app find [options] pattern...
Shows installed apps by the provided pattern or patterns. Searches for
apps in /Applications, /Applications/Setapp, /Applications/Utilities,
~/Applications, /Appliciations/Xcode.app/Contents/Applications,
/Developer/Applications, and /System/Applications.
Options:
-x, --exact Perform exact matches only
-a, --all Show all matches
-q, --quiet Do not print matches
-h, --help Show this help
Examples:
> app find --all 1password
/Applications/1Password for Safari.app
/Applications/1Password.app
> app find --exact 1password
/Applications/1Password.app'
return 0
end
if test (count $argv) -eq 0
echo >&2 'app find: Not enough arguments.'
__macos_app_find --help >&2
return 1
end
set --function a Applications
set --function paths \
/$a \
~/$a \
/$a/Setapp \
/$a/Utilities \
/$a/Xcode.app/Contents/$a \
/Developer/Applications \
/System/Applications
set --function found 0
for pattern in $argv
set pattern (string replace '\.app/?$' '' $pattern)
set --local apps {$paths}/*.app {$paths}/*.localized/*.app
for candidate in $apps
set --local found_item 0
if set --query _flag_exact
if string match --ignore-case --entire --quiet /$pattern.app $candidate
set found_item 1
end
else if string match --ignore-case --entire --quiet $pattern $candidate
set found_item 1
end
if test $found_item -eq 1
set --query _flag_quiet
or echo $candidate
set found (math $found + $found_item)
set --query _flag_quiet
and return 0
set --query _flag_all
or return 0
end
end
end
test $found -gt 0
and return 0
set --query _flag_quiet
or echo >&2 'No applications found.'
return 1
end

View File

@@ -1,110 +0,0 @@
# @halostatue/fish-macos/functions/__macos_app_frontmost.fish:v7.0.1
function __macos_app_frontmost::info
set --function value (lsappinfo info -only $argv[2] $argv[1] | string split =)[2]
or return 1
string replace --all '"' '' $value
return 0
end
function __macos_app_frontmost
argparse --name 'app frontmost' \
h/help b/bundle-id p/path n/name P/pid a/all \
-- $argv
or return 1
if set --query _flag_help
echo 'Usage: app frontmost [options]
Retrieves details about the front-most application.
Options:
-b, --bundle-id Shows the app bundle ID
-p, --path Shows the app path
-n, --name Shows the app name
-P, --pid Shows the PID of the app
-a, --all Shows all details
-h, --help Show this help
Example:
> app frontmost
iTerm2'
return 0
end
set --function front (lsappinfo front)
or return 1
set --function items 0
if set --query _flag_all
set items 4
else
set --query _flag_bundle_id _flag_path _flag_name _flag_pid
set --local missing $status
switch $missing
case 0
set _flag_all 1
set items 4
case 4
set _flag_name 1
set items 1
case '*'
set items (math 4 - $missing)
end
end
if set --query _flag_name || set --query _flag_all
set --function name (__macos_app_frontmost::info $front name)
or return 1
end
if set --query _flag_bundle_id || set --query _flag_all
set --function bundle_id (__macos_app_frontmost::info $front bundleID)
or return 1
end
if set --query _flag_path || set --query _flag_all
set --function bundle_path (__macos_app_frontmost::info $front bundlepath)
or return 1
end
if set --query _flag_pid || set --query _flag_all
set --function pid (__macos_app_frontmost::info $front pid)
or return 1
end
if set --query _flag_all
printf "%s: %s %s (%s)\n" $name $bundle_id $bundle_path $pid
else
if set --query _flag_name
printf "%s" $name
test $items -gt 1 && printf ": "
set items (math $items - 1)
end
if set --query _flag_bundle_id
printf "%s" $bundle_id
test $items -gt 1 && printf " "
set items (math $items - 1)
end
if set --query _flag_path
printf "%s" $bundle_path
test $items -gt 1 && printf " "
set items (math $items - 1)
end
if set --query _flag_pid
if test $items -gt 1
printf "(%s)" $pid
else
printf "%s" $pid
end
end
printf "\n"
end
end

View File

@@ -1,94 +0,0 @@
# @halostatue/fish-macos/functions/__macos_app_icon.fish:v7.0.1
function __macos_app_icon
argparse --name 'app quit' x/exact h/help 'o/output=' 'w/width=' -- $argv
or return 1
if set --query _flag_help
echo 'Usage: app icon [options] pattern...
Extracts macOS app icons as PNG (see `app find` for how applications
are found).
Options:
-x, --exact Perform exact matches only
-oOUTPUT Output to the file or directory specified
--output OUTPUT Output to the file or directory specified
-wWIDTH Outputs to a maximum of WIDTH pixels
--width WIDTH Outputs to a maximum of WIDTH pixels
-h, --help Show this help'
return 0
end
if test (count $argv) -eq 0
echo >&2 'app icon: Not enough arguments.'
__macos_app_icon --help >&2
return 1
end
if set --query _flag_exact
set --function apps (__macos_app_find --exact $argv)
or return 1
else
set --function apps (__macos_app_find --all $argv)
or return 1
end
set --function app_count (count $apps)
set --function output_path $PWD
if not test -z $_flag_output
if test -e $_flag_output
if test -f $_flag_output
if test $app_count -gt 1
echo >&2 'app icon: More than one application found, but only one output file specified.'
return 1
end
set output_path (dirname $_flag_output)
set output_file (basename $_flag_output)
else if test -d $_flag_output
set output_path $_flag_output
else
echo >&2 'app icon: Output to a non-file or directory specified.'
return 1
end
else
set output_path $_flag_output
mkdir -p $output_path
end
end
for app in $apps
set --local icon $app/Contents/Resources/(
defaults read $app/Contents/Info CFBundleIconFile |
string replace --regex '\.icns$' ''
).icns
set --local name (basename $app .app)_icon.png
set --local tmp $TMPDIR/$name
set --local max_width (sips -g pixelWidth $icon | tail -1 | awk '{ print $2; }')
set --local outfile
set --local width
if test -z $output_file
set outfile $output_path/$name
else
set outfile $output_path/$output_file
end
if test -z $_flag_width
set width $max_width
else if test $_flag_width -gt $max_width
set width $max_width
else
set width $_flag_width
end
sips -s format png --resampleHeightWidthMax $width $icon --out $outfile >/dev/null 2>&1
echo Wrote $app icon to $outfile.
end
end

View File

@@ -1,42 +0,0 @@
# @halostatue/fish-macos/functions/__macos_app_quit.fish:v7.0.1
function __macos_app_quit
argparse --name 'app quit' x/exact r/restart h/help -- $argv
or return 1
if set --query _flag_help
echo 'Usage: app quit [options] pattern...
Quits apps identified by the provided pattern or patterns (see
`app find` for how applications are found).
Options:
-x, --exact Quits only applications with exact matches
-r, --restart Restarts the application that was quit
-h, --help Show this help'
return 0
end
if test (count $argv) -eq 0
echo >&2 'app bundleid: Not enough arguments.'
__macos_app_quit --help >&2
return 1
end
if set --query _flag_exact
set --function apps (__macos_app_find --exact $argv)
or return 1
else
set --function apps (__macos_app_find --all $argv)
or return 1
end
for app in $apps
printf 'quit app "%s"' $app | osascript >/dev/null
if set --query _flag_restart
sleep 2
open -a $app
end
end
end

View File

@@ -1,18 +0,0 @@
# @halostatue/fish-macos/functions/__macos_finder_cd.fish:v7.0.1
function __macos_finder_cd
argparse --name 'finder cd' h/help -- $argv
or return 1
if set --query _flag_help
echo 'Usage: finder cd [options] [window#]
Changes the current path to the path of the Finder window.
Options:
-h, --help Show this help'
return 0
end
cd (__macos_finder_pwd::get $argv[1])
end

View File

@@ -1,30 +0,0 @@
# @halostatue/fish-macos/functions/__macos_finder_clean.fish:v7.0.1
function __macos_finder_clean
argparse --name 'finder clean' h/help -- $argv
or return 1
if set --query _flag_help
echo 'Usage: finder clean [options] [path...]
Removes .DS_Store files from the paths provided, or the current path if
one is not provided.
Options:
-h, --help Show this help'
return 0
end
if set --query argv[1]
set --function paths $argv
else
set --function paths .
end
for path in $paths
test -d $path
or continue
find $path -type f -name '*.DS_Store' -ls -delete
end
end

View File

@@ -1,18 +0,0 @@
# @halostatue/fish-macos/functions/__macos_finder_column.fish:v7.0.1
function __macos_finder_column
argparse --name 'finder column' h/help -- $argv
or return 1
if set --query _flag_help
echo 'Usage: finder column [options] [window#]
Updates the Finder window to PWD using column view.
Options:
-h, --help Show this help'
return 0
end
__macos_finder_pwd::update --column $argv
end

Some files were not shown because too many files have changed in this diff Show More