Compare commits

...

620 Commits

Author SHA1 Message Date
github-actions[bot]
dfbdb89aca chore: update pre-commit hooks (#83) 2025-02-24 08:30:19 +02:00
ivuorinen
c9489ae50f chore(git): Update submodules (automated) 2025-02-24 05:03:01 +01:00
9fdb4cdfb0 chore(scripts): use msgr instead of msg_* funcs 2025-02-23 17:23:54 +02:00
f4da515120 chore(scripts): refactor cargo and go pkg install 2025-02-23 17:23:54 +02:00
fae9665671 feat(config): fish - add edc/bass for bash 2025-02-23 17:23:54 +02:00
d5e34d168b feat(config): fish configs and tmux auto-open 2025-02-23 17:23:54 +02:00
e8b43d76dc chore: .ignore additions 2025-02-23 17:23:54 +02:00
4f9757ad2b feat(config): switch from fish-exa to fish-eza 2025-02-23 17:23:54 +02:00
611a3bfa72 feat: move asdf from local/bin to local 2025-02-23 17:23:54 +02:00
10da4ea372 Update .gitmodules, relocate asdf 2025-02-21 16:30:30 +02:00
68525d5ae4 Update update-submodules.yml 2025-02-21 16:25:27 +02:00
github-actions[bot]
7311f2576e chore: update pre-commit hooks (#82)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-02-20 09:19:54 +02:00
721d3c0d15 chore(tmux): tweak plugin order and paths
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-02-19 10:18:06 +02:00
c82e183ff9 chore(config): ideavim config update
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-02-19 10:17:36 +02:00
1b6a93650b chore(config): fish config tweaks and function fix
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-02-19 10:15:01 +02:00
aa85bb0c72 feat(bin): raycast helpers
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-02-19 10:13:52 +02:00
ceb452aa68 chore(config): ignore fish_variables
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-02-17 12:21:43 +02:00
467a1c2ff9 chore(config): remove pip config
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-02-17 12:20:28 +02:00
f73cd32309 chore(deps): update brew bundle
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-02-17 12:20:08 +02:00
0be2a5b879 chore(config): tmux fixes, added tms binds
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-02-17 12:19:46 +02:00
8c015ac251 feat(shell): gazorby/fish-exa
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-02-17 12:19:13 +02:00
894ec12fd8 chore: move asdf to ./local, update configs
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-02-17 12:17:45 +02:00
8cf3602de1 chore(config): pip config 2025-02-17 10:53:57 +02:00
57c4f0438e chore: work computer setup, gitprofile update 2025-02-17 10:53:57 +02:00
github-actions[bot]
02907d6a6b chore: update pre-commit hooks (#81)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-02-17 09:56:55 +02:00
dependabot[bot]
127edd1b2c chore(deps): bump the npm_and_yarn group with 3 updates (#80) 2025-02-15 14:49:30 +02:00
dependabot[bot]
76dc53b50a chore(deps): bump @octokit/endpoint in the npm_and_yarn group (#79)
Bumps the npm_and_yarn group with 1 update: [@octokit/endpoint](https://github.com/octokit/endpoint.js).


Updates `@octokit/endpoint` from 10.1.1 to 10.1.3
- [Release notes](https://github.com/octokit/endpoint.js/releases)
- [Commits](https://github.com/octokit/endpoint.js/compare/v10.1.1...v10.1.3)

---
updated-dependencies:
- dependency-name: "@octokit/endpoint"
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-15 13:30:33 +02:00
f88a5298b2 chore(deps): update brewfile 2025-02-14 00:08:50 +02:00
b436472bbb feat(config): fish configs 2025-02-14 00:08:50 +02:00
4e4a2eaab1 chore(config): tmux: combine configs, fix paths 2025-02-14 00:08:50 +02:00
d59204f25f chore(lint): formatting 2025-02-14 00:08:50 +02:00
b299e3df1e chore(shell): exports cleanup 2025-02-14 00:08:50 +02:00
5bcc06d53b chore(shell): move zsh stuff from exports to zshrc 2025-02-14 00:08:50 +02:00
github-actions[bot]
7c09a7ff74 chore: update pre-commit hooks (#78)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-02-13 14:28:54 +02:00
88efedf26b feat: updates, docs, license fixes, new helpers 2025-02-12 01:05:37 +02:00
renovate[bot]
cdd68748e0 chore(deps): update node.js to v22.14.0 (#77)
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-02-12 00:35:00 +02:00
github-actions[bot]
f8ff2699e6 chore: update pre-commit hooks (#76) 2025-02-10 14:19:32 +02:00
c5e06888b8 chore(config): update Brewfile, zed settings 2025-02-07 12:41:55 +02:00
renovate[bot]
4f138eee73 fix(container): update image python (3.13.1 → 3.13.2) (#75)
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-02-07 10:02:48 +02:00
github-actions[bot]
90258e5105 chore: update pre-commit hooks (#74) 2025-02-06 13:44:34 +02:00
efc53fc9bf feat(ci): sync-labels from ivuorinen/actions 2025-02-05 09:09:31 +02:00
github-actions[bot]
f62c17d940 chore: update pre-commit hooks (#73)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-02-03 14:36:14 +02:00
github-actions[bot]
fb15b93887 chore: update pre-commit hooks (#72)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-01-30 09:44:16 +02:00
renovate[bot]
222276486a feat(github-action): update actions/setup-python (v5.3.0 → v5.4.0)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 22:37:48 +00:00
github-actions[bot]
4446d59e73 chore: update pre-commit hooks (#71) 2025-01-28 17:08:31 +02:00
a22709a0f0 chore(repo): add-submodules submodule ignore dirty 2025-01-28 14:54:58 +02:00
76598ad33b chore(config): tmux config tweaks, .ignore 2025-01-28 14:51:38 +02:00
56ccb7c136 chore(nvim): plugin tweaks, config tweaks 2025-01-24 01:33:58 +02:00
github-actions[bot]
b6d933d018 chore: update pre-commit hooks (#70) 2025-01-23 08:20:21 +02:00
f9856a27b9 chore(nvim): drop mini.jump, mini.move, update docs 2025-01-22 16:26:45 +02:00
b36b52ad57 chore(config): brew bundle update 2025-01-22 15:13:47 +02:00
1e60ccf49b chore(ssh): ignore submodule changes, tweak config 2025-01-22 15:12:59 +02:00
renovate[bot]
9ca9439b9a chore(deps): update node.js to v22.13.1 (#69)
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-01-22 09:34:00 +02:00
6d30ae7e84 chore(config): aerospace - add phpstorm 2025-01-21 14:08:06 +02:00
031e124663 chore(ssh): ft=sshconfig to turingpi config 2025-01-20 14:51:37 +02:00
bb50c9fe18 chore(scripts): macos default tweaks 2025-01-20 14:50:05 +02:00
8e608de501 chore(config): aerospace tweaks 2025-01-20 14:47:22 +02:00
github-actions[bot]
8917b7736b chore: update pre-commit hooks (#68)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-01-20 11:49:36 +02:00
18ff879f1d chore(config): tms colors, depth from 10 to 3 2025-01-17 13:25:32 +02:00
c5a258d7be feat(docs): alias docs and update script 2025-01-17 13:07:15 +02:00
7525f1f71d feat(dfm): dfm apt helper commands 2025-01-16 16:19:45 +02:00
3b665bdba0 chore(nvim): tweaks to lsp, autocommands, sessions 2025-01-16 16:18:50 +02:00
99477364bd chore(bin): t - filters, sorting, tweak checks 2025-01-16 16:17:42 +02:00
github-actions[bot]
629fdf6d4c chore: update pre-commit hooks (#67) 2025-01-16 07:10:21 +02:00
1288599b1f feat(docs): aerospace keybindings and update code 2025-01-15 15:33:01 +02:00
be3a68fecb fix(nvim): intelephense license loading 2025-01-14 07:23:51 +02:00
101e4da1d6 feat(bin): x-env-list, list ENV with protection 2025-01-14 07:01:22 +02:00
23430a609a chore(bin): dfm cleanup, tweaks 2025-01-14 06:59:36 +02:00
bb0d56e403 chore(config): wezterm config tweaks 2025-01-14 06:59:00 +02:00
d3b08bdf4f chore(config): add laravel shortcuts 2025-01-14 06:58:40 +02:00
e1ec501c55 chore(config): add local version of git-root cmd 2025-01-14 06:57:40 +02:00
f92c3407f0 feat(nvim): reintro noice.nvim 2025-01-14 06:56:56 +02:00
b5971439b6 feat(nvim): drop lspsaga.nvim 2025-01-14 06:56:29 +02:00
8ea8a2797a chore(nvim): keymap tweaks 2025-01-14 06:55:57 +02:00
b0f9222482 chore(nvim): move flash.nvim keymap defs 2025-01-14 06:52:34 +02:00
825ccc1031 chore(nvim): drop tokyonight customizations 2025-01-14 06:50:59 +02:00
dab7a8a38a chore(nvim): lsp sign definitions, icons, settings 2025-01-14 06:50:15 +02:00
1dbc7ae5cd chore(nvim): move mason tools to visible place 2025-01-14 06:47:24 +02:00
7038da568e chore(nvim): add support for intelephense license 2025-01-14 06:46:10 +02:00
bfcaa26070 chore(nvim): trouble.nvim related tweaks 2025-01-14 06:42:18 +02:00
f6488aecce chore(nvim): tweaks to options, cleanup 2025-01-14 06:39:36 +02:00
ad166e8012 feat(bin): t, add support for existing sessions 2025-01-14 05:56:19 +02:00
2a76a414a0 feat(config): split tmux config, add helpers 2025-01-14 05:50:19 +02:00
bb8ddf0bba chore(config): aerospace, add preview to floaters 2025-01-14 05:47:57 +02:00
bf3e746010 chore(base): add .ignore to limit searched files 2025-01-14 05:47:18 +02:00
github-actions[bot]
b9957e4f0e chore: update pre-commit hooks (#66)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-01-13 12:56:43 +02:00
e1deba4ccf chore(config): antidote, remove tmux plugin 2025-01-12 15:39:48 +02:00
36e4de3035 chore(nvim): add lazydev to blink.cmp completions 2025-01-10 22:13:00 +02:00
3eab1faeab chore(config): alias changes, remove .dx, add .o 2025-01-10 22:02:29 +02:00
1eb4098646 chore(shell): p10k aws, go and nvm section color 2025-01-10 22:01:05 +02:00
f7db8cae15 chore(shell): p10k config docs line width 2025-01-10 22:00:04 +02:00
97dd3dc21d chore(nvim): blink.cmp LuaSnip support, cleanup 2025-01-10 21:57:58 +02:00
6da6797f1b chore(config): tmux config tweaks
moved config around, did cleanup and moved TMUX_TMPDIR
under XDG_STATE_HOME. added the state/tmux folder creation
to the dotbot install config.
2025-01-10 21:56:39 +02:00
github-actions[bot]
88356f1392 chore: update pre-commit hooks (#65)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-01-10 01:26:03 +02:00
174bb842e9 chore(config): tmux config tweaks 2025-01-08 18:10:03 +02:00
f6e7590118 chore(hosts): remove ref to non-existent Brewfile 2025-01-08 03:35:15 +02:00
498996a6e2 chore(config): remove antigen config 2025-01-08 03:34:13 +02:00
0961985fb4 fix(nvim): vim-textobj-xmlattr init 2025-01-08 03:32:22 +02:00
293452604d feat(ci): add codeowners file 2025-01-08 03:31:53 +02:00
renovate[bot]
9582f18c7d chore(deps): update node.js to v22.13.0 (#64)
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-01-08 03:23:14 +02:00
051e3604ee feat(bin): x-localip - show active interfaces ips 2025-01-07 21:45:03 +02:00
09d62dd159 feat(nvim): plugins, fixes, helpers
Plugins:
- voldikss/vim-floaterm
- vim-test/vim-test
- tpope/vim-projectionist
- phpactor/phpactor
- catgoose/nvim-colorizer.lua

Fixes:
- lsp diagnostics config
- lsp diagnostics icons
- neo-tree configuration fixes
- tokyonight.nvim color scheme tweaks

Lots of tweaks to options.lua
2025-01-07 21:41:56 +02:00
8a3763e168 chore(config): zed config tweaks 2025-01-07 21:29:49 +02:00
c37793f649 chore(config): tmux config tweaks, new settings 2025-01-07 21:29:25 +02:00
7bc7230990 chore(config): cleanup aliases, shellcheck fixes 2025-01-07 21:23:26 +02:00
067df4e34b feat(bin): t, custom tmux session manager
- drops tms bindings from tmux config, wasn't using them
- drops t alias for tail -f, clashed with t script
2025-01-07 21:22:27 +02:00
4d28499423 chore(config): tmux config tweaks
- undercurl support
- underscore colors
- nvim split aware moving
- detach-on-destroy off
- session name display in status-right
- escape-time to zero
- default terminal to use $TERM
2025-01-07 15:58:16 +02:00
b685af82fb chore(brew): update brewfile 2025-01-07 15:05:05 +02:00
github-actions[bot]
b8a4b82431 chore: update pre-commit hooks (#63) 2025-01-06 13:44:20 +02:00
0b03acebd8 feat(config): tmux plugin tmux-fzf-url 2025-01-02 22:22:59 +02:00
d172b86cb8 chore(docs): update nvim, tmux, wezterm keymaps 2025-01-02 17:46:07 +02:00
f910dfb9ac chore(nvim): add lazy dev path, enable profiling 2025-01-02 17:36:53 +02:00
ee95d57ba0 chore(config): aerospace tweaks 2025-01-02 17:34:48 +02:00
f8a317f3c7 chore(dfm): install script cleanup 2025-01-02 15:18:48 +02:00
3762e10932 chore(config): aerospace docker desktop layout 2025-01-02 14:53:59 +02:00
afda96902b chore(config): ghostty tweaks 2025-01-02 14:53:20 +02:00
3060b6ad66 chore(nvim): mason tools, sessionopts 2025-01-02 14:15:06 +02:00
github-actions[bot]
4f154cf509 chore: update pre-commit hooks (#62)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-01-02 11:41:43 +02:00
863d803483 feat(config): zed config 2024-12-30 17:53:56 +02:00
07bb2b56d1 feat(config): glow config 2024-12-30 17:51:47 +02:00
84a753100e feat(config): ghostty config 2024-12-30 17:51:26 +02:00
c8b01f3fda chore(config): aerospace tweaks 2024-12-30 17:50:47 +02:00
8e6a110aac chore(ci): pre-commit - detect-aws-creds 2024-12-30 17:49:50 +02:00
a8baa1671f chore(config): fix terminfo, add ghostty inits 2024-12-30 17:27:45 +02:00
2ccdd042f6 chore: sort gitignore, echo submodule ignore status 2024-12-30 17:26:35 +02:00
github-actions[bot]
8cf43ed555 chore: update pre-commit hooks (#60)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-12-30 15:05:15 +02:00
e22094e0da fix(dfm): asdf plugin-install, docs translations 2024-12-30 11:26:54 +02:00
6186c5cba4 chore(config): tmux ignore md5 in window name 2024-12-28 19:02:55 +02:00
c453dcbf84 chore(nvim): statusline tweaks 2024-12-28 19:02:14 +02:00
4daaa62aed feat(dfm): scripts/install-* to autocomplete, docs 2024-12-28 19:01:45 +02:00
f56d5682d1 chore(nvim): shellscript formatting with shfmt 2024-12-28 18:59:59 +02:00
439638b686 chore(config): tweaks to aerospace config 2024-12-28 18:59:38 +02:00
a8a473a46d chore: shfmt, cleanup 2024-12-28 18:59:09 +02:00
eb91a43bbd feat(asdf): drop asdf-plugin-manager, use dotbot-asdf 2024-12-28 16:58:31 +02:00
github-actions[bot]
193fae662e chore: update pre-commit hooks (#58)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-12-27 05:18:32 +02:00
github-actions[bot]
117ca1a944 chore: update pre-commit hooks (#57)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-12-25 15:31:39 +02:00
1f1a6d42ad fix(ci): update-submodules cron syntax 2024-12-25 15:30:49 +02:00
cca265cd99 chore(ci): update update-submodules schedule 2024-12-25 15:15:53 +02:00
cc6abb53ba chore(ci): update pre-commit-autoupdate 2024-12-25 14:34:38 +02:00
ab34c148a6 feat(bin): age tools (#20)
* wip: ae for encryption, ad for decryption
* feat: finished ad and ae, created a for both uses
2024-12-24 09:31:25 +02:00
github-actions[bot]
910b29ed9f chore: update pre-commit hooks (#56) 2024-12-24 06:50:02 +02:00
3fb0a75a62 feat(asdf): update automation, versions, plugins 2024-12-24 00:59:50 +02:00
github-actions[bot]
f73abb508b chore: update pre-commit hooks (#55)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-12-23 13:00:01 +02:00
github-actions[bot]
1dd3d952cf chore: update pre-commit hooks (#54)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-12-22 02:07:59 +02:00
1ffd6e1569 feat(nvim): update blink config 2024-12-20 22:54:17 +02:00
a76033a48a chore(deps): update Brewfile 2024-12-20 18:55:14 +02:00
34dc18883e chore(config): aerospace tweaks 2024-12-20 18:14:57 +02:00
832d8b94f3 chore(nvim): add the awesome youtube video to mini 2024-12-20 12:37:00 +02:00
c40eb765f8 chore(config): tweak aerospace config 2024-12-20 12:06:37 +02:00
github-actions[bot]
1bb7e9076b chore: update pre-commit hooks (#53)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-12-20 10:11:10 +02:00
ivuorinen
17821dfefa chore(git): Update submodules (automated)
asdf 54d15e3
antidote
dotbot v1.20.4
2024-12-20 03:09:26 +00:00
19327947ed chore(config): tweak aerospace config 2024-12-19 12:48:41 +02:00
2356fc4c61 chore(deps): update asdf submodule 2024-12-19 12:48:26 +02:00
45219deccb fix(nvim): nvmdef - fix log levels for now 2024-12-19 12:46:53 +02:00
5471aba1a4 chore(nvim): autosession, configs, tweaks 2024-12-19 12:42:20 +02:00
github-actions[bot]
6f6ee3611c chore: update pre-commit hooks (#52)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-12-19 12:24:10 +02:00
ivuorinen
d8f9cdf265 chore(git): Update submodules (automated)
asdf 9c12b79
antidote
2024-12-19 03:14:30 +00:00
abb6de05be feat(config): AeroSpace config 2024-12-18 17:22:26 +02:00
60ef48e918 feat(nvim): consolidate code related plugins 2024-12-18 17:12:30 +02:00
e58c79a3c3 fix(dotbot): fix installer config 2024-12-18 17:11:50 +02:00
d47f21286d feat(nvim): drop opts defined in mini.basics 2024-12-18 14:27:03 +02:00
3f108c9353 feat(nvim): use full mini.nvim instead of subrepos 2024-12-18 14:16:19 +02:00
github-actions[bot]
4a68146786 chore: update pre-commit hooks (#51)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-12-18 09:56:47 +02:00
github-actions[bot]
cf79e61943 chore: update pre-commit hooks (#50)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-12-17 09:16:33 +02:00
43dcb303a0 chore(dfm): improved colors helper 2024-12-16 08:25:29 +02:00
1b03f0bbd6 chore(config): add container arch to actrc 2024-12-16 05:04:38 +02:00
8a52c9a97e chore(nvim): fixed mason formatters, config 2024-12-16 05:04:01 +02:00
8e84c3aef7 chore(lint): fixed stylua and linted nvim configs 2024-12-16 05:02:25 +02:00
acd2f7fc6d chore(config): move personal cheat db to last 2024-12-16 03:55:26 +02:00
1e4aa1558a chore(ci): add renovate-config-validator 2024-12-16 03:54:41 +02:00
b314c0ba76 feat(nvim): nvm-default package (#49) 2024-12-12 10:21:25 +02:00
ece46561c4 chore(nvim): configs, keymaps, utils.lua, docs 2024-12-12 02:13:00 +02:00
196d217c34 feat(shell): switch zsh to use p10k 2024-12-11 14:14:05 +02:00
7d2fc55791 chore(nvim): <leader>ba (close all except current) 2024-12-10 09:11:42 +02:00
74fb12f093 chore(lint): tweaks, few pre-commit hook fixes 2024-12-10 09:11:12 +02:00
ivuorinen
d7988bcad7 chore(git): Update submodules (automated)
antidote
dotbot v1.20.3
2024-12-10 03:20:15 +00:00
320ae35dcd feat(nvim): sessions & tweaks to configs 2024-12-10 01:13:52 +02:00
0964253be5 chore(nvim): tweaks and fixes 2024-12-09 13:00:45 +02:00
Ismo Vuorinen
f3f7ecc522 feat(nvim): reworked cmp, lsp and bunch of stuff (#48)
* feat(nvim): reworked cmp, lsp and bunch of stuff

* chore: del disabled plugins, do coderabbit fixes

* chore: tweak settings, remove duplication

* chore: next round of refactoring

* feat: replaced lualine w/ mini.statusline, tweaks

* chore: cleanup, options and keymap stuff
2024-12-09 10:30:15 +02:00
ivuorinen
b88de0c3ae chore(git): Update submodules (automated)
antidote
dotbot v1.20.2
2024-12-09 03:20:33 +00:00
c5e6860595 chore(deps): updated yarn packages 2024-12-05 21:24:05 +02:00
b5a3c34fc3 chore(lint): dfm lints 2024-12-05 21:23:48 +02:00
87c89cf828 chore(config): "disable" pure exec time counter 2024-12-05 09:19:33 +02:00
renovate[bot]
8d57c9425e fix(container): update image python (3.13.0 → 3.13.1) (#47)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-05 09:15:53 +02:00
renovate[bot]
cfe97d81a7 chore(deps): update node.js to v22.12.0 (#46) 2024-12-04 00:12:09 +02:00
2f13ad324a fix(scripts): add_plugins shouldn't change versions 2024-12-03 20:30:59 +02:00
github-actions[bot]
d203fc9d51 chore: update pre-commit hooks (#45) 2024-12-02 07:55:44 +02:00
bf279b6def chore(shell): tweak pure colors 2024-11-28 03:13:46 +02:00
87926f8d9b chore(lint): config/exports linting 2024-11-28 02:54:42 +02:00
6b056f6072 chore(nvim): plugin changes, new keymaps, augroup 2024-11-28 02:50:07 +02:00
823cdbc07f chore(ssh): add baal to demons 2024-11-28 02:48:55 +02:00
0f6157eb04 feat(shell): cleanup and switched to pure prompt 2024-11-28 02:48:09 +02:00
721fe614a7 feat: drop oh-my-posh 2024-11-26 03:08:54 +02:00
5ea16d4653 chore(nvim): add leader sf for file finder 2024-11-25 17:22:22 +02:00
900e6a8f85 chore(shell): cleanup and antidote plugins 2024-11-25 13:54:14 +02:00
16673de789 chore(config): add antidote to tmux ignored list 2024-11-25 13:10:46 +02:00
c732a75184 fix(config): antidote plugins, configs 2024-11-25 13:10:11 +02:00
github-actions[bot]
96280e6e9b chore: update pre-commit hooks (#44)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-11-24 12:15:24 +02:00
5ab0f89765 feat(nvim): mini.nvim plugins + cleanup 2024-11-22 17:58:52 +02:00
d585d61537 chore(config): tweaks to configs and scripts 2024-11-22 17:54:37 +02:00
746646ae55 feat(shell): switched to antidote, asdf changes 2024-11-22 17:53:46 +02:00
dependabot[bot]
6e69ec6410 chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 (#43)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 10:16:24 +02:00
af123e5138 chore(deps): update brewfile 2024-11-19 11:20:24 +02:00
3879289559 feat(tmux): removal of tmux-resurrect 2024-11-18 11:42:58 +02:00
392628e733 fix(shell): fixes to zsh and bash configs 2024-11-16 16:30:57 +02:00
aa70eab5fb fix(nvim): disable statuscol on certain ft and bt 2024-11-12 05:22:01 +02:00
e5311ca285 fix(nvim): finally a working colorcolumn 2024-11-12 05:21:26 +02:00
d5618c9b5f chore(config): tweaks to nvim config, autogroups 2024-11-09 19:49:21 +02:00
d091f5a88f feat(base): add tms bundle to antigen 2024-11-09 19:48:12 +02:00
cb9195e3ad chore(config): asdf, add libtmux to python 2024-11-09 19:47:42 +02:00
c91cc387b6 chore(docs): update working on readme 2024-11-09 19:47:02 +02:00
083091ea46 chore(deps): update asdf tool-versions, plugins 2024-11-08 15:59:54 +02:00
7ff74f0e15 feat(dfm): add asdf helpers 2024-11-08 15:36:47 +02:00
9d1f62fcca feat(dfm): more helpers, enable multiple commands 2024-11-08 15:35:56 +02:00
a563e82e33 chore(base): add lando, eza fix if missing 2024-11-08 15:33:43 +02:00
62ff7836e7 chore(config): wezterm config formatting, fonts 2024-11-08 15:32:04 +02:00
88cb573027 chore(config): update oh-my-posh cfg, completions 2024-11-08 15:31:29 +02:00
82772d8208 feat(config): tms configs 2024-11-07 10:04:33 +02:00
github-actions[bot]
240035569c chore: update pre-commit hooks (#42)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-11-06 13:56:19 +02:00
renovate[bot]
9697c200f9 chore(deps): update node to v22.11.0 (#41) 2024-11-01 13:04:20 +02:00
fd11f9966b chore(config): tmux-sessionizer bindings 2024-10-25 13:03:53 +03:00
722b3c0cde chore(scripts): tweak install-asdf, add update 2024-10-25 12:42:38 +03:00
4fcb9d9741 chore(config): fzf default opts 2024-10-25 12:42:38 +03:00
fc232f26f7 chore(config): update tmux config 2024-10-25 12:42:38 +03:00
8b078309cf chore(nvim): dashboard tweaks, add q for fast quit 2024-10-25 12:42:38 +03:00
5a8f990e52 chore(nvim): which-key tweaks 2024-10-25 12:42:38 +03:00
c76c5d08b0 chore(nvim): treesitter config tweaks 2024-10-25 12:42:38 +03:00
b2857e226c chore(nvim): telescope config tweaks 2024-10-25 12:42:38 +03:00
dfbac0c736 chore(nvim): lsp config tweaks, add neoconf, ts_ls 2024-10-25 12:42:38 +03:00
fdd713908c chore(nvim): cmp tweaks, add luasnip snippets 2024-10-25 12:42:37 +03:00
60210c9bec chore(deps): cleanup oh-my-posh config 2024-10-25 12:42:37 +03:00
eaf8d2bdca chore(config): update direnv config 2024-10-25 12:42:37 +03:00
cc00055626 chore(deps): update tool-versions & cargo-package
# Conflicts:
#	base/tool-versions
2024-10-25 12:42:34 +03:00
renovate[bot]
567de68844 feat(github-action): update actions/setup-python ( v5.2.0 → v5.3.0 )
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 23:17:20 +00:00
github-actions[bot]
ed0b229757 chore: update pre-commit hooks (#40)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-10-22 09:09:53 +03:00
c8b6243c0b chore(deps): update asdf dependencies 2024-10-17 23:47:05 +03:00
renovate[bot]
21a92eb145 chore(deps): update node to v22.10.0 (#39)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 23:38:09 +03:00
8ec317f582 chore: tweaks and cleanup 2024-10-17 23:29:40 +03:00
renovate[bot]
42201d8b68 feat(github-release): update python ( 3.12.7 → 3.13.0 ) (#38)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-08 10:36:55 +03:00
github-actions[bot]
0c003ae5b9 chore: update pre-commit hooks (#37)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-10-06 15:53:15 +03:00
d383031ec8 chore(docs): update nvim keybindings 2024-10-04 14:50:09 +03:00
renovate[bot]
fa5e5f16da feat(github-action)!: Update peter-evans/create-pull-request ( v6 → v7 ) (#36)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-03 10:43:47 +03:00
f82396236e chore(asdf): removed eza, lazygit. updated deps. 2024-10-03 01:52:46 +03:00
b127c2514d feat(nvim): another configuration tweak round
added snippets!
2024-10-03 01:51:39 +03:00
renovate[bot]
b06ac3bc0f feat(github-action)!: Update peter-evans/create-pull-request ( v5 → v6 ) (#35)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-03 01:21:03 +03:00
renovate[bot]
7e4ea90a05 fix(github-release): update python ( 3.12.6 → 3.12.7 ) (#34)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-02 23:35:20 +03:00
github-actions[bot]
d264a33d21 chore: update pre-commit hooks (#33)
Co-authored-by: ivuorinen <ivuorinen@users.noreply.github.com>
2024-10-01 09:26:30 +03:00
224ee56461 fix(workflow): pre-commit, run in the cloud 2024-10-01 08:51:27 +03:00
renovate[bot]
8147490c65 feat(github-action)!: Update peter-evans/create-pull-request ( v4 → v5 ) (#32)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-01 08:28:44 +03:00
renovate[bot]
c6d501347a feat(github-action)!: Update actions/setup-python ( v4.8.0 → v5.2.0 ) (#31)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-01 08:20:22 +03:00
renovate[bot]
d8044f2b6a feat(github-action)!: Update actions/checkout ( v3 → v4 ) (#30)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-01 08:12:02 +03:00
renovate[bot]
1b3fe6d12e feat(github-action): update actions/setup-python ( v4.5.0 → v4.8.0 )
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 21:05:17 +00:00
76b66d8c61 feat(workflow): pre-commit autoupdate 2024-09-30 21:41:56 +03:00
9c8644de17 feat(nvim): cleanup, fixes and helpers 2024-09-30 21:41:35 +03:00
120345b562 chore(nvim): ignore spell file changes 2024-09-30 02:49:16 +03:00
8accd4a60b chore(nvim): clear spell file 2024-09-30 02:42:19 +03:00
8fb03660ad chore(asdf): use system eza 2024-09-30 02:41:53 +03:00
8b2dc74f2a chore(brew): remove upstream removed font casks 2024-09-30 02:41:35 +03:00
8fa63e63bb chore(nvim): cleanup, formatting, fixes 2024-09-30 02:40:01 +03:00
4ca5b63b75 chore(nvim): more tweaks, cleanup and docs 2024-09-26 22:47:12 +03:00
5a59872377 chore(nvim): prefer telescope over fzf, cleanup 2024-09-26 14:16:28 +03:00
38419eda28 feat(nvim): refactoring, docs, keybinds, others 2024-09-26 13:38:31 +03:00
fc85dbaa6c chore(deps): pre-commit hooks update 2024-09-25 15:02:21 +03:00
250e7f5666 feat(nvim): keymaps tweaks, cleanup, docs 2024-09-25 14:52:56 +03:00
8f96922033 chore(asdf): add fzf to go packages 2024-09-25 14:49:26 +03:00
4c4de2dc26 chore(config): tweaks to path, show script name 2024-09-25 14:48:59 +03:00
b8c163e028 chore(deps): update tool-versions 2024-09-25 14:43:29 +03:00
0a974c2a17 chore(asdf): move eza to cargo packages 2024-09-25 14:43:11 +03:00
fd8d72ab38 chore(nvim): cleanup and keybindings 2024-09-23 16:25:54 +03:00
0908a23231 chore(asdf): add sops global version 2024-09-23 10:27:04 +03:00
2e070eed83 chore(docs): update nvim keybindings 2024-09-23 10:26:40 +03:00
e22762255d feat(nvim): configuration, refactoring, fixes 2024-09-23 09:52:11 +03:00
093f58f129 feat: removed nvim-lazy, nvim-kickstart 2024-09-22 04:31:44 +03:00
9b6e39b4af feat(nvim): plugins, cleanup, ign lazy-lock.json 2024-09-22 04:26:02 +03:00
Ismo Vuorinen
6f1e1a0416 feat(nvim): new nvim config (#28)
* feat(nvim): clean config, work in progress
* feat: refactored plugins and configs
* feat: stylua config, ufo, lsp refactor, cleanup
* feat: renamed nvim to nvim-lazy, added alias
* feat: renamed nvim-clean to be nvim, updated alias
2024-09-22 03:52:02 +03:00
36e0f36e06 chore: move to .tool-versions 2024-09-19 17:02:14 +03:00
e2c37d29e8 chore: more cleanup, linting and fixes 2024-09-19 12:40:16 +03:00
78716fa8ce feat(config): few handy date aliases 2024-09-19 09:49:59 +03:00
81e9b20eb6 chore(config): cleanup and removal of duplicates 2024-09-19 09:49:35 +03:00
renovate[bot]
94e58b307b chore(deps): update node to v22.9.0 (#27)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 02:43:47 +03:00
98aca096a9 feat(lint): add pre-commit config, yamlignore 2024-09-18 02:29:59 +03:00
121e31c7d4 chore(config): add-submodules.sh to dotbot config 2024-09-18 02:28:58 +03:00
f6bcd10ac5 chore(config): update exports 2024-09-18 02:27:30 +03:00
619c772fcc chore(config): tweak direnv config, hide output 2024-09-18 02:26:34 +03:00
746d44151c chore(workflow): cleanup new-release, tweak cron 2024-09-18 02:24:31 +03:00
b9585209be chore(deps): update yarn packages, fix prettier 2024-09-18 02:23:44 +03:00
930dcf00c4 Revert "chore(config): remove tmux dark-notify"
This reverts commit bb8e3bba56.
2024-09-17 00:17:08 +03:00
bb8e3bba56 chore(config): remove tmux dark-notify 2024-09-17 00:15:47 +03:00
6431c2e6dc chore(nvim): update nvim-kickstart 2024-09-17 00:15:03 +03:00
248eca1ae6 chore(config): tweak rector function 2024-09-17 00:14:46 +03:00
4b1ab2e1b8 chore(nvim): update lazyvim 2024-09-17 00:14:11 +03:00
c0f537439b chore(config): tweak tmux aliases 2024-09-17 00:13:50 +03:00
9ab132d37c chore(config): disable alacritty dark-notify 2024-09-17 00:13:20 +03:00
2b9ddc232b chore(config): tweak oh-my-posh config 2024-09-16 16:42:34 +03:00
1a244ce0b1 chore(deps): asdf update 2024-09-16 09:12:46 +03:00
fdc0f45b23 chore(workflows): tweak gh workflows 2024-09-16 09:12:30 +03:00
3fa90eef3b chore(bin): dfm, update install-* scripts 2024-09-15 17:46:42 +03:00
7ea7c12f0b chore(nvim): update lazyvim 2024-09-15 17:46:13 +03:00
f76492b942 chore(deps): update asdf deps, rearrange order 2024-09-15 17:45:58 +03:00
7947340663 chore(config): alias and shared git config 2024-09-15 17:00:04 +03:00
300c48b1e9 feat(bin): x-term-colors to test term colors 2024-09-15 16:59:38 +03:00
772527cc66 chore(asdf): update versions, clean plugins 2024-09-15 16:58:51 +03:00
renovate[bot]
370fdcbcbe fix(container): update image python ( 3.12.5 → 3.12.6 ) (#26)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 09:21:57 +03:00
b32c86bac2 chore(deps): update nvim-kickstart submodule 2024-09-05 10:44:25 +03:00
8d85809b1c fix(dfm): asdf install parameter + asdf updates 2024-09-05 10:36:10 +03:00
7fc40e3eab chore(nvim): update keymaps, update lazyvim 2024-09-04 13:20:59 +03:00
renovate[bot]
1aca769ebf chore(deps): update node to v22.8.0 (#25) 2024-09-04 12:43:33 +03:00
57df4edf6c chore(config): add .phpactor.json to .gitignore 2024-08-29 14:47:28 +03:00
240ac35aa8 chore(config): add brew autocompletion to fpath 2024-08-29 14:46:38 +03:00
ad0ba59b67 chore(deps): upgrade asdf package versions 2024-08-29 14:46:05 +03:00
bbc26e66dd chore: disable antigen tmux, add xdg-ninja alias 2024-08-29 13:19:22 +03:00
1803d41969 feat(config): rework exports, fix virtualenv location 2024-08-29 13:18:17 +03:00
34d547433f feat(asdf): rework installer, add python, markdownlint-cli2 2024-08-29 13:16:20 +03:00
dff4b9a9c5 feat(config): direnv config 2024-08-29 13:15:11 +03:00
c33404eb27 chore(lint): markdown linting fixes, ignore file 2024-08-29 13:14:27 +03:00
99e7578d60 feat(config): oh-my-posh autoupgrade 2024-08-29 13:13:21 +03:00
d8011728c7 chore(config): no more cheat theme 2024-08-29 13:12:30 +03:00
2f67d4a2e2 fix(shell): eza works now, oh-my-zsh was the cause 2024-08-29 13:11:56 +03:00
dependabot[bot]
ef37681087 chore(deps): bump micromatch from 4.0.7 to 4.0.8 (#24) 2024-08-25 11:26:14 +03:00
renovate[bot]
0c014033d1 chore(deps): update @ivuorinen/base-configs to 2.0.0 (#23) 2024-08-25 10:04:17 +03:00
renovate[bot]
14635009d2 chore(deps): update node to v22.7.0 (#22)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 09:26:17 +03:00
70118fee52 chore(deps): update asdf tool-versions 2024-08-21 10:54:44 +03:00
ivuorinen
0dce28ea6a chore(git): Update submodules (automated)
asdf v0.14.1
2024-08-20 03:06:19 +00:00
ba15f82302 chore: tweak bashrc, zshrc, alias and exports 2024-08-20 01:24:14 +03:00
d4972ea30d chore(deps): update asdf tool-versions 2024-08-19 11:32:42 +03:00
ed7263dfee chore(shell): disable tmux autostart 2024-08-17 17:39:29 +03:00
4cda063305 chore(config): exports now loaded from .config 2024-08-14 23:46:14 +03:00
d251ea9cdc fix(config): wezterm now sends alt correctly 2024-08-14 23:45:28 +03:00
bc4e906ff6 chore(dfm): check for fd and shfmt 2024-08-10 13:05:38 +03:00
75c36bacf9 chore(docs): update nvim keymaps 2024-08-10 13:04:31 +03:00
e7cda5ac0c feat: wezterm config and docs generator 2024-08-10 13:02:41 +03:00
41024b1eb5 chore(deps): update nvm/node version to 22.6.0 2024-08-09 19:36:24 +03:00
74afeb61c8 chore(nvim): update nvim-kickstart submodule 2024-08-09 19:33:18 +03:00
104bc369bc chore(brew): update and cleanup brewfile 2024-08-09 19:32:56 +03:00
57e63847ce feat(config): gnupg configuration 2024-08-09 19:32:07 +03:00
2dc08e5e51 chore(shell): cleanup zshenv and zshrc 2024-08-09 19:31:25 +03:00
989b5b5111 feat: add ruby 3.3.4 2024-08-09 19:30:17 +03:00
24a5dd1ff6 feat: direnv, move tool-versions to base 2024-08-09 18:59:34 +03:00
5826e35853 chore(deps): update asdf tool-versions 2024-07-30 00:34:14 +03:00
e329868568 fix(bin): alacritty automatic theme changing 2024-07-30 00:22:07 +03:00
dc76fa8914 chore(meta): add .luarc.json 2024-07-28 15:36:04 +03:00
3413365d41 chore(bin): tweak x-path-* scripts 2024-07-28 15:35:50 +03:00
37299f4893 chore(config): tweak exports 2024-07-28 15:35:34 +03:00
71a78c6e0c chore(config): remove herd config 2024-07-26 14:18:24 +03:00
3f8a4deb05 chore(deps): update asdf tool-versions 2024-07-26 14:17:47 +03:00
ffe288aba3 chore(deps): update nvim-kickstart config 2024-07-26 14:17:35 +03:00
28a1fc2831 chore(deps): update asdf tool-versions 2024-07-23 05:09:54 +03:00
28aae89f70 chore: cleanup and fixes 2024-07-23 05:09:30 +03:00
e8fe5c570b chore(meta): update renovate.json 2024-07-23 03:46:08 +03:00
26f6024292 feat(bin): update scripts to function format 2024-07-23 03:45:22 +03:00
4e4692321b chore(deps): update asdf tool-versions 2024-07-23 03:44:06 +03:00
3ea221ccf9 chore(config): tweak cheat config 2024-07-23 03:43:48 +03:00
e7774c4ab1 chore(docs): update nvim keybindings 2024-07-23 03:43:32 +03:00
1f2ca90ca5 feat!: refactor base, config, dfm and scripts 2024-07-23 03:43:12 +03:00
adecceda7a chore(scripts): eval scripts/shared.sh 2024-07-17 10:04:16 +03:00
8a3b2e703c feat(hosts): air wallpaper 2024-07-17 09:43:41 +03:00
1ee726e30c chore(shell): remove nvm plugin from zshrc 2024-07-17 09:43:18 +03:00
9857c8eb00 feat(asdf): move rust to asdf 2024-07-17 09:41:41 +03:00
a919d9544e chore: tweaks and reworked README 2024-07-17 09:40:53 +03:00
7bc7921a17 chore: rename scripts/shared 2024-07-17 09:39:57 +03:00
735807f245 chore: cleanup 2024-07-16 23:02:13 +03:00
6d531e2d40 chore(deps): update asdf packages 2024-07-16 23:01:52 +03:00
77f89c0f48 feat(asdf): manage go packages with asdf 2024-07-16 23:01:38 +03:00
7f3c7b7e1c feat: prettier-plugin-sh + tweaks and codefixes 2024-07-16 23:00:36 +03:00
fc16b8231e feat!: asdf is now a git submodule 2024-07-16 22:58:29 +03:00
64a626d5c4 chore(asdf): update deps 2024-07-13 20:56:39 +00:00
54816c2ce9 chore(shell): new aliases 2024-07-13 16:21:43 +03:00
3acaea5611 chore(asdf): update packages 2024-07-10 09:48:31 +00:00
e4a313abe7 chore(asdf): update packages 2024-07-10 11:05:30 +03:00
0b1c75cbdd chore(dotbot): create gnupg folder 2024-07-09 03:33:28 +03:00
cab0f4da49 chore(asdf): update asdfrc 2024-07-09 03:33:02 +03:00
cef15eddce chore(asdf): update tools, fix installer 2024-07-09 03:20:50 +03:00
f8987818b8 chore(asdf): cleanup 2024-07-08 10:15:48 +03:00
renovate[bot]
15d1f6a59a fix(github-action): update amannn/action-semantic-pull-request ( v5.5.2 → v5.5.3 )
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-06 17:43:58 +00:00
ba586fca7d feat(workflows): semantic-pr 2024-07-06 20:43:21 +03:00
Ismo Vuorinen
d93bc7aae3 feat(asdf): asdf and configuration (#19)
* chore(shell): configuration tweaks
* feat(asdf): add asdf, settings & most of the deps
2024-07-06 20:19:15 +03:00
77b0428cec chore(docs): update nvim keybindings 2024-06-30 14:17:35 +03:00
387432b27b chore(ssh): vine now accepts my id_rsa key 2024-06-25 20:38:59 +03:00
88fa706b75 chore(docs): update nvim keybindings 2024-06-25 09:53:48 +03:00
96ce9fec0c chore(docs): update tmux keybinding 2024-06-25 01:43:10 +03:00
66d5fbc8ac chore(meta): add light and dark modes to readme 2024-06-25 01:42:23 +03:00
cc3ceb4176 chore(meta): update screenshots 2024-06-25 01:30:29 +03:00
0f9c69bb65 chore(meta): update oh-my-posh screenshot 2024-06-25 01:25:24 +03:00
c754746b9f chore(scripts): extract oh-my-posh screenshotter 2024-06-25 01:24:44 +03:00
df5cab6a88 fix(scripts): some typoes in scripts/shared.sh 2024-06-25 01:23:22 +03:00
b9ddba4666 fix(scripts): oh-my-posh config path 2024-06-25 01:16:38 +03:00
77e92ef15e chore(scripts): tweak ntfy download path 2024-06-25 01:15:52 +03:00
383bc2b052 chore(scripts): tweak cargo updates 2024-06-25 01:15:15 +03:00
0e109c3da3 fix(config): oh-my-posh: remove shell_integration 2024-06-25 01:14:16 +03:00
50abd5aa30 feat(alacritty): update theme automagically 2024-06-23 01:23:37 +03:00
082e27fb0a chore(nvim-kickstart): update submodule 2024-06-23 01:22:26 +03:00
e05e68f5d1 fix(bin): msgr typo 2024-06-20 00:36:23 +03:00
074c169e3c feat(alacritty): theme changing improvements 2024-06-20 00:36:01 +03:00
636ea749ac chore(nvim): update lazyvim.json 2024-06-19 15:41:25 +03:00
da2a2e0f81 chore(nvim-kickstart): update submodule 2024-06-19 15:34:00 +03:00
0ef12b61ac feat(alacritty): change theme based on dark-notify 2024-06-19 15:31:44 +03:00
c6fc3db52f chore(alacritty): clean up config 2024-06-19 15:31:03 +03:00
1bde81a673 chore(shell): update omp cfg path to dotfiles 2024-06-18 08:50:10 +03:00
d60248f356 chore(tmux): tweak light status-current-style bg 2024-06-17 16:18:34 +03:00
40e8b9443b chore(tmux): cleanup, fixes, theme tweaks 2024-06-17 03:55:03 +03:00
8a032a2804 chore(deps): update yarn packages 2024-06-17 03:53:30 +03:00
367be373c4 fix(zsh): bring back tmux and zsh-titles 2024-06-17 03:53:13 +03:00
cf2f98d5c0 chore(zsh): tweak config 2024-06-16 08:52:44 +03:00
a3704f7db9 chore(ssh): add turing nodes to ssh config 2024-06-15 15:40:50 +03:00
7c359ffea0 chore(tmux): tweak config 2024-06-15 15:40:01 +03:00
9542624323 chore(zsh): tweak zshrc and move omp conf to omp/ 2024-06-15 15:39:41 +03:00
ivuorinen
b0d74bad1a chore(git): Update submodules (automated)
tmux/tmux-dark-notify v0.1.1
2024-06-13 03:04:48 +00:00
fcade15933 chore(nvim): update nvim-kickstart 2024-06-09 16:00:01 +03:00
6860909d39 chore(brew): Update bundle 2024-06-09 15:58:11 +03:00
493ad17c15 feat: antidot
Cleans up your $HOME from those pesky dotfiles
2024-06-09 15:57:41 +03:00
ivuorinen
0495ac1ea8 chore(git): Update submodules (automated)
tmux/tmux-dark-notify v0.1.0
2024-06-08 03:04:45 +00:00
9b5d372a74 chore: tweaks, updates 2024-06-07 11:38:44 +03:00
9d04343a26 chore(tmux): update tmux-dark-notify 2024-06-07 11:38:30 +03:00
ivuorinen
4aa0fba682 chore(git): Update submodules (automated)
tmux/tmux-dark-notify v0.1.0
2024-06-07 03:05:14 +00:00
ad6482b34a chore(nvim): update nvim-kickstart 2024-06-06 22:56:40 +03:00
113e27734a chore(nvim): config tweaks, lazyvim updates 2024-06-06 22:54:45 +03:00
378abfe896 feat(tmux): tmux-dark-notify + themes 2024-06-06 22:53:28 +03:00
eadf1e5c84 chore(nvim): update nvim-kickstart 2024-06-06 21:09:02 +03:00
ea4d185fb4 chore(brew): Update bundle 2024-06-06 21:06:58 +03:00
22bd8ca870 chore(alacritty): hide_when_typing = false 2024-06-06 10:45:34 +03:00
7ee81b005c chore(tmux): tweak visual bell and activity msg 2024-06-06 10:45:34 +03:00
3faf8224e8 chore(nvim): update nvim-kickstart submodule 2024-06-04 14:39:27 +03:00
d028f37c00 chore(nvim): update lazyvim.json extras 2024-06-04 14:39:02 +03:00
1df05ac0ba feat: ssh config for demons 2024-06-03 12:38:54 +03:00
e54e202281 chore(tmux): update config 2024-06-02 21:12:27 +03:00
c226943aa9 chore(nvim): update lazyvim packages 2024-06-02 21:11:56 +03:00
dda4b65458 fix: huskyrc nvm location 2024-05-22 16:47:14 +03:00
7d564d0b4d feat: if exports-secrets exists, source it 2024-05-22 16:46:34 +03:00
bc30e5f7a6 chore(config): tweak alacritty configuration 2024-05-16 12:19:56 +03:00
9e2f7e8f1b chore(config): change alacritty decorations to Full 2024-05-16 02:20:31 +03:00
7b47e49804 chore(config): ssh add ServerAlive settings 2024-05-16 02:17:12 +03:00
1be7649122 chore(tmux): tweak config, move status to left 2024-05-16 02:16:00 +03:00
453d54bc7f chore(config): tweak alacritty config 2024-04-26 12:45:02 +03:00
7ede7b9ac1 chore: update kickstart.nvim 2024-04-22 08:56:49 +03:00
a90743a09c feat(bin): x-gh-get-latest-* release and version helpers 2024-04-21 14:56:41 +03:00
185d28e587 feat: kickstart.nvim, and aliases 2024-04-21 14:55:36 +03:00
renovate[bot]
37f023351d chore(deps): update yarn to v1.22.22
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-17 05:10:25 +00:00
39523e9234 chore: add packageManager to package.json 2024-04-16 12:20:06 +03:00
dependabot[bot]
1f8fc0d289 chore(deps): bump tar from 6.2.0 to 6.2.1 (#16) 2024-04-12 08:48:11 +03:00
c083d2a20a feat(dfm): Add brew leaves and clean commands 2024-04-08 02:51:32 +03:00
75c6a0bccd chore(shell): update exports-apps to include pyenv 2024-04-08 02:49:48 +03:00
5ce86b3229 chore(nvim): update lazyvim.json 2024-04-08 02:49:08 +03:00
885189e4ff chore(nvim): update lazyvim.json 2024-03-09 10:21:32 +02:00
8f3f4d7ed9 chore(brew): update brewfile, add env to skip mas 2024-03-09 10:21:05 +02:00
03a1b5fb85 chore(brew): Remove unused formula and casks 2024-03-06 09:59:44 +02:00
7b83f6e943 chore(deps): upgraded yarn packages 2024-03-06 09:11:40 +02:00
261ff41e28 feat(nvim): neo-tree should show interesting files 2024-03-04 20:57:27 +02:00
36ad2a2ad9 chore(config): Cleanup 2024-03-03 16:39:22 +02:00
ivuorinen
a4d5b87272 chore(git): Update submodules (automated)
tmux/tmux-continuum v3.1.0
2024-03-02 03:04:30 +00:00
f953bff183 chore(git): Update submodules 2024-03-01 13:39:17 +02:00
aba33a20a4 fix: Use pyenv instead of local/bin/python hack 2024-03-01 12:43:53 +02:00
a20e1e1419 fix(tmux): Use tilde instead of $HOME in tmux.conf 2024-03-01 12:42:59 +02:00
8328f4cd19 feat(tmux): Use my fork of tmux-window-name 2024-03-01 12:42:04 +02:00
4383b130a9 chore(brew): Clean up and update Brewfile 2024-03-01 12:11:56 +02:00
8143999f2a chore: update cheat/tldr submodule 2024-02-23 20:31:28 +02:00
523bec769f feat(config): add tldr to cheat as a submodule 2024-02-21 14:21:29 +02:00
dee215a29e chore(config): remove tldr from cheatsheets 2024-02-21 14:15:20 +02:00
755ac0fa2c feat(config): alias for trivy_scan using docker 2024-02-21 13:44:09 +02:00
a69f1f9f9c chore(deps): updated yarn packages 2024-02-19 03:31:15 +02:00
934ecb2335 chore(tmux): tweak configuration 2024-02-19 03:28:29 +02:00
4b6b887ca8 feat(shell): use oh-my-posh if available 2024-02-12 14:15:37 +02:00
fb0b9044eb chore(shell): tweak git segment in ohmyposh config 2024-02-08 23:05:09 +02:00
74ca882192 chore(shell): tweaked oh-my-posh git output 2024-02-08 14:46:43 +02:00
b904f0b60e fix(shell): run tmux hook only if tmux is active 2024-02-06 12:55:55 +02:00
13764775ca feat: switch from starship to oh-my-posh 2024-02-06 10:10:59 +02:00
1f7b92285b feat: make zsh faster, update brewfile 2024-02-06 10:09:09 +02:00
1f22aee5e3 feat(nvim): laytan/tailwind-sorter.nvim 2024-01-25 15:07:16 +02:00
7dddf3ed75 feat(nvim): add lazyvim extra yanky 2024-01-22 00:45:21 +02:00
62cd8cbda4 feat(nvim): use plugin versions, where available 2024-01-22 00:44:53 +02:00
7dcebc8615 feat(nvim): laytan/cloak.nvim 2024-01-22 00:44:15 +02:00
2e6a1582bf fix(nvim): comment box keymappings 2024-01-22 00:43:45 +02:00
c316a8eb2f feat(tmux): tmux-current-pane-hostname 2024-01-11 22:33:30 +02:00
4a493abedf chore(deps): updated yarn packages 2024-01-03 02:42:33 +02:00
a395397a02 chore(config): ignore sonarqube .scannerwork 2023-12-31 01:04:51 +02:00
33f839c842 fix(lint): fixes to codestyle 2023-12-31 01:04:08 +02:00
8b55ac1bba chore(lint): added yaml doc start lines, spelling 2023-12-31 01:02:44 +02:00
856ca00f1b feat(config): migrated alacritty config to toml 2023-12-30 08:08:30 +02:00
c5bbe4add5 chore(config): update github client config 2023-12-22 02:18:43 +02:00
d2904274cb feat(config): xdg user dirs 2023-12-08 02:26:25 +02:00
7ce8c78920 fix(cargo): change cargo-clean to cargo-cache 2023-12-07 01:43:32 +02:00
71301a6436 feat(scripts): add cache clearing operations 2023-12-07 01:37:39 +02:00
e4f925e5b0 fix(dfm): base/* files not reverted 2023-12-07 01:37:00 +02:00
63ebd6df47 chore(config): alias cleanup and rename ip 2023-12-05 03:09:57 +02:00
d598aade16 chore(scripts): update cargo install script 2023-11-27 19:08:51 +02:00
1b49de9645 chore(shell): bash configs 2023-11-27 19:08:16 +02:00
d56338e233 chore(shell): quote paths 2023-11-22 00:52:47 +02:00
ef6ccb92c0 chore(deps): update yarn packages 2023-11-20 11:29:50 +02:00
16bb91dd81 feat(shell): use starship in bash 2023-11-18 02:33:13 +02:00
e7f078fe96 fix(nvim): merge mason ensure_installed defs 2023-11-16 15:34:22 +02:00
49778fe936 chore: update alacritty, nvim and tmux colors 2023-11-16 15:18:40 +02:00
6a718a41b1 feat(config): config loading changes and fixes 2023-11-16 14:07:22 +02:00
f392938e9e fix(dfm): have to x-have 2023-11-13 12:44:28 +02:00
7fb38fe8f3 feat(tmux): update theme, fix plugins, update docs 2023-11-13 12:44:09 +02:00
639cbe4939 chore(lint): dfm dotfiles fmt 2023-11-13 12:24:12 +02:00
1dc84a9cc5 chore(deps): updated Brewfile 2023-11-13 09:31:03 +02:00
6ae753d257 feat(cargo): added bottom 2023-11-13 09:28:37 +02:00
b7c9d4851a chore(scripts): mkd -> x-mkd 2023-11-13 09:28:15 +02:00
4699233d46 chore(shell): touching the paths again, no regrats 2023-11-13 09:25:58 +02:00
a5895abfa0 chore(config): update terraform config 2023-11-10 14:52:52 +02:00
fae34d10ef chore(config): update tmux config 2023-11-10 14:52:32 +02:00
c0448b5e7f feat(scripts): update pip install script 2023-11-10 14:51:57 +02:00
4d7cc568af feat(config): terraform configs 2023-11-10 14:06:58 +02:00
01a2815a68 chore(repo): added .nvmrc with lts/* 2023-11-10 08:38:54 +02:00
39e896f331 chore(deps): updated brewfile 2023-11-09 15:19:06 +02:00
622c8f991a chore(alias): wget 2023-11-07 07:20:44 +02:00
88894a33a5 feat(dfm): install latest lts node with nvm-latest 2023-11-07 07:20:02 +02:00
acbfd34e7d chore: paths and tweaks 2023-11-06 14:57:01 +02:00
bac03a0b7b chore(config): path additions 2023-11-06 10:40:45 +02:00
a96bf921a2 chore(scripts): backup scripts tweaks and license 2023-11-02 23:44:27 +02:00
b5df60851f chore(deps): updated yarn packages 2023-11-01 14:46:44 +02:00
2e682c58fa chore(deps): updated brewfile 2023-11-01 14:46:30 +02:00
cb28e274ca feat(config): amethyst 2023-11-01 14:46:14 +02:00
4572c42eea feat: x-path-* as scripts, run other changes 2023-11-01 14:45:03 +02:00
cec1edb269 feat: git-fsck-dirs, validate git repo objects 2023-10-31 13:08:04 +02:00
bfe7e93b60 chore(lint): run prettier to all files 2023-10-30 14:44:46 +02:00
1b80c8b7ed feat: from individual npm configs to meta pkg 2023-10-30 14:26:52 +02:00
c7c3493259 feat: git-update-dirs, update subdir repos 2023-10-30 14:24:08 +02:00
0e797d36ae chore(nvim): added leap & dot from lazyvim extras 2023-10-30 14:22:35 +02:00
renovate[bot]
0beb386f4a chore(deps): update dependency @ivuorinen/prettier-config to ^0.2.0 (#15) 2023-10-29 09:42:36 +02:00
renovate[bot]
cc0e668cd9 chore(deps): update dependency @ivuorinen/markdownlint-config to ^0.2.0 (#14) 2023-10-29 09:40:28 +02:00
renovate[bot]
d6f7aecf6c chore(deps): update dependency @ivuorinen/commitlint-config to ^0.2.0 (#12) 2023-10-29 09:36:42 +02:00
renovate[bot]
5253b69e37 chore(deps): update dependency @ivuorinen/eslint-config to ^0.3.0 (#13) 2023-10-29 09:32:37 +02:00
12080f59e1 feat(repo): delete and ignore nvim lazy-lock.json
this file causes too much noise to the repo, and should be per-machine
managed. starting nvim already generates this, and the state is always
going to change.
2023-10-25 09:42:24 +03:00
614827a877 chore(deps): update nvim dependencies 2023-10-24 08:16:02 +03:00
09343033ec chore(deps): update nvim packages 2023-10-19 16:14:58 +03:00
c24f51adb9 chore(deps): update brew packages 2023-10-19 16:14:58 +03:00
1a74cf78c1 chore(dfm): added messages to each install command 2023-10-19 13:28:59 +03:00
e31948dcc5 feat(shell): oh-my-bash for bash 2023-10-19 13:27:41 +03:00
25acc678d8 feat(actions): self-hosted github actions runner 2023-10-17 09:32:21 +03:00
8c3796b433 chore(deps): update nvim packages 2023-10-17 09:16:22 +03:00
048c9ac64f chore(tmux): remove continuum autostart 2023-10-17 08:11:26 +03:00
4ef3369c0e fix(config): tmux plugin load order 2023-10-16 15:26:21 +03:00
b9c343dc27 chore(deps): update npm packages 2023-10-16 15:25:25 +03:00
cfb41b8a03 chore(nvim): updates, markdown support 2023-10-16 10:41:53 +03:00
e42edc2dcf chore(scripts): update cheat install scripts 2023-10-16 10:40:56 +03:00
5a95484c58 feat(nvim): update lazyvim to use new system 2023-10-13 11:29:56 +03:00
988cb9cd18 chore(shell): drop autoupdate-antigen plugin 2023-10-13 11:13:12 +03:00
Ismo Vuorinen
681396383a Create SECURITY.md 2023-10-13 09:28:32 +03:00
Ismo Vuorinen
f1aaf65e93 Create CODE_OF_CONDUCT.md 2023-10-13 09:17:41 +03:00
83bdfbf6a2 chore(nvim): nvim updates, copilot and glance.nvim 2023-10-09 16:55:01 +03:00
08c2be6f97 chore(shell): shell env and path tweaks 2023-10-09 16:53:36 +03:00
renovate[bot]
acf0bbe659 chore(deps): update python docker tag to v3.12 (#11)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 10:34:52 +03:00
e4bae620fa chore(config): update irssi config 2023-10-03 15:50:17 +03:00
b81c8f05b5 fix(nvim): removed tabnine, updated deps 2023-10-03 15:49:39 +03:00
56427a08a8 chore(deps): update nvim 2023-10-03 13:04:02 +03:00
f2e7864583 fix(tmux): use 24h time in statusbar 2023-10-03 13:03:50 +03:00
9f96d553f0 feat(tmux): tmux config tweaks 2023-10-03 11:14:06 +03:00
1dee09759a chore(deps): update nvim and yarn 2023-10-02 19:13:37 +03:00
e2f6db9208 feat(tmux): tmux suspend and mode indicator 2023-10-02 13:04:53 +03:00
14270093c2 chore(config): remove irssi default theme 2023-10-02 11:58:45 +03:00
5015a8cd5a chore(nvim): update plugins, tweaks ui 2023-10-02 11:58:19 +03:00
266c18e195 chore(dotbot): cleanup dotbot plugins 2023-10-02 11:33:35 +03:00
9c432ed2a0 feat(tmux): update cfg, remove tpm, change theme 2023-10-02 11:32:41 +03:00
e6f3aae287 fix(shell): rework shell config for more stability 2023-10-02 08:39:07 +03:00
a73c54a5a6 chore(nvim): update deps 2023-09-29 20:47:11 +03:00
39ecd0495c fix(shell): update paths, add missing deps 2023-09-29 20:46:46 +03:00
4b45c89a90 fix(shell): change how shell detection works 2023-09-29 15:52:16 +03:00
dfb7a51786 fix(scripts): bash doesn't know -s in x-have 2023-09-29 14:57:26 +03:00
56ae0e1e1c feat(scripts): have is now x-have script 2023-09-29 14:51:20 +03:00
3d753fe08c feat(scripts): x-load-configs is now a script 2023-09-29 14:50:05 +03:00
540054d4bb feat(config): irssi config and plugins 2023-09-29 14:43:59 +03:00
b1a7932b72 chore(scripts): tweaks to dfm and msgr 2023-09-28 22:39:25 +03:00
ced09160ab chore(nvim): updates, config changes, tweaking 2023-09-28 20:37:16 +03:00
594ee0d03c chore(scripts): more work on installation scripts 2023-09-28 18:59:21 +03:00
68ec53e29b chore(repo): ignore local/share/fonts 2023-09-28 18:49:52 +03:00
0c8b075689 fix(config): lakka zshrc fixes 2023-09-28 18:33:29 +03:00
0242bbbd73 chore(deps): nvim dependencies 2023-09-28 18:17:44 +03:00
31423c30b9 fix(scripts): have now uses which -s 2023-09-28 18:17:29 +03:00
fbdd2c7448 fix(shell): fixed zsh/bash config loading 2023-09-28 17:53:09 +03:00
0aff4784b1 feat(scripts): msgr helper script 2023-09-28 17:13:44 +03:00
10b18e8bcc chore(dotbot): remove dotbot-crontab 2023-09-28 10:44:27 +03:00
dc0a349139 chore(config): add bob installed nvim to path 2023-09-28 09:38:55 +03:00
3ac1fac444 feat(nvim): Switched from brew nvim to bob-nvim 2023-09-27 15:25:33 +03:00
5bf4ea462b chore(config): Configuration tweaks 2023-09-27 15:22:42 +03:00
1d056988f4 feat(lint): added my linting configs 2023-09-27 14:25:53 +03:00
2415dff0e2 feat(scripts): dfu - dotfiles update function 2023-09-27 11:08:44 +03:00
d891d5a3c5 chore(deps): nvim deps update 2023-09-27 11:07:34 +03:00
f48813ff85 chore(config): Tweaks to fonts, app title bar, etc 2023-09-27 11:07:15 +03:00
a87b33b8c2 chore(shell): make everything bit faster 2023-09-27 10:38:10 +03:00
6f854ddbfd chore(lint): linting, tweaks, cleanup 2023-09-25 12:17:14 +03:00
748e5bb561 feat(dotbot): plugins: pipx, snap and crontab 2023-09-25 11:51:23 +03:00
67867b57cd feat(bin): x-git-largest-files.py python 3 version 2023-09-25 10:24:21 +03:00
91734ffa15 chore(config): tweaks to gh and tmux configs 2023-09-25 09:10:13 +03:00
5364bef678 fix(dotbot): git host overrides, nvm default pkgs 2023-09-25 08:28:11 +03:00
50b4f5c60f chore(config): alacritty font style 2023-09-25 00:56:46 +03:00
7cd508a727 chore(brew): update Brewfile 2023-09-25 00:56:24 +03:00
bf2c665433 chore(dotbot): update linking to use whole folders 2023-09-25 00:52:48 +03:00
f5b1bf0915 feat(dfm): install nerdfonts 2023-09-24 23:46:09 +03:00
e0c6d7e4f4 chore(nvim): update plugins 2023-09-24 22:45:36 +03:00
1937e72f17 chore(config): starship username tweak 2023-09-24 22:45:11 +03:00
228ba78341 feat(nvim): nvim-ufo, indent-blankline, gitsigns 2023-09-21 13:14:49 +03:00
c8c34dcc81 chore(nvim): tweak settings, update plugins 2023-09-21 13:14:15 +03:00
3d65fdee43 chore(config): tweak starship config 2023-09-21 13:11:31 +03:00
1897f49906 chore(nvim): transparency, edgy, configs, updates 2023-09-20 11:13:48 +03:00
d86785ad47 chore(repo): new screenshot, updated readme 2023-09-20 11:12:56 +03:00
1c3c04a6f3 fix(scripts): git-profile completion file name 2023-09-20 09:53:37 +03:00
debb79ee09 fix(cheat): save common to tldr root, fix names 2023-09-20 09:52:57 +03:00
c1dda8a230 feat(shell): eza, a modern replacement for ‘ls’ 2023-09-20 09:49:21 +03:00
5c74383dda chore(shell): add aliases and cleanup zsh plugins 2023-09-20 09:48:28 +03:00
da1473547a chore(nvim): plugin updates 2023-09-20 08:29:12 +03:00
43df368ec1 chore(nvim): configuration and plugin updates 2023-09-20 08:27:14 +03:00
6f3f977100 chore(docs): update tmux bindings 2023-09-19 09:10:17 +03:00
ab8e654c2a chore(deps): update Brewfile & nvim lazy plugins 2023-09-19 09:04:55 +03:00
1a4113e3cd chore(scripts): shfmt scripts 2023-09-19 09:04:02 +03:00
b3445d7e7a feat(dfm): shfmt now run with cargo installed fd 2023-09-19 09:03:08 +03:00
50fc1ea279 chore(config): starship: show hostname always 2023-09-19 08:48:53 +03:00
d61f53196d feat(dfm): install pip/python packages 2023-09-19 08:47:45 +03:00
7769af68b5 feat(tmux): tmux-window-name 2023-09-19 08:46:14 +03:00
05aa4ba092 feat(scripts): use bkt for command caching 2023-09-19 02:23:03 +03:00
a26f160326 feat(dfm): install rust/cargo packages 2023-09-19 02:22:05 +03:00
00de4a7b83 chore(nvim): plugins, updates 2023-09-19 01:34:42 +03:00
020012eb60 chore(config): exports for lakka 2023-09-19 01:31:55 +03:00
cf92bc9a69 feat(nvim): anuvyklack/windows.nvim 2023-09-18 09:23:49 +03:00
1c17ee28cb feat(nvim): language support, updated plugins 2023-09-18 08:52:46 +03:00
0919a9732e chore(repo): clean up yamlfmt exclude list 2023-09-15 17:41:04 +03:00
52a941f0fa chore(dotbot): updated install script 2023-09-15 17:40:16 +03:00
e661f6d942 chore(config): tweak alacritty opacity 2023-09-15 17:39:48 +03:00
b5160bbbfa feat(nvim): Switched to LazyVim with tweaks 2023-09-15 17:39:21 +03:00
2df27d2a0e chore(nvim): tweaks, docs, updates 2023-09-13 10:29:05 +03:00
ivuorinen
0c0f3823e4 chore(git): Update submodules (automated)
dotbot v1.20.1
2023-09-11 03:04:42 +00:00
555 changed files with 29816 additions and 8526 deletions

1
.browserslistrc Normal file
View File

@@ -0,0 +1 @@
extends @ivuorinen/browserslist-config

3
.commitlintrc.json Normal file
View File

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

View File

@@ -8,6 +8,12 @@ indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
max_line_length = 100
[*.lua]
max_line_length = 120
[*.php]
indent_size = 4
@@ -19,11 +25,19 @@ indent_size = 1
indent_size = 1
indent_style = tab
[{local/bin/*,**/*.sh,**/zshrc}]
[{local/bin/*,**/*.sh,**/zshrc,config/*,scripts/*}]
indent_size = 2
tab_width = 2
shell_variant = bash # --language-variant
binary_next_line = true
switch_case_indent = true # --case-indent
space_redirects = true
keep_padding = true
keep_padding = false
function_next_line = true # --func-next-line
# 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

1
.envrc Normal file
View File

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

3
.eslintrc.json Normal file
View File

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

7
.gitattributes vendored
View File

@@ -13,7 +13,7 @@
## Handle line endings automatically for files detected as
## text and leave all files detected as binary untouched.
## This will handle all files NOT defined below.
* text=auto
* text=auto oel=lf
# Source code
*.bash text eol=lf
@@ -220,8 +220,3 @@ git/* text
**/alias text
ssh/* text
# Git Crypt special files
*-secret filter=git-crypt diff=git-crypt
*.key filter=git-crypt diff=git-crypt
secrets/** filter=git-crypt diff=git-crypt

1
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1 @@
* @ivuorinen

128
.github/CODE_OF_CONDUCT.md vendored Normal file
View File

@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
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
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
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.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
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.

76
.github/README.md vendored
View File

@@ -6,7 +6,10 @@ aware of yet. As I find more interesting tools, configs and other stuff,
this repository will live accordingly.
Please for the love of everything good do not use these 1:1 as your own dotfiles,
fork or download the repo as a zip and go from there with your own configs.
fork or download the repository as a zip and go from there with your own configs.
It would be nice if you'd add an issue linking to your fork or repo so I can
see what interesting stuff you've done with it. Sharing is caring.
## Setup
@@ -23,21 +26,19 @@ fork or download the repo as a zip and go from there with your own configs.
## The looks
## tmux with powerlevel10k, the default view
![screenshot of the oh-my-posh shell](./screenshots/oh-my-posh.png)
![screenshot of tmux with powerlevel10k](./screenshots/tmux-powerlevel10k-130x20.png)
![screenshot of light version of tmux with nvim editing this repository](./screenshots/tmux-nvim-kickstart-light.png)
## tmux + nvim (astronvim) editing this repository
![screenshot of tmux showing nvim](./screenshots/tmux-astronvim-130x40.png)
![screenshot of dark version of tmux with nvim editing this repository](./screenshots/tmux-nvim-kickstart-dark.png)
## Interesting files and locations
### Interesting folders
| Path | Description |
|---------------------|----------------------------------------------|
| `.github` | GitHub Repository configuration files. |
| ------------------- | -------------------------------------------- |
| `.github` | GitHub Repository configuration files, meta. |
| `hosts/{hostname}/` | Configs that should apply to that host only. |
| `local/bin` | Helper scripts that I've collected or wrote. |
| `scripts` | Setup scripts. |
@@ -45,15 +46,17 @@ fork or download the repo as a zip and go from there with your own configs.
### dotfile folders
| Repo | Destination | Description |
|-----------|-------------|---------------------------------------------|
| --------- | ----------- | ------------------------------------------- |
| `base/` | `.*` | `$HOME` level files. |
| `config/` | `.config/` | Configurations for applications. |
| `local/` | `.local/` | XDG Base folder: `bin`, `share` and `state` |
| `ssh/` | `.ssh/` | SSH Configurations. |
### dfm - the dotfiles manager
### `dfm` - the dotfiles manager
`.local/bin/dfm` is a shell script that has some tools that help with dotfiles management.
[`.local/bin/dfm`][dfm] is a shell script that has some tools that help with dotfiles management.
Running `dfm` gives you a list of available commands.
## Configuration
@@ -62,57 +65,14 @@ The folder structure follows [XDG Base Directory Specification][xdg] where possi
### XDG Variables
| Env | Default | Short description |
|--------------------|----------------------|------------------------------------------------|
| ------------------ | -------------------- | ---------------------------------------------- |
| `$XDG_BIN_HOME` | `$HOME/.local/bin` | Local binaries |
| `$XDG_CONFIG_HOME` | `$HOME/.config` | User-specific configs |
| `$XDG_DATA_HOME` | `$HOME/.local/share` | User-specific data files |
| `$XDG_STATE_HOME` | `$HOME/.local/state` | App state that should persist between restarts |
#### XDG_BIN_HOME (`$HOME/.local/bin`)
`$XDG_BIN_HOME` defines directory that contains local binaries.
User-specific executable files may be stored in `$HOME/.local/bin`.
Distributions should ensure this directory shows up in the UNIX `$PATH`
environment variable, at an appropriate place.
#### XDG_DATA_HOME (`$HOME/.local/share`)
`$XDG_DATA_HOME` defines the base directory relative to which
user-specific *data files* should be stored.
If `$XDG_DATA_HOME` is either not set or empty,
a default equal to `$HOME/.local/share` should be used.
#### XDG_CONFIG_HOME (`$HOME/.config`)
`$XDG_CONFIG_HOME` defines the base directory relative to which
user-specific *configuration files* should be stored.
If `$XDG_CONFIG_HOME` is either not set or empty,
a default equal to `$HOME/.config` should be used.
#### XDG_STATE_HOME (`$HOME/.local/state`)
`$XDG_STATE_HOME` defines the base directory relative to which
user-specific *state files* should be stored.
If `$XDG_STATE_HOME` is either not set or empty,
a default equal to `$HOME/.local/state` should be used.
The `$XDG_STATE_HOME` contains *state data* that should
*persist between (application) restarts*, but that is not important or
portable enough to the user that it should be stored in `$XDG_DATA_HOME`.
- It may contain:
- actions history (logs, history, recently used files, …)
- current state of the application that can be reused
on a restart (view, layout, open files, undo history, …)
#### XDG_DATA_DIRS
`$XDG_DATA_DIRS` defines the preference-ordered set of base directories
to search for data files in addition to the `$XDG_DATA_HOME` base directory.
The directories in `$XDG_DATA_DIRS` should be seperated with a colon ':'.
Please see [docs/folders.md][docs-folders] for more information.
[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

12
.github/SECURITY.md vendored Normal file
View File

@@ -0,0 +1,12 @@
# Security Policy
## Supported Versions
Usually only the latest daily tag is supported at all,
because that's the current I'm using.
## Reporting a Vulnerability
Please send me email directly to the email in my profile.
I'd appreciate link to the release the vulnerability was
found in, and what is the vulnerable code/dependency.

View File

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

View File

@@ -1,6 +1,4 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>ivuorinen/.github:renovate-config"
]
"extends": ["local>ivuorinen/renovate-config"]
}

BIN
.github/screenshots/oh-my-posh.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

BIN
.github/screenshots/tmux-nvim.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View File

@@ -7,20 +7,21 @@ module.exports = {
{ types: ['build', 'ci'], label: '🏗️ Build System' },
{ types: ['refactor'], label: '🪚 Refactors' },
{ types: ['doc', 'docs'], label: '📚 Documentation Changes' },
{ types: ['config'], label: '🪛 Configuration Changes' },
{ types: ['test', 'tests'], label: '🔍 Tests' },
{ types: ['style', 'codestyle'], label: '💅 Code Style Changes' },
{ types: ['chore', 'Chore'], label: '🧹 Chores' },
{ types: ['style', 'codestyle', 'lint'], label: '💅 Code Style Changes' },
{ types: ['chore', 'Chore', 'deps', 'Deps'], label: '🧹 Chores' },
{ types: ['other', 'Other'], label: 'Other Changes' },
],
excludeTypes: [],
renderTypeSection: function (label, commits) {
let text = `\n## ${ label }\n\n`
let text = `\n## ${label}\n\n`
commits.forEach((commit) => {
const scope = commit.scope ? `**${ commit.scope }:** ` : ''
text += `- ${ scope }${ commit.subject }\n`
commits.forEach(commit => {
const scope = commit.scope ? `**${commit.scope}:** ` : ''
text += `- ${scope}${commit.subject}\n`
})
return text
@@ -28,8 +29,8 @@ module.exports = {
renderChangelog: function (release, changes) {
const now = new Date()
const d = now.toISOString().substring(0, 10);
const header = `# ${ release } - ${ d }\n`;
const d = now.toISOString().substring(0, 10)
const header = `# ${release} - ${d}\n`
return header + changes + '\n\n'
},
}

View File

@@ -1,9 +1,10 @@
---
name: Debug Changelog # Workflow name displayed on GitHub
on:
workflow_dispatch: # Trigger manually
jobs:
debug-changelog:
runs-on: ubuntu-latest
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
- name: Create changelog text
@@ -12,7 +13,7 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
config_file: .github/tag-changelog-config.js
- name: "Echo results"
- name: 'Echo results'
id: output-changelog
run: |
echo "${{ steps.changelog.outputs.changes }}"

View File

@@ -1,9 +1,10 @@
---
name: reviewdog
on: [push]
jobs:
linters:
name: Linters
runs-on: ubuntu-latest
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
- name: GitHub Actions

View File

@@ -1,21 +1,24 @@
name: Release Daily State # Workflow name displayed on GitHub
---
name: Release Daily State
on:
workflow_dispatch: # Trigger manually
workflow_dispatch:
schedule:
- cron: "30 20 * * *" # UTC is 2-3 hours behind Europe/Helsinki, my timezone
permissions:
contents: write
- cron: '0 21 * * *' # 00:00 at Europe/Helsinki
jobs:
new-daily-release:
runs-on: ubuntu-latest
runs-on: self-hosted
permissions:
contents: write
outputs:
created: ${{ steps.daily-version.outputs.created }}
version: ${{ steps.daily-version.outputs.version }}
steps:
- uses: actions/checkout@v4 # Checkout our working repository
- uses: actions/checkout@v4
- name: Create tag if necessary
uses: fregante/daily-version-action@v2
id: daily-version
- name: Create changelog text
if: steps.daily-version.outputs.created
id: changelog
@@ -23,6 +26,7 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
config_file: .github/tag-changelog-config.js
- name: Create release
if: steps.daily-version.outputs.created
uses: actions/create-release@latest

View File

@@ -0,0 +1,24 @@
---
name: Pre-commit autoupdate
on:
schedule:
# At 04:00 on Monday and Thursday.
- cron: "0 4 * * 1,4"
workflow_dispatch:
jobs:
auto-update:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5.4.0
- run: pip install pre-commit && pre-commit autoupdate
- uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: update/pre-commit-hooks
title: "chore: update pre-commit hooks"
commit-message: "chore: update pre-commit hooks"
body: Update versions of pre-commit hooks to latest version.

19
.github/workflows/semantic-pr.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
---
name: Semantic PR
on:
pull_request_target:
types:
- opened
- edited
- synchronize
jobs:
semantic-pr:
runs-on: self-hosted
steps:
- uses: amannn/action-semantic-pull-request@v5.5.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
validateSingleCommit: true

23
.github/workflows/sync-labels.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
---
name: Sync labels
# yamllint disable-line rule:truthy
on:
push:
branches:
- main
paths:
- .github/workflows/sync-labels.yml
- .github/labels.yml
schedule:
- cron: "34 5 * * *"
workflow_call:
workflow_dispatch:
jobs:
SyncLabels:
permissions:
issues: write
runs-on: ubuntu-latest
steps:
- uses: ivuorinen/actions/sync-labels@main

View File

@@ -1,14 +1,17 @@
---
name: Update submodules
on:
schedule: [{cron: 0 3 * * *}]
schedule:
# At 04:00 on Monday and Thursday.
- cron: "0 4 * * 1,4"
workflow_dispatch:
permissions:
contents: write
issues: write
pull-requests: write
jobs:
update-submodules:
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
pull-requests: write
runs-on: self-hosted
steps:
- name: Checkout repository
uses: actions/checkout@v4
@@ -22,15 +25,20 @@ jobs:
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
- name: Update submodules
run: |
if git commit -am"chore(git): Update submodules (automated)
$(git submodule --quiet foreach \
'tag="$(git describe --tags --abbrev=0 origin/HEAD)"
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" "$tag"
fi')"
then
echo "$name updated to $tag"
fi
'
if git diff --quiet; then
echo "No updates for submodules."
else
git add .
git commit -m "chore(git): Update submodules (automated)"
git show --raw
git push
fi

32
.gitignore vendored
View File

@@ -1,16 +1,38 @@
Brewfile.lock.json
*.log
!.gitkeep
*-secret
*.bak
*.log
*.socket
*cache
.env
.idea
.nfs*
.vscode
Brewfile.lock.json
antidote_plugins.zsh
config/alacritty/theme-active.toml
config/cheat/cheatsheets/pure-bash-bible/*
config/cheat/cheatsheets/tldr/*
config/git/credentials
config/gnupg/S.*
config/gnupg/private-keys-v1.d
config/gnupg/s
config/iterm2/AppSupport
config/npm/npmrc
config/nvim/lazy-lock.json
config/nvim/spell/*
!config/nvim/spell/.gitkeep
config/zed/*
!config/zed/settings.json
config/zsh/.zcompdump
iTermServer-*
lazy-lock.json
local/share/fonts/*
local/bin/asdf/plugins/*
lock
node_modules
ssh/local.d/*
!ssh/local.d/.gitkeep
!.gitkeep
.env
config/fish/fish_variables
**/exports-secret.fish
config/fish/completions/asdf.fish

73
.gitmodules vendored
View File

@@ -1,4 +1,4 @@
# vim: set expandtab:
# vim: noexpandtab filetype=gitconfig
[submodule "dotbot"]
path = tools/dotbot
url = https://github.com/anishathalye/dotbot.git
@@ -19,28 +19,73 @@
url = https://github.com/cheat/cheatsheets.git
ignore = dirty
[submodule "tmux/tpm"]
path = config/tmux/plugins/tpm
url = https://github.com/tmux-plugins/tpm.git
ignore = dirty
[submodule "tmux/catppuccin"]
path = config/tmux/plugins/tmux
url = https://github.com/catppuccin/tmux.git
[submodule "tmux/tmux-continuum"]
path = config/tmux/plugins/tmux-continuum
url = https://github.com/tmux-plugins/tmux-continuum
[submodule "tmux/tmux-menus"]
path = config/tmux/plugins/tmux-menus
url = https://github.com/jaclu/tmux-menus.git
[submodule "tmux/tmux-resurrect"]
path = config/tmux/plugins/tmux-resurrect
url = https://github.com/tmux-plugins/tmux-resurrect
ignore = dirty
[submodule "tmux/tmux-sensible"]
path = config/tmux/plugins/tmux-sensible
url = https://github.com/tmux-plugins/tmux-sensible.git
ignore = dirty
[submodule "tmux/tmux-sessionist"]
path = config/tmux/plugins/tmux-sessionist
url = https://github.com/tmux-plugins/tmux-sessionist.git
ignore = dirty
[submodule "tmux/tmux-yank"]
path = config/tmux/plugins/tmux-yank
url = https://github.com/tmux-plugins/tmux-yank.git
ignore = dirty
[submodule "tmux/tmux-window-name"]
path = config/tmux/plugins/tmux-window-name
url = https://github.com/ivuorinen/tmux-window-name.git
ignore = dirty
[submodule "dotbot-pip"]
path = tools/dotbot-pip
url = https://github.com/sobolevn/dotbot-pip.git
ignore = dirty
[submodule "tmux/tmux-suspend"]
path = config/tmux/plugins/tmux-suspend
url = https://github.com/MunifTanjim/tmux-suspend.git
ignore = dirty
[submodule "tmux/tmux-mode-indicator"]
path = config/tmux/plugins/tmux-mode-indicator
url = https://github.com/MunifTanjim/tmux-mode-indicator.git
ignore = dirty
[submodule "tmux/tmux-current-pane-hostname"]
path = config/tmux/plugins/tmux-current-pane-hostname
url = https://github.com/soyuka/tmux-current-pane-hostname.git
ignore = dirty
[submodule "cheat-tldr"]
path = config/cheat/cheatsheets/tldr
url = https://github.com/ivuorinen/cheatsheet-tldr.git
ignore = dirty
[submodule "tmux/tmux-dark-notify"]
path = config/tmux/plugins/tmux-dark-notify
url = https://github.com/erikw/tmux-dark-notify.git
ignore = dirty
[submodule "asdf"]
path = local/asdf
url = https://github.com/asdf-vm/asdf.git
ignore = dirty
[submodule "antidote"]
path = tools/antidote
url = https://github.com/mattmc3/antidote.git
shallow = true
ignore = dirty
[submodule "dotbot-asdf"]
path = tools/dotbot-asdf
url = https://github.com/sobolevn/dotbot-asdf
ignore = dirty

View File

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

5
.luarc.json Normal file
View File

@@ -0,0 +1,5 @@
{
"diagnostics.globals": [
"vim"
]
}

View File

@@ -1,5 +1,5 @@
{
"extends": "markdownlint/style/prettier",
"extends": "@ivuorinen/markdownlint-config",
"code-block-style": {
"style": "fenced"
},

8
.markdownlintignore Normal file
View File

@@ -0,0 +1,8 @@
# only care about files that are directly under our control
config/cheat/cheatsheets/community/*
config/cheat/cheatsheets/tldr/*
config/tmux/plugins/*
local/bin/asdf/*
tools/*
node_modules/*

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
22.14.0

59
.pre-commit-config.yaml Normal file
View File

@@ -0,0 +1,59 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: requirements-txt-fixer
- id: detect-aws-credentials
- id: detect-private-key
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]
- id: check-case-conflict
- id: check-merge-conflict
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable
- id: check-symlinks
- id: check-toml
- id: check-xml
- id: check-yaml
args: [--allow-multiple-documents]
- 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.44.0
hooks:
- id: markdownlint
args: [-c, .markdownlint.json, --fix]
- repo: https://github.com/adrienverge/yamllint
rev: v1.35.1
hooks:
- id: yamllint
- repo: https://github.com/koalaman/shellcheck-precommit
rev: v0.10.0
hooks:
- id: shellcheck
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.10.0-2
hooks:
- id: shfmt
- repo: https://github.com/rhysd/actionlint
rev: v1.7.7
hooks:
- id: actionlint
- repo: https://github.com/renovatebot/pre-commit-hooks
rev: 39.178.1
hooks:
- id: renovate-config-validator
- repo: https://github.com/JohnnyMorganz/StyLua
rev: v2.0.2
hooks:
- id: stylua # or stylua-system / stylua-github

14
.prettierignore Normal file
View File

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

14
.prettierrc.js Normal file
View File

@@ -0,0 +1,14 @@
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.11
3.13.2

3
.releaserc.json Normal file
View File

@@ -0,0 +1,3 @@
{
"extends": ["@ivuorinen/semantic-release-config"]
}

View File

@@ -24,3 +24,7 @@ disable=SC1091
# SC2174: When used with -p, -m only applies to the deepest directory.
# https://github.com/koalaman/shellcheck/wiki/SC2174
disable=SC2174
# SC2016: Expressions don't expand in single quotes, use double quotes for that.
# https://www.shellcheck.net/wiki/SC2016
disable=SC2016

View File

@@ -1,24 +0,0 @@
formatter:
type: basic
indent: 2
retain_line_breaks: false
disallow_anchors: false
max_line_length: 0
scan_folded_as_literal: false
indentless_arrays: false
doublestar: true
extensions:
- yaml
- yml
include:
- ./*.{yml,yaml}
- ./**/*.{yml,yaml}
exclude:
- ./tools/dotbot/**
- ./tools/dotbot-*/**
- ./config/astronvim/**
- ./config/nvim/**

View File

@@ -1,2 +0,0 @@
# .yamlignore

View File

@@ -1,24 +1,71 @@
#!/usr/bin/env bash
git submodule add --name dotbot -f https://github.com/anishathalye/dotbot.git tools/dotbot
git submodule add --name dotbot-brew -f https://github.com/wren/dotbot-brew.git tools/dotbot-brew
git submodule add --name dotbot-include -f https://gitlab.com/gnfzdz/dotbot-include.git tools/dotbot-include
git submodule add --name cheat-community -f https://github.com/cheat/cheatsheets.git config/cheat/cheatsheets/community
# dotbot and plugins
git submodule add --name dotbot \
-f https://github.com/anishathalye/dotbot.git tools/dotbot
git submodule add --name dotbot-brew \
-f https://github.com/wren/dotbot-brew.git tools/dotbot-brew
git submodule add --name dotbot-include \
-f https://gitlab.com/gnfzdz/dotbot-include.git tools/dotbot-include
git submodule add --name dotbot-pip \
-f https://github.com/sobolevn/dotbot-pip.git tools/dotbot-pip
git submodule add --name dotbot-asdf \
-f https://github.com/sobolevn/dotbot-asdf tools/dotbot-asdf
# other repos
git submodule add --name cheat-community \
-f https://github.com/cheat/cheatsheets.git config/cheat/cheatsheets/community
git submodule add --name cheat-tldr \
-f https://github.com/ivuorinen/cheatsheet-tldr.git config/cheat/cheatsheets/tldr
git submodule add --name asdf \
-f https://github.com/asdf-vm/asdf.git local/asdf
git submodule add --name antidote \
--depth 1 \
-f https://github.com/mattmc3/antidote.git tools/antidote
# tmux plugin manager and plugins
git submodule add --name tmux/tpm \
-f https://github.com/tmux-plugins/tpm.git config/tmux/plugins/tpm
git submodule add --name tmux/catppuccin \
-f https://github.com/catppuccin/tmux.git config/tmux/plugins/tmux
git submodule add --name tmux/tmux-continuum \
-f https://github.com/tmux-plugins/tmux-continuum config/tmux/plugins/tmux-continuum
git submodule add --name tmux/tmux-menus \
-f https://github.com/jaclu/tmux-menus.git config/tmux/plugins/tmux-menus
git submodule add --name tmux/tmux-resurrect \
-f https://github.com/tmux-plugins/tmux-resurrect config/tmux/plugins/tmux-resurrect
git submodule add --name tmux/tmux-mode-indicator \
-f https://github.com/MunifTanjim/tmux-mode-indicator.git config/tmux/plugins/tmux-mode-indicator
git submodule add --name tmux/tmux-sensible \
-f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible
git submodule add --name tmux/tmux-sessionist \
-f https://github.com/tmux-plugins/tmux-sessionist.git config/tmux/plugins/tmux-sessionist
git submodule add --name tmux/tmux-suspend \
-f https://github.com/MunifTanjim/tmux-suspend.git config/tmux/plugins/tmux-suspend
git submodule add --name tmux/tmux-window-name \
-f https://github.com/ivuorinen/tmux-window-name.git config/tmux/plugins/tmux-window-name
git submodule add --name tmux/tmux-yank \
-f https://github.com/tmux-plugins/tmux-yank.git config/tmux/plugins/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
# Takes submodules and sets them to ignore all changes
for MODULE in $(git config --file .gitmodules --get-regexp path | awk '{ print $2 }'); do
echo "Ignoring submodule changes for submodule.${MODULE}..."
git config "submodule.${MODULE}.ignore" "dirty"
done
# Mark certain repositories shallow
git config -f .gitmodules submodule.antidote.shallow true
# remove old submodules
folders=(
"config/tmux/plugins/tpm"
"config/tmux/plugins/tmux"
"config/tmux/plugins/tmux-menus"
"config/tmux/plugins/tmux-resurrect"
"tools/dotbot-crontab"
"tools/dotbot-snap"
"config/nvim-kickstart"
"local/bin/asdf"
)
for folder in "${folders[@]}"; do
[ -d "$folder" ] && \
rm -rf "$folder" && \
msgr run_done "Removed old submodule $folder"
done

View File

@@ -1,26 +1,27 @@
# this is my bashrc config. there are many like it, but this one is mine.
# shellcheck shell=bash
# Defaults
export DOTFILES="$HOME/.dotfiles"
export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$PATH"
export SHARED_SCRIPTS_SOURCED=0
# Run x-load-configs in your terminal to reload the files.
function x-load-configs()
{
HOST="$(hostname -s)"
# Load the shell dotfiles, and then some:
for file in $DOTFILES/config/{exports,alias,functions}; do
[ -r "$file" ] && source "$file"
[ -r "$file-secret" ] && source "$file-secret"
[ -r "$file-$HOST" ] && source "$file-$HOST"
[ -r "$file-$HOST-secret" ] && source "$file-$HOST-secret"
done
}
x-load-configs
source "$DOTFILES/config/shared.sh"
# Import ssh keys in keychain
ssh-add -A 2>/dev/null;
if [ -n "${GHOSTTY_RESOURCES_DIR}" ]; then
builtin source "${GHOSTTY_RESOURCES_DIR}/shell-integration/bash/ghostty.bash"
fi
# shellcheck source=../config/fzf/fzf.bash
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] \
&& source "${DOTFILES}/config/fzf/fzf.bash"
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] &&
source "${DOTFILES}/config/fzf/fzf.bash"
# Import ssh keys in keychain
ssh-add -A 2>/dev/null
x-have antidot && {
eval "$(antidot init)"
}
PROMPT_DIRTRIM=3
PROMPT_COMMAND='PS1_CMD1=$(git branch --show-current 2>/dev/null)'
PS1='\[\e[95m\]\u\[\e[0m\]@\[\e[38;5;22;2m\]\h\[\e[0m\] \[\e[38;5;33m\]\w\[\e[0m\] \[\e[92;2m\]${PS1_CMD1}\n\[\e[39m\]➜\[\e[0m\] '

2
base/envrc Normal file
View File

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

View File

@@ -23,7 +23,7 @@
"work": [
{
"key": "user.email",
"value": "ismo.vuorinen@vincit.fi"
"value": "ismo.vuorinen@svea.com"
},
{
"key": "user.name",
@@ -31,4 +31,4 @@
}
]
}
}
}

View File

@@ -1,6 +1,4 @@
#!/bin/env bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
[ -z "$NVM_DIR" ] && export NVM_DIR="$HOME/.config/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

6
base/ignore Normal file
View File

@@ -0,0 +1,6 @@
Applications/
Library/
Movies/
Music/
Pictures/
Google Drive/

1
base/nvmrc Normal file
View File

@@ -0,0 +1 @@
lts/*

19
base/tool-versions Normal file
View File

@@ -0,0 +1,19 @@
golang 1.23.4
rust 1.83.0
direnv 2.35.0
fd 10.2.0
1password-cli 2.30.3
age 1.2.1
dotenv-linter 3.3.0
editorconfig-checker 2.8.0
github-cli 2.64.0
hadolint 2.12.0
kubectl 1.32.0
pre-commit 4.0.1
ripgrep 14.1.1
shellcheck 0.10.0
shfmt 3.10.0
terragrunt 0.71.1
tf-summarize 0.3.14
yamllint 1.35.1
yq 4.44.6

View File

@@ -1,73 +1,68 @@
# this is my zsh config. there are many like it, but this one is mine.
# https://zsh.sourceforge.io/Intro/intro_3.html
# shellcheck shell=bash
# Defaults
# export VERBOSE=1
# export DEBUG=1
autoload -U promptinit; promptinit
export DOTFILES="$HOME/.dotfiles"
# shellcheck source=scripts/shared.sh
source "$DOTFILES/scripts/shared.sh"
LOCAL_SHARE="$HOME/.local/share"
export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$LOCAL_SHARE/nvim/mason/bin:$LOCAL_SHARE/bob/nvim-bin:$LOCAL_SHARE/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
export SHARED_SCRIPTS_SOURCED=0
export COMPLETION_WAITING_DOTS=true
source "$DOTFILES/config/shared.sh"
source "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc"
# Run x-load-configs in your terminal to reload the files.
function x-load-configs()
# zsh completions directory
[ -z "$ZSH_COMPLETIONS" ] && export ZSH_COMPLETIONS="$XDG_CONFIG_HOME/zsh/completion"
# Add zsh completions to FPATH, compinit will be called later
FPATH="$ZSH_COMPLETIONS:$FPATH"
ZSH_COMPDUMP="$XDG_CACHE_HOME/zsh/zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
source "$DOTFILES/config/zsh/antidote.zsh"
# source "$DOTFILES/config/zsh/prompt.zsh"
# Function to source FZF configuration
source_fzf_config()
{
# Load the shell dotfiles, and then some:
for file in $DOTFILES/config/{exports,alias,functions}; do
HOST="$(hostname -s)"
# global (exports|alias|functions) file for all hosts
# shellcheck source=../config/exports
[ -r "$file" ] && source "$file"
# global secret file, git ignored
# shellcheck source=../config/exports-secret
[ -r "$file-secret" ] && source "$file-secret"
# host specific (exports|alias|functions) file
# shellcheck source=../config/exports
[ -r "$file-$HOST" ] && source "$file-$HOST"
# host specific (exports|alias|functions) file, git ignored
# shellcheck source=../config/exports
[ -r "$file-$HOST-secret" ] && source "$file-$HOST-secret"
done
local fzf_config="${DOTFILES}/config/fzf/fzf.zsh"
if [[ -f "$fzf_config" ]]; then
# shellcheck source=config/fzf/fzf.zsh
source "$fzf_config"
fi
}
x-load-configs
export HISTFILE="$XDG_STATE_HOME"/zsh/history
# Function to set up tmux window name plugin if tmux is active
setup_tmux_window_name_plugin()
{
if [[ -n "$TMUX" ]]; then
local tmux_window_name_plugin="$TMUX_PLUGINS/tmux-window-name/scripts/rename_session_windows.py"
if [[ -f "$tmux_window_name_plugin" ]]; then
tmux_window_name()
{
($tmux_window_name_plugin &)
}
add-zsh-hook chpwd tmux_window_name
tmux_window_name
fi
fi
}
autoload -U colors zsh/terminfo
colors
export ZSH_CUSTOM_COMPLETION_PATH="$XDG_CONFIG_HOME/zsh/completion"
x-dc "$ZSH_CUSTOM_COMPLETION_PATH"
# Add completion scripts to zsh path
FPATH="$ZSH_CUSTOM_COMPLETION_PATH:$FPATH"
autoload -Uz compinit
if type brew &>/dev/null
then
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
if [[ -n $GHOSTTY_RESOURCES_DIR ]]; then
source "$GHOSTTY_RESOURCES_DIR"/shell-integration/zsh/ghostty-integration
fi
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
source_fzf_config
setup_tmux_window_name_plugin
x-have antidot && eval "$(antidot init)"
# Try to load antigen, if present
ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh"
# shellcheck source=../../.local/bin/antigen.zsh
[[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH"
# antigen is present
have antigen && {
antigen use oh-my-zsh
# config/functions
x-default-antigen-bundles
antigen apply
}
# shellcheck source=../config/fzf/fzf.zsh
[ -f "${DOTFILES}/config/fzf/fzf.zsh" ] \
&& source "${DOTFILES}/config/fzf/fzf.zsh"
# Start starship
eval "$(starship init zsh)"
autoload -Uz compinit bashcompinit
compinit -d $ZSH_COMPDUMP
bashcompinit
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
export P10K_CONFIG="$DOTFILES/config/zsh/p10k.zsh"
[[ ! -f "$P10K_CONFIG" ]] || source "$P10K_CONFIG"

View File

@@ -1,3 +1,4 @@
--container-architecture linux/amd64
-P ubuntu-latest=catthehacker/ubuntu:act-latest
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04
-P ubuntu-20.04=catthehacker/ubuntu:act-20.04

View File

@@ -0,0 +1,244 @@
# Start AeroSpace at login
start-at-login = false
# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
enable-normalization-flatten-containers = true
enable-normalization-opposite-orientation-for-nested-containers = true
# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
# The 'accordion-padding' specifies the size of accordion padding
# You can set 0 to disable the padding feature
accordion-padding = 10
# Possible values: tiles|accordion
default-root-container-layout = 'tiles'
# Possible values: horizontal|vertical|auto
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
# tall monitor (anything higher than wide) gets vertical orientation
default-root-container-orientation = 'auto'
# Mouse follows focus when focused monitor changes
# Drop it from your config, if you don't like this behavior
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
# Fallback value (if you omit the key): on-focused-monitor-changed = []
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']
# You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag
# Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key
# Also see: https://nikitabobko.github.io/AeroSpace/goodness#disable-hide-app
automatically-unhide-macos-hidden-apps = true
# [[on-window-detected]]
# if.app-id = 'com.apple.systempreferences'
# if.app-name-regex-substring = 'settings'
# if.window-title-regex-substring = 'substring'
# if.workspace = 'workspace-name'
# if.during-aerospace-startup = true
# check-further-callbacks = true
# run = ['layout floating', 'move-node-to-workspace S'] # The callback itself
[[on-window-detected]]
if.app-name-regex-substring = 'settings' # All settings
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.apple.systempreferences' # macOS System Preferences
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.1password.1password' # 1Password
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'org.ferdium.ferdium-app' # Ferdium, has WhatsApp etc.
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.jetbrains.PhpStorm' # PhpStorm
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.apple.finder' # Finder
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.apple.Preview' # Preview
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.apple.mail' # Mail
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.DanPristupov.Fork' # Fork
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.flexibits.fantastical2.mac' # Fantastical
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'org.whispersystems.signal-desktop' # Signal
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.tidal.desktop' # TIDAL
run = ['layout floating', 'move-node-to-workspace 2'] # Float and move to workspace 2
[[on-window-detected]]
if.app-id = 'com.apple.TV' # Apple TV app
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.setapp.DesktopClient' # Setapp
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.electron.dockerdesktop' # Docker Desktop
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.tinyspeck.slackmacgap' # Slack
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'md.obsidia' # Obsidian
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.todoist.mac.Todoist' # Todoist
run = ['layout floating']
[[on-window-detected]]
if.app-id = 'com.apple.backup.launcher' # TimeMachine
run = ['layout floating']
# Possible values: (qwerty|dvorak)
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
[key-mapping]
preset = 'qwerty'
# Gaps between windows (inner-*) and between monitor edges (outer-*).
# Possible values:
# - Constant: gaps.outer.top = 8
# - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
# In this example, 24 is a default value when there is no match.
# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
# See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
[gaps]
inner.horizontal = 5
inner.vertical = 5
outer.top = [{ monitor.'^built-in retina display$' = 0 }, 0]
outer.right = 0
outer.bottom = 0
outer.left = 0
# 'main' binding mode declaration
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
# 'main' binding mode must be always presented
# Fallback value (if you omit the key): mode.main.binding = {}
[mode.main.binding]
cmd-h = [] # Disable "hide application"
cmd-alt-h = [] # Disable "hide others"
# All possible keys:
# - Letters. a, b, c, ..., z
# - Numbers. 0, 1, 2, ..., 9
# - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9
# - F-keys. f1, f2, ..., f20
# - Special keys. minus, equal, period, comma, slash, backslash, quote, semicolon, backtick,
# leftSquareBracket, rightSquareBracket, space, enter, esc, backspace, tab
# - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual,
# keypadMinus, keypadMultiply, keypadPlus
# - Arrows. left, down, up, right
# All possible modifiers: cmd, alt, ctrl, shift
# All possible commands: https://nikitabobko.github.io/AeroSpace/commands
# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
# You can uncomment the following lines to open up terminal with alt + enter shortcut (like in i3)
# alt-enter = '''exec-and-forget osascript -e '
# tell application "Terminal"
# do script
# activate
# end tell'
# '''
# alt-cmd-shift-f = 'fullscreen'
# alt-shift-f = 'layout floating'
# alt-shift-tab = 'move-workspace-to-monitor --wrap-around next'
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
alt-h = 'focus left'
alt-j = 'focus down'
alt-k = 'focus up'
alt-l = 'focus right'
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
alt-shift-1 = 'workspace 1' # Main
alt-shift-2 = 'workspace 2' # Media
ctrl-shift-1 = 'move-node-to-workspace 1' # Move node to Main
ctrl-shift-2 = 'move-node-to-workspace 2' # Move node to Media
alt-shift-tab = 'workspace-back-and-forth' # Switch between workspaces
ctrl-shift-tab = 'move-workspace-to-monitor --wrap-around prev'
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
alt-a = 'mode apps'
alt-s = 'mode service'
alt-m = 'mode move'
# ╭──────────────────────────────────────────────────────────╮
# │ alt-m │
# ╰──────────────────────────────────────────────────────────╯
[mode.move.binding]
esc = ['reload-config', 'mode main']
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
1 = ['move-node-to-workspace 1 --focus-follows-window']
2 = ['move-node-to-workspace 2 --focus-follows-window']
# See: https://nikitabobko.github.io/AeroSpace/commands#move
h = 'move left'
j = 'move down'
k = 'move up'
l = 'move right'
# See: https://nikitabobko.github.io/AeroSpace/commands#join-with
shift-h = 'join-with left'
shift-j = 'join-with down'
shift-k = 'join-with up'
shift-l = 'join-with right'
# https://nikitabobko.github.io/AeroSpace/commands#resize
ctrl-h = 'resize smart -70'
ctrl-l = 'resize smart +70'
shift-left = 'resize smart +70'
shift-right = 'resize smart -70'
# https://nikitabobko.github.io/AeroSpace/commands#flatten-workspace-tree
r = ['flatten-workspace-tree', 'mode main'] # reset layout
# ╭──────────────────────────────────────────────────────────╮
# │ alt-a │
# ╰──────────────────────────────────────────────────────────╯
[mode.apps.binding]
esc = ['reload-config', 'mode main']
b = ['exec-and-forget open -a /Applications/Brave Browser.app', 'mode main'] # Browser
c = ['exec-and-forget open -a /Applications/Ferdium.app', 'mode main'] # Chat
g = ['exec-and-forget open -a /Applications/Ghostty.app', 'mode main'] # Ghostty
o = ['exec-and-forget open -a /Applications/Obsidian.app', 'mode main'] # Obsidian
s = ['exec-and-forget open -a /Applications/Slack.app', 'mode main'] # Slack
t = ['exec-and-forget open -a /Applications/TIDAL.app', 'mode main'] # Tidal
w = ['exec-and-forget open -a /Applications/WezTerm.app', 'mode main'] # WezTerm
# ╭──────────────────────────────────────────────────────────╮
# │ alt-s │
# ╰──────────────────────────────────────────────────────────╯
[mode.service.binding]
esc = ['reload-config', 'mode main'] # reload config
r = ['flatten-workspace-tree', 'mode main'] # reset layout
# See: https://nikitabobko.github.io/AeroSpace/commands#layout
f = ['layout floating tiling', 'mode main'] # Toggle between floating and tiling layout
backspace = ['close-all-windows-but-current', 'mode main']

View File

@@ -0,0 +1,52 @@
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"
[colors]
draw_bold_text_with_bright_colors = true
[font]
size = 14.0
[font.glyph_offset]
x = 0
y = 0
[font.normal]
family = "JetBrainsMonoNL Nerd Font Mono"
style = "ExtraLight"
[font.italic]
family = "JetBrainsMonoNL Nerd Font Mono"
style = "Italic"
[font.bold]
family = "JetBrainsMonoNL Nerd Font Mono"
style = "Bold"
[font.offset]
x = 0
y = 0
[selection]
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
save_to_clipboard = true
[window]
decorations = "Full"
dynamic_title = true
opacity = 0.98
blur = true
[window.dimensions]
columns = 200
lines = 75
[window.padding]
x = 5
y = 5

View File

@@ -1,310 +0,0 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty it self.
env:
# TERM env customization.
#
# If this property is not set, alacritty will set it to xterm-256color.
#
# Note that some xterm terminfo databases don't declare support for italics.
# You can verify this by checking for the presence of `smso` and `sitm` in
# `infocmp xterm-256color`.
TERM: xterm-256color
# Window dimensions in character columns and lines
# (changes require restart)
window:
dimensions:
columns: 130
lines: 40
# Adds this many blank pixels of padding around the window
# Units are physical pixels; this is not DPI aware.
# (change requires restart)
padding:
x: 5
y: 5
decorations: buttonless
opacity: 0.85
# When true, bold text is drawn using the bright variant of colors.
draw_bold_text_with_bright_colors: true
# Font configuration (changes require restart)
font:
# The normal (roman) font face to use.
normal:
family: JetBrainsMono Nerd Font
# Style can be specified to pick a specific face.
# style: Regular
# The bold font face
bold:
family: JetBrainsMono Nerd Font
# Style can be specified to pick a specific face.
style: Bold
# The italic font face
italic:
family: JetBrainsMono Nerd Font
# Style can be specified to pick a specific face.
style: Italic
# Point size of the font
size: 14.0
# Offset is the extra space around each character. offset.y can be thought of
# as modifying the linespacing, and offset.x as modifying the letter spacing.
offset:
x: 0
y: 0
# Glyph offset determines the locations of the glyphs within their cells with
# the default being at the bottom. Increase the x offset to move the glyph to
# the right, increase the y offset to move the glyph upward.
glyph_offset:
x: 0
y: 0
# Should display the render timer
debug.render_timer: false
# https://github.com/catppuccin/alacritty
colors:
primary:
background: "#1E1E2E" # base
foreground: "#CDD6F4" # text
# Bright and dim foreground colors
dim_foreground: "#CDD6F4" # text
bright_foreground: "#CDD6F4" # text
# Cursor colors
cursor:
text: "#1E1E2E" # base
cursor: "#F5E0DC" # rosewater
vi_mode_cursor:
text: "#1E1E2E" # base
cursor: "#B4BEFE" # lavender
# Search colors
search:
matches:
foreground: "#1E1E2E" # base
background: "#A6ADC8" # subtext0
focused_match:
foreground: "#1E1E2E" # base
background: "#A6E3A1" # green
footer_bar:
foreground: "#1E1E2E" # base
background: "#A6ADC8" # subtext0
# Keyboard regex hints
hints:
start:
foreground: "#1E1E2E" # base
background: "#F9E2AF" # yellow
end:
foreground: "#1E1E2E" # base
background: "#A6ADC8" # subtext0
# Selection colors
selection:
text: "#1E1E2E" # base
background: "#F5E0DC" # rosewater
# Normal colors
normal:
black: "#45475A" # surface1
red: "#F38BA8" # red
green: "#A6E3A1" # green
yellow: "#F9E2AF" # yellow
blue: "#89B4FA" # blue
magenta: "#F5C2E7" # pink
cyan: "#94E2D5" # teal
white: "#BAC2DE" # subtext1
# Bright colors
bright:
black: "#585B70" # surface2
red: "#F38BA8" # red
green: "#A6E3A1" # green
yellow: "#F9E2AF" # yellow
blue: "#89B4FA" # blue
magenta: "#F5C2E7" # pink
cyan: "#94E2D5" # teal
white: "#A6ADC8" # subtext0
# Dim colors
dim:
black: "#45475A" # surface1
red: "#F38BA8" # red
green: "#A6E3A1" # green
yellow: "#F9E2AF" # yellow
blue: "#89B4FA" # blue
magenta: "#F5C2E7" # pink
cyan: "#94E2D5" # teal
white: "#BAC2DE" # subtext1
indexed_colors:
- { index: 16, color: "#FAB387" }
- { index: 17, color: "#F5E0DC" }
# Visual Bell
#
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
# rung, the terminal background will be set to white and transition back to the
# default background color. You can control the rate of this transition by
# setting the `duration` property (represented in milliseconds). You can also
# configure the transition function by setting the `animation` property.
#
# Possible values for `animation`
# `Ease`
# `EaseOut`
# `EaseOutSine`
# `EaseOutQuad`
# `EaseOutCubic`
# `EaseOutQuart`
# `EaseOutQuint`
# `EaseOutExpo`
# `EaseOutCirc`
# `Linear`
#
# To completely disable the visual bell, set its duration to 0.
#
# visual_bell:
# animation: EaseOutExpo
# duration: 0
# Key bindings
#
# Each binding is defined as an object with some properties. Most of the
# properties are optional. All of the alphabetical keys should have a letter for
# the `key` value such as `V`. Function keys are probably what you would expect
# as well (F1, F2, ..). The number keys above the main keyboard are encoded as
# `Key1`, `Key2`, etc. Keys on the number pad are encoded `Number1`, `Number2`,
# etc. These all match the glutin::VirtualKeyCode variants.
#
# Possible values for `mods`
# `Command`, `Super` refer to the super/command/windows key
# `Control` for the control key
# `Shift` for the Shift key
# `Alt` and `Option` refer to alt/option
#
# mods may be combined with a `|`. For example, requiring control and shift
# looks like:
#
# mods: Control|Shift
#
# The parser is currently quite sensitive to whitespace and capitalization -
# capitalization must match exactly, and piped items must not have whitespace
# around them.
#
# Either an `action`, `chars`, or `command` field must be present.
# `action` must be one of `Paste`, `PasteSelection`, `Copy`, or `Quit`.
# `chars` writes the specified string every time that binding is activated.
# These should generally be escape sequences, but they can be configured to
# send arbitrary strings of bytes.
# `command` must be a map containing a `program` string, and `args` array of
# strings. For example:
# - { ... , command: { program: "alacritty", args: ["-e", "vttest"] } }
key_bindings:
- { key: V, mods: Command, action: Paste }
- { key: C, mods: Command, action: Copy }
- { key: Q, mods: Command, action: Quit }
- { key: W, mods: Command, action: Quit }
- { key: N, mods: Command, action: SpawnNewInstance }
- { key: Home, chars: "\eOH", mode: AppCursor }
- { key: Home, chars: "\e[1~", mode: ~AppCursor }
- { key: End, chars: "\eOF", mode: AppCursor }
- { key: End, chars: "\e[4~", mode: ~AppCursor }
- { key: PageUp, mods: Shift, chars: "\e[5;2~" }
- { key: PageUp, mods: Control, chars: "\e[5;5~" }
- { key: PageUp, chars: "\e[5~" }
- { key: PageDown, mods: Shift, chars: "\e[6;2~" }
- { key: PageDown, mods: Control, chars: "\e[6;5~" }
- { key: PageDown, chars: "\e[6~" }
- { key: Left, mods: Shift, chars: "\e[1;2D" }
- { key: Left, mods: Control, chars: "\e[1;5D" }
- { key: Left, mods: Alt, chars: "\e[1;3D" }
- { key: Left, chars: "\e[D", mode: ~AppCursor }
- { key: Left, chars: "\eOD", mode: AppCursor }
- { key: Right, mods: Shift, chars: "\e[1;2C" }
- { key: Right, mods: Control, chars: "\e[1;5C" }
- { key: Right, mods: Alt, chars: "\e[1;3C" }
- { key: Right, chars: "\e[C", mode: ~AppCursor }
- { key: Right, chars: "\eOC", mode: AppCursor }
- { key: Up, mods: Shift, chars: "\e[1;2A" }
- { key: Up, mods: Control, chars: "\e[1;5A" }
- { key: Up, mods: Alt, chars: "\e[1;3A" }
- { key: Up, chars: "\e[A", mode: ~AppCursor }
- { key: Up, chars: "\eOA", mode: AppCursor }
- { key: Down, mods: Shift, chars: "\e[1;2B" }
- { key: Down, mods: Control, chars: "\e[1;5B" }
- { key: Down, mods: Alt, chars: "\e[1;3B" }
- { key: Down, chars: "\e[B", mode: ~AppCursor }
- { key: Down, chars: "\eOB", mode: AppCursor }
- { key: Tab, mods: Shift, chars: "\e[Z" }
- { key: F1, chars: "\eOP" }
- { key: F2, chars: "\eOQ" }
- { key: F3, chars: "\eOR" }
- { key: F4, chars: "\eOS" }
- { key: F5, chars: "\e[15~" }
- { key: F6, chars: "\e[17~" }
- { key: F7, chars: "\e[18~" }
- { key: F8, chars: "\e[19~" }
- { key: F9, chars: "\e[20~" }
- { key: F10, chars: "\e[21~" }
- { key: F11, chars: "\e[23~" }
- { key: F12, chars: "\e[24~" }
- { key: Back, chars: "" }
- { key: Back, mods: Alt, chars: "\e" }
- { key: Insert, chars: "\e[2~" }
- { key: Delete, chars: "\e[3~" }
# shortcuts for tmux. the leader key is control-b (0x02)
- { key: W, mods: Command, chars: "\x02&" } # close tab (kill)
- { key: T, mods: Command, chars: "\x02c" } # new tab
- { key: RBracket, mods: Command|Shift, chars: "\x02n" } # select next tab
- { key: LBracket, mods: Command|Shift, chars: "\x02p" } # select previous tab
- { key: RBracket, mods: Command, chars: "\x02o" } # select next pane
- { key: LBracket, mods: Command, chars: "\x02;" } # select last (previously used) pane
- { key: F, mods: Command, chars: "\x02/" } # search (upwards) (see tmux.conf)
# Mouse bindings
#
# Currently doesn't support modifiers. Both the `mouse` and `action` fields must
# be specified.
#
# Values for `mouse`:
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# Values for `action`:
# - Paste
# - PasteSelection
# - Copy (TODO)
mouse_bindings:
- { mouse: Middle, action: PasteSelection }
mouse:
double_click: { threshold: 300 }
triple_click: { threshold: 300 }
selection:
semantic_escape_chars: ',│`|:"'' ()[]{}<>'
# Shell
#
# You can set shell.program to the path of your favorite shell, e.g. /bin/fish.
# Entries in shell.args are passed unmodified as arguments to the shell.
#
#shell:
# program: /bin/bash
# args:
# - --login

View File

@@ -0,0 +1,40 @@
# TokyoNight Alacritty Colors: Day
# Default colors
[colors.primary]
background = '#e1e2e7'
foreground = '#3760bf'
#[colors.cursor]
#cursor = '#3760bf'
#text = '#e1e2e7'
# Normal colors
[colors.normal]
black = '#e9e9ed'
red = '#f52a65'
green = '#587539'
yellow = '#8c6c3e'
blue = '#2e7de9'
magenta = '#9854f1'
cyan = '#007197'
white = '#6172b0'
# Bright colors
[colors.bright]
black = '#a1a6c5'
red = '#f52a65'
green = '#587539'
yellow = '#8c6c3e'
blue = '#2e7de9'
magenta = '#9854f1'
cyan = '#007197'
white = '#3760bf'
# Indexed Colors
[[colors.indexed_colors]]
index = 16
color = '#b15c00'
[[colors.indexed_colors]]
index = 17
color = '#c64343'

View File

@@ -0,0 +1,40 @@
# TokyoNight Alacritty Colors: Storm
# Default colors
[colors.primary]
background = '#24283b'
foreground = '#c0caf5'
#[colors.cursor]
#cursor = '#c0caf5'
#text = '#24283b'
# Normal colors
[colors.normal]
black = '#1d202f'
red = '#f7768e'
green = '#9ece6a'
yellow = '#e0af68'
blue = '#7aa2f7'
magenta = '#bb9af7'
cyan = '#7dcfff'
white = '#a9b1d6'
# Bright colors
[colors.bright]
black = '#414868'
red = '#f7768e'
green = '#9ece6a'
yellow = '#e0af68'
blue = '#7aa2f7'
magenta = '#bb9af7'
cyan = '#7dcfff'
white = '#c0caf5'
# Indexed Colors
[[colors.indexed_colors]]
index = 16
color = '#ff9e64'
[[colors.indexed_colors]]
index = 17
color = '#db4b4b'

View File

@@ -1,49 +1,119 @@
#!/usr/bin/env bash
# shellcheck source="../scripts/shared.sh"
# shellcheck disable=1091,2139
source "$DOTFILES/scripts/shared.sh"
# Get installed php versions from brew and setup aliases
function x-set-php-aliases
{
have brew && {
local php_versions=()
while IFS="" read -r line; do php_versions+=("$line"); done < <(brew list | grep '^php')
# Color the grep output
alias grep="grep --color"
php_error_reporting='-d error_reporting=22527'
for version in "${php_versions[@]}"; do
# drop the dot from version (8.0 -> 80)
local php_abbr="${version//\./}"
# replace "php@" with "p" so "php@80" becomes "p80"
local php_alias="${php_abbr//php@/p}"
# Fetch the exec path once
php_exec="$(brew --prefix "$version")/bin/php"
# Raw PHP without error_reporting flag.
# shellcheck disable=SC2139
alias "${php_alias}"r="$php_exec"
# PHP with error_reporting flag.
# shellcheck disable=SC2139,SC2140
alias "$php_alias"="$php_exec $php_error_reporting"
# Local PHP Server.
# shellcheck disable=SC2139,SC2140
alias "${php_alias}s"="$php_exec -S localhost:9000"
# Use composer with specific PHP and error_reporting flag on.
# shellcheck disable=SC2139,SC2140
alias "${php_alias}c"="$php_exec $php_error_reporting $(which composer)"
done
}
x-have eza && {
alias ls="eza -h -s=type --git --icons --group-directories-first"
}
# Easier navigation: .., ..., ....
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
# Get git repository root path
get_git_root()
{
# check that we are in a git repository
if git rev-parse --is-inside-work-tree &> /dev/null; then
git rev-parse --show-toplevel
else
>&2 msgr err "Not in a git repository"
fi
}
# cd to git root directory
alias cdgr='cd "$(get_git_root)"'
# interesting folders, and shortcuts
alias .='cd $HOME'
alias .b='cd $XDG_BIN_HOME'
alias .c='cd $HOME/Code'
alias .d='cd $DOTFILES'
alias .l='cd $HOME/.local'
alias .o='cd $HOME/Code/ivuorinen/obsidian/'
# Shortcuts for listing
alias ll="ls -la"
alias l="ls -a"
# Prevent common typos
alias cd..="cd .."
alias sl="ls"
# IP addresses
alias x-ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en1"
alias ips="ifconfig -a | grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\|[a-fA-F0-9:]\+\)' | sed -e 's/inet6* //' | sort"
# Show/hide hidden files in Finder
alias show="defaults write com.apple.finder AppleShowAllFiles -bool true; killall Finder"
alias hide="defaults write com.apple.finder AppleShowAllFiles -bool false; killall Finder"
# Pipe public key to clipboard.
alias pubkey="more ~/.ssh/id_rsa.pub | pbcopy | echo '=> Public key copied to pasteboard.'"
# Flush Directory Service cache
alias flush="dscacheutil -flushcache"
# Update locatedb
alias updatedb="sudo /usr/libexec/locate.updatedb"
# Date helpers
alias isodate="date +'%Y-%m-%d'"
alias x-datetime="date +'%Y-%m-%d %H:%M:%S'"
alias x-timestamp="date +'%s'"
# nvim aliases
alias vi='nvim'
alias vim='nvim'
# xdg-ninja aliases for better experience
alias xdg='xdg-ninja --skip-ok --skip-unsupported'
# watch with: differences, precise, beep and color
alias watchx='watch -dpbc'
# delete .DS_Store files
alias zapds='find . -name ".DS_Store" -print -delete'
# Recursively delete `.pyc` files
alias zappyc="find . -type f -name '*.pyc' -ls -delete"
# Run all zaps
alias zapall="zapds && zappyc"
# directory usage, return only the total
alias dn='du -chd1'
# Mirror site with wget
alias mirror_site='wget -m -k -K -E -e robots=off'
# Mirror stdout to stderr, useful for seeing data going through a pipe
alias peek='tee >(cat 1>&2)'
# Runs Gitlab code quality scanner
alias code_scanner='docker run
--env SOURCE_CODE="$PWD"
--volume "${PWD}":/code
--volume /var/run/docker.sock:/var/run/docker.sock
registry.gitlab.com/gitlab-org/ci-cd/codequality:"${CODEQUALITY_VERSION:-latest}"
/code'
# Runs trivy container image scanner
alias trivy_scan='docker run -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/Library/Caches:/root/.cache/ aquasec/trivy'
# Opens dotfiles with $EDITOR
alias zedit='$EDITOR ~/.dotfiles'
# Open irssi with my configurations
alias irssi='irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_CONFIG_HOME/irssi'
# Configures wget to use correct wget-hsts file
alias wget='wget --hsts-file=$XDG_DATA_HOME/wget-hsts'
# Configures svn to use correct config directory
alias svn='svn --config-dir $XDG_CONFIG_HOME/subversion'
# Laravel artisan shortcut
alias art='[ -f artisan ] && php artisan || php vendor/bin/artisan'
# Laravel Sail shortcut
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
if [[ $(uname) == 'Darwin' ]]; then
x-set-php-aliases
# Laravel Sail shortcut
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
# Flush Directory Service cache
alias flushdns="sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder"
@@ -51,44 +121,20 @@ if [[ $(uname) == 'Darwin' ]]; then
alias afk="osascript -e 'tell application \"System Events\" to keystroke \"q\" using {command down,control down}'"
# Empty the Trash on all mounted volumes and the main HDD
# Also, clear Apples System Logs to improve shell startup speed
# Also, clear Apple's System Logs to improve shell startup speed
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
# Using herd for php now, so this is not needed anymore
# x-set-php-aliases
fi
# tmux: automatically attach or create session with name 'main'
alias tmux='tmux new-session -A -s main'
# tmux: attach or create new session
alias ta='tmux attach || tmux'
# watch with: differences, precise, beep and color
alias watchx='watch -dpbc'
# delete .DS_Store files
alias zapds='find . -name ".DS_Store" -print -delete'
# tail with follow flag on
alias t='tail -f'
# directory usage, return only the total
alias dn='du -chd1'
# Mirror site with wget
alias mirror_site='wget -m -k -K -E -e robots=off'
# Mirror stdout to stderr, useful for seeing data going through a pipe
alias peek='tee >(cat 1>&2)'
alias code_scanner='docker run
--env SOURCE_CODE="$PWD"
--volume "${PWD}":/code
--volume /var/run/docker.sock:/var/run/docker.sock
registry.gitlab.com/gitlab-org/ci-cd/codequality:"${CODEQUALITY_VERSION:-latest}"
/code'
alias zedit='$EDITOR ~/.dotfiles'
have irssi \
&& alias irssi="irssi --config='$IRSSI_CONFIG_FILE' --home='$IRSSI_CONFIG_HOME'"
if [[ -f "$HOME/.aliases.local" ]]; then
# shellcheck disable=SC1091
source "$HOME/.aliases.local"
fi
alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts"
alias svn="svn --config-dir $XDG_CONFIG_HOME/subversion"
X_ALIAS_FILES=(
"$HOME/.config/alias-secret"
"$HOME/.config/alias-$(hostname)"
"$HOME/.config/alias-$(hostname)-secret"
)
for aliasFile in "${X_ALIAS_FILES[@]}"; do
# shellcheck source=$HOME/.config/alias-secret
[ -f "$aliasFile" ] && source "$aliasFile" && msgr ok "Sourced $aliasFile"
done
unset X_ALIAS_FILES

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env bash
# Setting aliases for tunkki
alias nvim="/snap/nvim/current/usr/bin/nvim"

View File

@@ -0,0 +1,364 @@
---
# Default settings for amethyst
# Repo: `https://github.com/ianyh/Amethyst`
#
# Note due to issue 1419 (https://github.com/ianyh/Amethyst/issues/1419) some
# config values may conflict and not work if they are the same as the default
# values for amathyst. You can see these values on GitHub at
# https://github.com/ianyh/Amethyst/blob/development/Amethyst/default.amethyst
# If you're experiencing conflicts and the settings are the same as the default,
# comment out the commands in this file.
#
# Move this file to: `~/.amethyst.yml`
# In order to register changes restart Amethyst.
# If you experience issues pulling in the changes you can also
# quit Amethyst and run: `defaults delete com.amethyst.Amethyst.plist`
# This removes the current preferences and causes Amethyst to restart
# with default preferences and pull configs from this file.
# layouts - Ordered list of layouts to use by layout key
# (default tall, wide, fullscreen, and column).
layouts:
- bsp
- tall
# - fullscreen
# - tall-right
# - wide
# - two-pane
# - middle-wide
- 3column-left
# - 3column-middle
# - 3column-right
# - 4column-left
# - 4column-right
# - column
# - row
# - floating
- widescreen-tall
# - widescreen-tall-right
# - bsp
# First mod (default option + shift).
mod1:
- option
- shift
# - control
# - command
# Second mod (default option + shift + control).
mod2:
- option
- shift
- control
# - command
# Commands:
# special key values
# space
# enter
# up
# right
# down
# left
# special characters require quotes
# '.'
# ','
# Move to the next layout in the list.
cycle-layout:
mod: mod1
key: space
# Move to the previous layout in the list.
cycle-layout-backward:
mod: mod2
key: space
# Shrink the main pane by a percentage of the screen
# dimension as defined by window-resize-step.
# Note that not all layouts respond to this command.
shrink-main:
mod: mod1
key: h
# Expand the main pane by a percentage of the screen dimension
# as defined by window-resize-step. Note that not all layouts
# respond to this command.
expand-main:
mod: mod1
key: l
# Increase the number of windows in the main pane.
# Note that not all layouts respond to this command.
increase-main:
mod: mod1
key: ','
# Decrease the number of windows in the main pane.
# Note that not all layouts respond to this command.
decrease-main:
mod: mod1
key: '.'
# General purpose command for custom layouts.
# Functionality is layout-dependent.
# command1:
# mod: <NONE>
# key: <NONE>
# General purpose command for custom layouts.
# Functionality is layout-dependent.
# command2:
# mod: <NONE>
# key: <NONE>
# General purpose command for custom layouts.
# Functionality is layout-dependent.
# command3:
# mod: <NONE>
# key: <NONE>
# General purpose command for custom layouts.
# Functionality is layout-dependent.
# command4:
# mod: <NONE>
# key: <NONE>
# Focus the next window in the list going counter-clockwise.
focus-ccw:
mod: mod1
key: j
# Focus the next window in the list going clockwise.
focus-cw:
mod: mod1
key: k
# Focus the main window in the list.
focus-main:
mod: mod1
key: m
# Focus the next screen in the list going counter-clockwise.
focus-screen-ccw:
mod: mod1
key: p
# Focus the next screen in the list going clockwise.
focus-screen-cw:
mod: mod1
key: n
# Move the currently focused window onto the next
# screen in the list going counter-clockwise.
swap-screen-ccw:
mod: mod2
key: h
# Move the currently focused window onto the next
# screen in the list going clockwise.
swap-screen-cw:
mod: mod2
key: l
# Swap the position of the currently focused window with
# the next window in the list going counter-clockwise.
swap-ccw:
mod: mod2
key: j
# Swap the position of the currently focused window with
# the next window in the list going clockwise.
swap-cw:
mod: mod2
key: k
# Swap the position of the currently focused window
# with the main window in the list.
swap-main:
mod: mod1
key: enter
# 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-<screen-number>:
# mod: mod1
# key: y
# Move the currently focused window to the n-th screen;
# e.g., throw-screen-3 will move the window to the 3rd screen.
# throw-screen-n:
# throw-screen-<screen-number>:
# mod: mod1
# key: u
# Move the currently focused window to the n-th space;
# e.g., throw-space-3 will move the window to the 3rd space.
# throw-space-<screen-number>:
# mod: mod1
# key: i
# Select tall layout
#select-tall-layout:
# mod: mod1
# key: a
# Select wide layout
#select-wide-layout:
# mod: mod1
# key: s
# Select fullscreen layout
select-fullscreen-layout:
mod: mod1
key: d
# Select column layout
select-column-layout:
mod: mod1
key: f
# Move the currently focused window to the space to the left.
throw-space-left:
mod: mod2
key: left
# Move currently the focused window to the space to the right.
throw-space-right:
mod: mod2
key: right
# Toggle the floating state of the currently focused window;
# i.e., if it was floating make it tiled and if it was
# tiled make it floating.
toggle-float:
mod: mod1
key: t
# Display the layout HUD with the current layout on each screen.
display-current-layout:
mod: mod1
key: i
# Turn on or off tiling entirely.
toggle-tiling:
mod: mod1
key: t
# Rerun the current layout's algorithm.
reevaluate-windows:
mod: mod1
key: z
# Turn on or off focus-follows-mouse.
toggle-focus-follows-mouse:
mod: mod2
key: x
# Automatically quit and reopen Amethyst.
relaunch-amethyst:
mod: mod2
key: z
# disable screen padding on builtin display
disable-padding-on-builtin-display: false
# Boolean flag for whether to add margins between
# windows (default false).
window-margins: false
# Boolean flag for whether to set window margins if there is
# only one window on the screen, assuming window margins
# are enabled (default false).
smart-window-margins: true
# # Add 10px margin between windows
# window-margins: true
# window-margin-size: 5
# The size of the margins between windows (in px, default 0).
window-margin-size: 0
# The max number of windows that may be visible on a screen
# at one time before additional windows are minimized.
# A value of 0 disables the feature.
window-max-count: 0
# The smallest height that a window can be sized to
# regardless of its layout frame (in px, default 0).
window-minimum-height: 0
# The smallest width that a window can be sized to
# regardless of its layout frame (in px, default 0)
window-minimum-width: 0
# List of bundle identifiers for applications to either be automatically
# floating or automatically tiled based on floating-is-blacklist (default []).
floating: []
# Boolean flag determining behavior of the floating list.
# true if the applications should be floating and all others tiled.
# false if the applications should be tiled and all others floating (default true).
floating-is-blacklist: false
# true if screen frames should exclude the status bar.
# false if the screen frames should include the status bar (default false).
ignore-menu-bar: false
# true if windows smaller than a 500px square should
# be floating by default (default true)
float-small-windows: true
# true if the mouse should move position to the center of a window
# when it becomes focused (default false).
# Note that this is largely incompatible with focus-follows-mouse.
mouse-follows-focus: false
# true if the windows underneath the mouse should become focused as
# the mouse moves (default false). Note that this is largely
# incompatible with mouse-follows-focus
focus-follows-mouse: false
# true if dragging and dropping windows on to each other
# should swap their positions (default false).
mouse-swaps-windows: true
# true if changing the frame of a window with the mouse should update the
# layout to accommodate the change (default false).
# Note that not all layouts will be able to respond to the change.
mouse-resizes-windows: true
# true to display the name of the layout when a new layout is selected (default true).
enables-layout-hud: true
# true to display the name of the layout when moving to a new space (default true).
enables-layout-hud-on-space-change: true
# true to get updates to beta versions of the software (default false).
use-canary-build: false
# true to insert new windows into the first position and
# false to insert new windows into the last position (default false).
new-windows-to-main: false
# true to automatically move to a space when throwing a window to it (default true).
follow-space-thrown-windows: true
# The integer percentage of the screen dimension to increment
# and decrement main pane ratios by (default 5).
window-resize-step: 5
# Padding to apply between windows and the left edge of the screen (in px, default 0).
screen-padding-left: 0
# Padding to apply between windows and the right edge of the screen (in px, default 0).
screen-padding-right: 0
# Padding to apply between windows and the top edge of the screen (in px, default 0).
screen-padding-top: 0
# Padding to apply between windows and the bottom edge of the screen (in px, default 0).
screen-padding-bottom: 0
# true to maintain layout state across application executions (default true).
restore-layouts-on-launch: true
# true to display some optional debug information in the layout HUD (default false).
debug-layout-info: true

View File

@@ -0,0 +1,35 @@
/**
* Almost Maximize
* Almost maximizes the window to the screen, leaving a small margin.
*
* @author Ville Viklund <https://github.com/ville6000>
*
* @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) => {
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 => {
windowFrames[window.id] = {
Y: screenFrame.y + y,
x: screenFrame.x + x,
width,
height,
}
})
return windowFrames
},
}
}

3
config/asdf-direnv/zshrc Normal file
View File

@@ -0,0 +1,3 @@
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
export ASDF_DIRENV_BIN="$(asdf where direnv)/bin/direnv"
eval "$($ASDF_DIRENV_BIN hook zsh)"

5
config/asdf/asdfrc Normal file
View File

@@ -0,0 +1,5 @@
# See the docs for explanations: https://asdf-vm.com/manage/configuration.html
legacy_version_file=yes
use_release_candidates=no
concurrency=auto

View File

@@ -0,0 +1,25 @@
// A cargo subcommand for checking and applying
// updates to installed executables
cargo-update
// Cargo cache management utility
cargo-cache
// An incremental parsing system for programming tools
tree-sitter-cli
// a subprocess caching utility
bkt
// a structural diff that understands syntax
difftastic
// A simple, fast and user-friendly alternative to 'find'
fd-find
// recursively searches directories for a
// regex pattern while respecting your gitignore
ripgrep
// A version manager for neovim
bob-nvim
// bottom, btm - A cross-platform graphical process/system monitor with
// a customizable interface and a multitude of features.
bottom
// A modern alternative to ls
eza
// Tmux Sessionizer: A tool for opening git repositories as tmux sessions
tmux-sessionizer

1
config/asdf/gem-packages Normal file
View File

@@ -0,0 +1 @@
bundler

View File

@@ -0,0 +1,21 @@
// These are golang packages I use,
// so they should be available with all versions
// Git Profile allows you to switch between user profiles in git repos
github.com/dotzero/git-profile@v1.4.0
// An extensible command line tool or library to format yaml files.
github.com/google/yamlfmt/cmd/yamlfmt@v0.13.0
// Parsing HTML at the command line
github.com/ericchiang/pup@v0.4.0
// HTML to Markdown converter
github.com/suntong/html2md@v1.5.0
// cheat allows you to create and view interactive cheatsheets on the cli.
github.com/cheat/cheat/cmd/cheat@4.4.2
// Render markdown on the CLI, with pizzazz! 💅
github.com/charmbracelet/glow@v1.5.1
// Static checker for GitHub Actions workflow files
github.com/rhysd/actionlint/cmd/actionlint@v1.7.1
// Cleans up your $HOME from those pesky dotfiles
github.com/doron-cohen/antidot@v0.6.3
// FZF is a general-purpose command-line fuzzy finder.
github.com/junegunn/fzf@latest

7
config/asdf/npm-packages Normal file
View File

@@ -0,0 +1,7 @@
blade-formatter
corepack
editorconfig-checker
github-release-notes
neovim
npm
stylelint-lsp

View File

@@ -0,0 +1,20 @@
1password-cli https://github.com/NeoHsu/asdf-1password-cli.git f5d5aab
age https://github.com/threkk/asdf-age.git 396bdf6
asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git b5862c1
direnv https://github.com/asdf-community/asdf-direnv.git 6ff3dbe
dotenv-linter https://github.com/wesleimp/asdf-dotenv-linter.git 1369f53
editorconfig-checker https://github.com/gabitchov/asdf-editorconfig-checker.git 585c1d5
fd https://gitlab.com/wt0f/asdf-fd.git 17d56e0
github-cli https://github.com/bartlomiejdanek/asdf-github-cli.git e0605b7
golang https://github.com/asdf-community/asdf-golang.git e2527a3
hadolint https://github.com/devlincashman/asdf-hadolint.git c8eb88b
kubectl https://github.com/asdf-community/asdf-kubectl.git 2fb3b57
pre-commit https://github.com/jonathanmorley/asdf-pre-commit.git 26bfc42
ripgrep https://gitlab.com/wt0f/asdf-ripgrep.git e836665
rust https://github.com/code-lever/asdf-rust.git 95acf4f
shellcheck https://github.com/luizm/asdf-shellcheck.git 66200ff
shfmt https://github.com/luizm/asdf-shfmt.git a42c5ff
terragrunt https://github.com/ohmer/asdf-terragrunt.git 29f2935
tf-summarize https://github.com/adamcrews/asdf-tf-summarize.git 880ad26
yamllint https://github.com/ericcornelissen/asdf-yamllint.git e4cfb17
yq https://github.com/sudermanjr/asdf-yq.git 772992f

View File

@@ -0,0 +1,4 @@
ansible
pipenv
neovim
libtmux

View File

@@ -0,0 +1,73 @@
---
tags: [printf, bash, zsh]
---
# printf
The printf command accepts the following syntax:
`printf [-v var] [format specifiers] [arguments]`
- [-v var]
The optional -v flag assigns the output to the [var]
variable instead of printing it in standard output.
- [format specifiers]
Format specifiers are strings that determine the methods of
formatting specifiers. The following section includes a
list of accepted specifiers.
- [arguments]
Arguments can be any value or variable, and the [format specifiers]
point to the [arguments]. If there are more arguments than format
specifiers, the format string is reused until it interprets
the last argument.
If there are fewer format specifiers than arguments, number formats
are set to zero (0), while string formats are set to null (empty).
## printf Specifiers
Format Description
------ -----------
%c Treat the arguments as a single character.
%d Treat the input as a decimal (integer) number (base 10).
%e Treats the input as an exponential floating-point number.
%f Treat the input as a floating-point number.
%i Treat the input as an integer number (base 10).
%o Treats the input as an octal number (base 8).
%s Treat the input as a string of characters.
%u Treat the input as an unsigned decimal (integer) number.
%x Treats the input as a hexadecimal number (base 16).
%% Print a percent sign.
%Wd Print the W integer X digits wide.
%(format)T Outputs a date-time string resulting from using format as a
format string for strftime. The corresponding argument can
be the number of seconds since Epoch (January 1, 1970, 00:00),
-1 (the current time), or -2 (shell startup time).
Not specifying an argument uses the current time as the default value.
\% Print a percent sign.
\n Prints a newline character.
\t Print a tab character.
Some format specifiers accept format modifiers that modify their actions.
Enter the modifiers between the % character and the character that
specifies the format.
Available format modifiers are:
<N>. Enter a number that specifies a minimum field width.
If the output text is shorter, it's padded with spaces.
If the text is longer, the field expands.
. (dot). When used with a field width modifier, the field doesn't
expand for longer text. Instead, the text is truncated.
-. Left-aligns the printed text. The default alignment is right.
0. Pads the numbers with zeros instead of spaces.
<space>. Pads a positive number with a space, and a negative
number with a minus (-).
+. Prints all numbers signed (+ for positive, - for negative).
'. For decimal conversions, applies the thousands grouping
separator to the integer portion of the output according
to the current LC_NUMERIC file.

View File

@@ -1,12 +1,13 @@
---
# The editor to use with 'cheat -e <sheet>'. Defaults to $EDITOR or $VISUAL.
# editor: $EDITOR
# Should 'cheat' always colorize output?
colorize: true
colorize: false
# Which 'chroma' colorscheme should be applied to the output?
# Options are available here:
# https://github.com/alecthomas/chroma/tree/master/styles
style: "catppuccin"
# style: 'tokyonight-day'
# Which 'chroma' "formatter" should be applied?
# One of: "terminal", "terminal256", "terminal16m"
formatter: terminal256
@@ -37,7 +38,7 @@ pager: less -FRX
#
# This is very useful when you would like to maintain, for example, a
# "pristine" repository of community cheatsheets on one cheatpath, and an
# editable personal reponsity of cheatsheets on another cheatpath.
# editable personal repository of cheatsheets on another cheatpath.
#
# Cheatpaths can be also configured to automatically apply tags to cheatsheets
# on certain paths, which can be useful for querying purposes.
@@ -60,20 +61,20 @@ cheatpaths:
path: ~/.config/cheat/cheatsheets/community
tags: [community]
readonly: true
- name: pure-bash-bible
path: ~/.dotfiles/config/cheat/cheatsheets/pure-bash-bible
tags: [pure-bash-bible]
readonly: true
- name: tldr
path: ~/.dotfiles/config/cheat/cheatsheets/tldr/tldr
tags: [tldr]
readonly: true
# If you have personalized cheatsheets, list them last. They will take
# precedence over the more global cheatsheets.
- name: personal
path: ~/.dotfiles/config/cheat/cheatsheets/personal
tags: [personal]
readonly: false
- name: pure-bash-bible
path: ~/.dotfiles/config/cheat/cheatsheets/pure-bash-bible
tags: [pure-bash-bible]
readonly: true
- name: tldr
path: ~/.dotfiles/config/cheat/cheatsheets/tldr
tags: [tldr]
readonly: true
# While it requires no configuration here, it's also worth noting that
# cheat will automatically append directories named '.cheat' within the

13
config/direnv/direnv.toml Normal file
View File

@@ -0,0 +1,13 @@
[global]
disable_stdin = false
load_dotenv = true
hide_env_diff = false
[whitelist]
prefix = [
"~/Code/"
]
exact = [
"~/.dotfiles/.envrc"
]

View File

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

View File

@@ -2,33 +2,490 @@
# shellcheck shell=bash
# vim: filetype=zsh
export DOTFILES="$HOME/.dotfiles"
source "$DOTFILES/scripts/shared.sh"
path_append "$DOTFILES/local/bin"
# Explicitly set XDG folders
# Set XDG directories if not already set
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"
[ -z "$XDG_CONFIG_HOME" ] && export XDG_CONFIG_HOME="$HOME/.config"
[ -z "$XDG_DATA_HOME" ] && export XDG_DATA_HOME="$HOME/.local/share"
[ -z "$XDG_CACHE_HOME" ] && export XDG_CACHE_HOME="$HOME/.cache"
[ -z "$XDG_STATE_HOME" ] && export XDG_STATE_HOME="$HOME/.local/state"
[ -z "$XDG_BIN_HOME" ] && export XDG_BIN_HOME="$HOME/.local/bin"
[ -z "$XDG_RUNTIME_DIR" ] && export XDG_RUNTIME_DIR="$HOME/.local/run"
# custom variables
export XDG_BIN_HOME="$HOME/.local/bin"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="$HOME/.local/run"
# if DOTFILES is not set, set it to the default location
[ -z "$DOTFILES" ] && export DOTFILES="$HOME/.dotfiles"
path_append "/opt/homebrew/bin"
have brew && eval "$(brew shellenv)"
export PATH="$XDG_BIN_HOME:$DOTFILES/local/bin:$XDG_DATA_HOME/bob/nvim-bin:$XDG_DATA_HOME/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
path_append "/usr/local/bin"
path_append "$XDG_BIN_HOME"
if ! command -v msg &> /dev/null; then
# Function to print messages if VERBOSE is enabled
# $1 - message (string)
msg()
{
[[ $VERBOSE -eq 1 ]] && msgr msg "-> $1"
return 0
}
fi
# brew, https://brew.sh
have brew && {
have_brew python && path_append "$(brew --prefix python)/bin"
# Cache commands using bkt if installed
if command -v bkt &> /dev/null; then
bkt()
{
command bkt --cache-dir="$XDG_CACHE_HOME/bkt" "$@"
}
else
# If bkt isn't installed, skip its arguments and just execute directly.
# Optionally write a msg to stderr suggesting users install bkt.
bkt()
{
while [[ $1 == --* ]]; do shift; done
"$@"
}
fi
# Shorthand for checking if the system has the bin in path,
# this version does not use caching.
# Usage: have_command php && php -v
have_command()
{
[ -z "$1" ] && {
echo "Usage: have_command <command>"
return 1
}
command -v "$1" &> /dev/null
}
source "$DOTFILES/config/exports-shell"
source "$DOTFILES/config/exports-apps"
# Shorthand for checking if the system has the bin in path,
# this version uses caching.
# Usage: have php && php -v
have()
{
bkt -- which "$1" &> /dev/null
}
have nvim && export EDITOR="nvim"
# Function to run dark-notify and change alacritty theme
# It uses flock to prevent running multiple instances.
# Install flock with `brew install flock` on macOS.
darknotify_alacritty()
{
x-have flock && [[ -f /tmp/dark-notify-alacritty.lock ]] && return
x-have dark-notify && {
# subprocess is used to prevent the command from showing it was backgrounded
(
flock /tmp/dark-notify-alacritty.lock dark-notify \
-c "$HOME/.dotfiles/local/bin/x-change-alacritty-theme" &
) &> /dev/null
}
return 0
}
# darknotify_alacritty
# Function to list installed Homebrew packages using bkt caching
brew_installed()
{
bkt -- brew list
}
# Shorthand for checking if a Homebrew package is installed
# Usage: have_brew php && php -v
have_brew()
{
! have brew && return 125
if bkt -- brew list "$1" &> /dev/null; then
return 0
else
return 1
fi
}
# Alacritty preexec hook to update dynamic title
preexec()
{
print -n -P "\e]0;$1%~\a"
}
# Update dotfiles
dfu()
{
(
cd "$DOTFILES" && git rebase --ff --autostash && ./install
)
}
# Weather in Tampere, or other city
weather()
{
# https://github.com/chubin/wttr.in#usage
local city="${1:-Tampere}"
curl "http://wttr.in/${city// /+}?2nFQM&lang=fi"
}
# Docker
ssh_docker()
{
docker exec -it "$@" bash
}
# Rector project to php version 8.2 by default.
rector()
{
local php="${1:-82}"
docker run -v "$(pwd)":/project rector/rector:latest process \
"/project/" \
--set "php${php}" \
--autoload-file /project/vendor/autoload.php
}
# Commit everything
commit()
{
local commitMessage="$*"
if [ -z "$commitMessage" ]; then
commitMessage="Automated commit"
fi
git add .
git commit -a -m "$commitMessage"
}
scheduler()
{
while :; do
php artisan schedule:run
echo "Sleeping 60 seconds..."
sleep 60
done
}
# Run command silently
# Usage: silent uptime
silent()
{
"$@" >&/dev/null
}
# Check if a file contains non-ascii characters
nonascii()
{
LC_ALL=C grep -n '[^[:print:][:space:]]' "${@}"
}
# Remove non-ascii characters from string
# Usage: strip_nonascii "string"
strip_nonascii()
{
# shellcheck disable=SC2001
echo "$1" | LC_ALL=C sed 's/[^[:print:][:space:]]//g'
}
# Slugify a string
# Usage: slugify "string"
slugify()
{
echo "$1" | iconv -t ascii//TRANSLIT | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr '[:upper:]' '[:lower:]'
}
# https://stackoverflow.com/a/85932
fn_exists()
{
declare -f -F "$1" > /dev/null
return $?
}
# Creates a random string
rnd()
{
echo $RANDOM | md5sum | head -c 20
}
# return sha256sum for file
# $1 - filename (string)
get_sha256sum()
{
sha256sum "$1" | head -c 64
}
# Replaceable file
#
# $1 - filename (string)
# $2 - filename (string)
#
# Returns 1 when replaceable, 0 when not replaceable.
replacable()
{
FILE1="$1"
FILE2="$2"
[[ ! -r $FILE1 ]] && {
[[ $VERBOSE -eq 1 ]] && msgr err "File 1 ($FILE1) does not exist"
return 0
}
[[ ! -r $FILE2 ]] && {
[[ $VERBOSE -eq 1 ]] && msgr err "File 2 ($FILE2) does not exist, replaceable"
return 1
}
FILE1_HASH=$(get_sha256sum "$FILE1")
FILE2_HASH=$(get_sha256sum "$FILE2")
[[ $FILE1_HASH == "" ]] && {
[[ $VERBOSE -eq 1 ]] && msgr err "Could not get hash for file 1 ($FILE1)"
return 0
}
[[ $FILE2_HASH == "" ]] && {
[[ $VERBOSE -eq 1 ]] && msgr err "Could not get hash for file 2 ($FILE2), replaceable"
return 1
}
[[ $FILE1_HASH == "$FILE2_HASH" ]] && {
[[ $VERBOSE -eq 1 ]] && msgr ok "Files match, not replaceable: $FILE1"
return 0
}
[[ $VERBOSE -eq 1 ]] && msgr warn "Files do not match ($FILE1_HASH != $FILE2_HASH), replaceable"
return 1
}
export COMPLETION_WAITING_DOTS=true
# Bash completion file location
export BASH_COMPLETION_USER_FILE="${XDG_CONFIG_HOME}/bash-completion/bash_completion"
# History env variables
export HIST_STAMPS="yyyy-mm-dd"
export HISTFILE="${XDG_STATE_HOME}/zsh/history"
# Larger bash history (allow 32³ entries; default is 500)
export HISTSIZE=32768
export HISTFILESIZE=$HISTSIZE
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
export HISTCONTROL=ignoreboth
# Make some commands not show up in history
export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help"
# And include the parameter for ZSH
export HISTORY_IGNORE="(ls|cd|cd -|pwd|exit|date|* --help)"
# Less history location
export LESSHISTFILE="$XDG_STATE_HOME"/less/history
# Highlight section titles in manual pages
# export LESS_TERMCAP_md="$ORANGE"
# zsh autoloaded terminfo
# export TERMINFO="${XDG_DATA_HOME}/terminfo"
# export TERMINFO_DIRS="${XDG_DATA_HOME}/terminfo":/usr/share/terminfo
# Don't clear the screen after quitting a manual page
export MANPAGER="less -X"
# Always enable colored `grep` output
export GREP_OPTIONS="--color=auto"
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
hash shopt 2> /dev/null && shopt -s checkwinsize
# shellcheck disable=SC2155
export SHORT_HOST=$(hostname -s)
# asdf
# https://github.com/asdf-vm/asdf
msg "Setting up asdf configuration"
export ASDF_DIR="${HOME}/.local/asdf"
[[ -d $ASDF_DIR ]] && {
# [[ -d $ASDF_DIR/completions ]] && FPATH="$ASDF_DIR/completions:$FPATH"
# [[ -d $ASDF_DIR/plugins ]] && FPATH="$ASDF_DIR/plugins:$FPATH"
export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc"
export ASDF_DATA_DIR="${ASDF_DIR}"
export ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME="${XDG_CONFIG_HOME}/asdf/plugin-versions"
export ASDF_LOG_FILE="${XDG_CACHE_HOME}/asdf/asdf.log"
export ASDF_FORCE_PREPEND=yes
## Default package files
export ASDF_CRATE_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/cargo-packages"
export ASDF_GEM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/gem-packages"
export ASDF_GOLANG_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/golang-packages"
export ASDF_NPM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/npm-packages"
export ASDF_PYTHON_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/python-packages"
## Plugin configuration
export ASDF_DIRENV_IGNORE_MISSING_PLUGINS=1
export ASDF_GOLANG_MOD_VERSION_ENABLED=true
export ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY="latest_available"
## Add asdf to path
export PATH="${ASDF_DIR}/bin:${PATH}"
source "$ASDF_DIR/asdf.sh"
}
# Antidote configuration
# https://getantidote.github.io/
msg "Setting up Antidote configuration"
export ANTIDOTE_DIR="$DOTFILES/tools/antidote"
export ANTIDOTE_HOME="$XDG_CACHE_HOME/antidote"
export ANTIDOTE_PLUGINS="$XDG_CONFIG_HOME/zsh/antidote_plugins"
# Ansible configuration
# https://docs.ansible.com/ansible/latest/reference_appendices/config.html
msg "Setting up Ansible configuration"
export ANSIBLE_HOME="$XDG_CONFIG_HOME/ansible"
export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible.cfg"
export ANSIBLE_GALAXY_CACHE_DIR="$XDG_CACHE_HOME/ansible/galaxy_cache"
x-dc "$ANSIBLE_HOME"
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
# aws
# https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html
# https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
# https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html
msg "Setting up AWS configuration"
export AWS_CONFIG_FILE="${XDG_STATE_HOME}/aws/config"
export AWS_SHARED_CREDENTIALS_FILE="${XDG_STATE_HOME}/aws/credentials"
export AWS_DATA_PATH="${XDG_DATA_HOME}/aws"
export AWS_DEFAULT_REGION="eu-west-1"
export AWS_DEFAULT_OUTPUT="table"
export AWS_CONFIGURE_KEYS=true
export AWS_CONFIGURE_REGION=true
export AWS_CONFIGURE_OUTPUT=true
export AWS_CONFIGURE_PROFILE=true
export AWS_CONFIGURE_PROMPT=true
export AWS_CONFIGURE_PROMPT_DEFAULT="default"
# bob manages nvim versions
msg "Setting up bob configuration"
x-path-prepend "$XDG_DATA_HOME/bob/nvim-bin"
# bkt (shell command caching tool) configuration
msg "Setting up bkt configuration"
export BKT_TTL=1m
# brew, https://docs.brew.sh/Manpage
msg "Setting up Homebrew configuration"
export HOMEBREW_NO_ANALYTICS=true
export HOMEBREW_NO_ENV_HINTS=true
export HOMEBREW_BUNDLE_MAS_SKIP=true
export HOMEBREW_BUNDLE_FILE="$XDG_CONFIG_HOME/homebrew/Brewfile"
x-have brew && {
eval "$(brew shellenv)"
}
# composer, https://getcomposer.org/
msg "Setting up Composer configuration"
export COMPOSER_HOME="$XDG_STATE_HOME/composer"
export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin"
export PATH="$COMPOSER_BIN:$PATH"
# direnv, https://direnv.net/
# https://direnv.net/docs/hook.html
# Set the hook to show the direnv message in a different color
# export DIRENV_LOG_FORMAT=$'\033[2mdirenv: %s\033[0m'
export DIRENV_LOG_FORMAT=
# docker, https://docs.docker.com/engine/reference/commandline/cli/
msg "Setting up Docker configuration"
export DOCKER_CONFIG="${XDG_CONFIG_HOME}/docker"
x-dc "$DOCKER_CONFIG"
# Docker: Disable snyk ad
export DOCKER_SCAN_SUGGEST=false
# fzf
export FZF_BASE="${XDG_CONFIG_HOME}/fzf"
export FZF_DEFAULT_OPTS='--height 40% --tmux bottom,40% --layout reverse --border top'
# GnuPG
# https://gnupg.org/documentation/manuals/gnupg/Invoking-GPG.html
msg "Setting up GnuPG configuration"
export GNUPGHOME="${XDG_DATA_HOME}/gnupg"
# Go
# https://golang.org/doc/code.html
msg "Setting up Go configuration"
export GOPATH="$XDG_DATA_HOME/go"
export GOBIN="$XDG_BIN_HOME"
# Lando
export PATH="$HOME/.lando/bin${PATH+:$PATH}" #landopath
# NPM: Add npm packages to path
msg "Setting up NPM configuration"
x-have node && {
NVM_NODE_BIN_DIR="$(dirname "$(which node)")"
export PATH="$NVM_NODE_BIN_DIR:$PATH"
}
# oh-my-posh (omp) configuration
msg "Setting up oh-my-posh configuration"
export OHMYPOSH_CFG="$DOTFILES/config/omp/own.toml"
# op (1Password cli) is present
msg "Setting up 1Password CLI configuration"
export OP_CACHE="$XDG_STATE_HOME/1password"
# Python
#
# pyenv, python environments
msg "Setting up Python configuration"
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
## for MichaelAquilina/zsh-autoswitch-virtualenv
export AUTOSWITCH_VIRTUAL_ENV_DIR="$WORKON_HOME"
export PATH="$PYENV_ROOT/bin:$PYENV_ROOT/shims:$PATH"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
x-have pyenv && eval "$(pyenv init -)"
# Rust / cargo
msg "Setting up Rust/Cargo configuration"
export RUST_WITHOUT=rust-docs
# screen
# https://www.gnu.org/software/screen/manual/screen.html
msg "Setting up screen configuration"
export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"
# sonarlint
# https://www.sonarlint.org/
msg "Setting up Sonarlint configuration"
export SONARLINT_USER_HOME="$XDG_DATA_HOME/sonarlint"
# terraform
# https://www.terraform.io/docs/cli/config/config-file.html
# https://www.terraform.io/docs/cli/config/environment-variables.html
msg "Setting up Terraform configuration"
export TF_DATA_DIR="$XDG_STATE_HOME/terraform"
export TF_CLI_CONFIG_FILE="$XDG_CONFIG_HOME/terraform/terraformrc"
export TF_PLUGIN_CACHE_DIR="$XDG_CACHE_HOME/terraform/plugin-cache"
# tmux
# https://tmux.github.io/
msg "Setting up tmux configuration"
export TMUX_TMPDIR="$XDG_STATE_HOME/tmux"
export TMUX_CONF_DIR="$XDG_CONFIG_HOME/tmux"
export TMUX_PLUGINS="$TMUX_CONF_DIR/plugins"
export TMUX_CONF="$TMUX_CONF_DIR/tmux.conf"
## These settings are for zsh-tmux
export ZSH_TMUX_AUTOSTART=true
export ZSH_TMUX_CONFIG="$TMUX_CONF"
export ZSH_TMUX_UNICODE=true
export ZSH_TMUX_AUTOQUIT=false
export ZSH_TMUX_DEFAULT_SESSION_NAME=main
# tms, https://github.com/jrmoulton/tmux-sessionizer
export TMS_CONFIG_FILE="${XDG_CONFIG_HOME}/tms/config.toml"
# wakatime, https://github.com/wakatime/wakatime-cli
msg "Setting up Wakatime configuration"
export WAKATIME_HOME="$XDG_STATE_HOME/wakatime"
x-dc "$WAKATIME_HOME"
# Misc
msg "Setting up miscellaneous configuration"
export ZSHZ_DATA="$XDG_STATE_HOME/z"
export CHEAT_USE_FZF=true
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"
[ -f "$XDG_CONFIG_HOME/exports-$(hostname)" ] && source "$XDG_CONFIG_HOME/exports-$(hostname)"
[ -f "$XDG_CONFIG_HOME/exports-$(hostname)-secret" ] && source "$XDG_CONFIG_HOME/exports-$(hostname)-secret"

View File

@@ -1,148 +0,0 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# shellcheck enable=external-sources
# shellcheck disable=1091,2139
# vim: filetype=zsh
export DOTFILES="$HOME/.dotfiles"
source "$DOTFILES/scripts/shared.sh"
# Antigen configuration
# https://github.com/zsh-users/antigen/wiki/Configuration
export ADOTDIR="$XDG_DATA_HOME/antigen"
export ANTIGEN_SYSTEM_RECEIPT_F=".local/share/antigen/antigen_system_lastupdate"
export ANTIGEN_PLUGIN_RECEIPT_F=".local/share/antigen/antigen_plugin_lastupdate"
# Ansible configuration
# https://docs.ansible.com/ansible/latest/reference_appendices/config.html
export ANSIBLE_HOME="$XDG_CONFIG_HOME/ansible"
export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible.cfg"
export ANSIBLE_GALAXY_CACHE_DIR="$XDG_CACHE_HOME/ansible/galaxy_cache"
have ansible && {
x-dc "$ANSIBLE_HOME"
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
}
export ANDROID_HOME="$XDG_DATA_HOME/android"
export HOMEBREW_NO_ENV_HINTS=true
# composer, https://getcomposer.org/
export COMPOSER_HOME="$XDG_STATE_HOME/composer"
export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin"
have composer && {
export PATH="$COMPOSER_BIN:$PATH"
}
# docker, https://docs.docker.com/engine/reference/commandline/cli/
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
have docker && {
x-dc "$DOCKER_CONFIG"
# Docker: Disable snyk ad
export DOCKER_SCAN_SUGGEST=false
}
# ffmpeg
export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg"
have ffmpeg && x-dc "$FFMPEG_DATADIR"
# gcloud
have gcloud && {
GCLOUD_LOC=$(gcloud info --format="value(installation.sdk_root)" --quiet)
[[ -f "$GCLOUD_LOC/path.zsh.inc" ]] && builtin source "$GCLOUD_LOC/path.zsh.inc"
[[ -f "$GCLOUD_LOC/completion.zsh.inc" ]] && builtin source "$GCLOUD_LOC/completion.zsh.inc"
}
# GnuPG
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
# Go
export GOPATH="$XDG_DATA_HOME/go"
export GOBIN="$XDG_BIN_HOME"
# irssi
have irssi && {
# These variables are used in ./alias with --config and --home
export IRSSI_CONFIG_HOME="$XDG_CONFIG_HOME/irssi"
export IRSSI_CONFIG_FILE="$IRSSI_CONFIG_HOME/config"
x-dc "$IRSSI_CONFIG_HOME"
}
# nb, https://xwmx.github.io/nb/
export NBRC_PATH="$XDG_CONFIG_HOME/nbrc"
export NB_DIR="$XDG_STATE_HOME/nb"
# nvm, the node version manager
export NVM_LAZY_LOAD=true
export NVM_COMPLETION=true
export NVM_AUTO_USE=true
export NVM_DIR="$XDG_CONFIG_HOME/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
# Add npm packages to path
have node && {
NVM_NODE_BIN_DIR="$(dirname "$(which node)")"
path_append "$NVM_NODE_BIN_DIR"
}
# op (1Password cli) is present
export OP_CACHE="$XDG_STATE_HOME/1password"
have op && {
eval "$(op completion zsh)"
compdef _op op
}
# Python
#
# pyenv, python environments
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
have pyenv && {
path_append "$(pyenv root)/shims"
path_append "$PYENV_ROOT/bin"
eval "$(pyenv init -)"
}
# Ruby
#
# including: bundler, rbenv
export GEM_HOME="${XDG_DATA_HOME}"/gem
export GEM_SPEC_CACHE="${XDG_CACHE_HOME}"/gem
export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle
export BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
export RBENV_ROOT="$XDG_STATE_HOME/rbenv"
x-dc "$RBENV_ROOT"
have gem && path_append "$(gem environment gemdir)/bin"
have rbenv && eval "$(rbenv init - zsh)"
# Rust / cargo
export CARGO_HOME="$XDG_DATA_HOME/cargo"
path_append "$CARGO_HOME/bin"
# screen
export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"
# sonarlint
export SONARLINT_USER_HOME="$XDG_DATA_HOME/sonarlint"
# tldr / tealdeer
export TEALDEER_CONFIG_DIR="$XDG_CONFIG_HOME/tealdeer/"
# tmux
export TMUX_CONF="$XDG_CONFIG_HOME/tmux/tmux.conf"
# wakatime, https://github.com/wakatime/wakatime-cli
export WAKATIME_HOME="$XDG_STATE_HOME/wakatime"
x-dc "$WAKATIME_HOME"
# z, https://github.com/rupa/z
export _Z_DATA="$XDG_STATE_HOME/z"
[[ -f "$XDG_BIN_HOME/z/z.sh" ]] && source "$XDG_BIN_HOME/z/z.sh"
# Misc
export BAT_THEME="ansi"
export CHEAT_USE_FZF=true
export SQLITE_HISTORY="$XDG_CACHE_HOME"/sqlite_history

25
config/exports-lakka Normal file
View File

@@ -0,0 +1,25 @@
# lakka exports
## LUA
if command -v luarocks &> /dev/null; then
eval "$(luarocks path --bin)"
fi
export PATH="$HOME/.local/go/bin:$PATH"
alias logrotate='/usr/sbin/logrotate -s "$HOME/logs/state"'
alias nano='nano -wS -$'
alias gpg=gpg2
ACME_PATH="$HOME/.acme.sh"
# shellcheck source=$HOME/.acme.sh/acme.sh.env
if [[ -s "$ACME_PATH/acme.sh.env" ]]; then
source "$ACME_PATH/acme.sh.env"
fi
export RVM_PATH="$HOME/.rvm"
export PATH="$RVM_PATH/bin:$PATH"
# shellcheck source=$HOME/.rvm/scripts/rvm
if [[ -s "$RVM_PATH/scripts/rvm" ]]; then
source "$RVM_PATH/scripts/rvm" # Load RVM into a shell session *as a function*
fi

View File

@@ -1,64 +0,0 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# shellcheck disable=1091,2046
# vim: filetype=zsh
export DOTFILES="$HOME/.dotfiles"
source "$DOTFILES/scripts/shared.sh"
export LC_ALL=fi_FI.UTF-8
# Bash completion file location
export BASH_COMPLETION_USER_FILE="${XDG_CONFIG_HOME}/bash-completion/bash_completion"
# History env variables
export HIST_STAMPS="yyyy-mm-dd"
# Larger bash history (allow 32³ entries; default is 500)
export HISTSIZE=32768
export HISTFILESIZE=$HISTSIZE
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
export HISTCONTROL=ignoreboth
# Make some commands not show up in history
export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help"
# And include the parameter for ZSH
export HISTORY_IGNORE="(ls|cd|cd -|pwd|exit|date|* --help)"
# Highlight section titles in manual pages
export LESS_TERMCAP_md="$ORANGE"
# Dont clear the screen after quitting a manual page
export MANPAGER="less -X"
# Always enable colored `grep` output
export GREP_OPTIONS="--color=auto"
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
hash shopt 2> /dev/null && shopt -s checkwinsize
# Load iterm2 shell integration
# https://iterm2.com/documentation-shell-integration.html
[[ -f "$XDG_BIN_HOME/iterm2_shell_integration.zsh" ]] \
&& source "$XDG_BIN_HOME/iterm2_shell_integration.zsh"
# Set dircolors based on the file, if it exists
have dircolors && eval $(dircolors "$XDG_CONFIG_HOME/dircolors")
# If we are using zsh, color our dir lists and such
if [ "$SHELL" = "$(which zsh)" ]; then
x-dc "$XDG_CACHE_HOME/zsh"
x-dc "$XDG_STATE_HOME/zsh"
export HISTFILE="$XDG_STATE_HOME/zsh/history"
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/zcompcache"
zstyle ':completion:*' list-colors "$LS_COLORS"
# fzf
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh ] \
&& source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh
fi
# If we are using bash
if [ "$SHELL" = "$(which bash)" ]; then
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash ] \
&& source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash
fi

View File

@@ -0,0 +1,71 @@
# @halostatue/fish-macos/completions/app.fish:v7.0.0
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

@@ -0,0 +1,70 @@
# @halostatue/fish-macos/completions/finder.fish:v7.0.0
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

@@ -0,0 +1,7 @@
complete --command fisher --exclusive --long help --description "Print help"
complete --command fisher --exclusive --long version --description "Print version"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex"
complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)"

View File

@@ -0,0 +1,119 @@
# @halostatue/fish-macos/completions/mac.fish:v7.0.0
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

@@ -0,0 +1,8 @@
# @halostatue/fish-macos/completions/manp.fish:v7.0.0
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,21 @@
complete --command nvm --exclusive
complete --command nvm --exclusive --long version --description "Print version"
complete --command nvm --exclusive --long help --description "Print help"
complete --command nvm --long silent --description "Suppress standard output"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments install --description "Download and activate the specified Node version"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments use --description "Activate the specified Node version in the current shell"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list --description "List installed Node versions"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list-remote --description "List available Node versions to install"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments current --description "Print the currently-active Node version"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from install" --arguments "(
test -e $nvm_data && string split ' ' <$nvm_data/.index
)"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use" --arguments "(_nvm_list | string split ' ')"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments uninstall --description "Uninstall the specified Node version"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from uninstall" --arguments "(
_nvm_list | string split ' ' | string replace system ''
)"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use uninstall" --arguments "(
set --query nvm_default_version && echo default
)"

View File

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

View File

@@ -0,0 +1,13 @@
complete tide --no-files
set -l subcommands bug-report configure reload
complete tide -x -n __fish_use_subcommand -a bug-report -d "Print info for use in bug reports"
complete tide -x -n __fish_use_subcommand -a configure -d "Run the configuration wizard"
complete tide -x -n __fish_use_subcommand -a reload -d "Reload tide configuration"
complete tide -x -n "not __fish_seen_subcommand_from $subcommands" -s h -l help -d "Print help message"
complete tide -x -n "not __fish_seen_subcommand_from $subcommands" -s v -l version -d "Print tide version"
complete tide -x -n '__fish_seen_subcommand_from bug-report' -l clean -d "Run clean Fish instance and install Tide"
complete tide -x -n '__fish_seen_subcommand_from bug-report' -l verbose -d "Print full Tide configuration"

View File

@@ -0,0 +1,44 @@
function _tide_init_install --on-event _tide_init_install
set -U VIRTUAL_ENV_DISABLE_PROMPT true
source (functions --details _tide_sub_configure)
_load_config lean
_tide_finish
if status is-interactive
tide bug-report --check || sleep 4
if contains ilancosman/tide (string lower $_fisher_plugins)
set_color bryellow
echo "ilancosman/tide is a development branch. Please install from a release tag:"
_tide_fish_colorize "fisher install ilancosman/tide@v6"
sleep 3
end
switch (read --prompt-str="Configure tide prompt? [Y/n] " | string lower)
case y ye yes ''
tide configure
case '*'
echo -s \n 'Run ' (_tide_fish_colorize "tide configure") ' to customize your prompt.'
end
end
end
function _tide_init_update --on-event _tide_init_update
# Warn users who install from main branch
if contains ilancosman/tide (string lower $_fisher_plugins)
set_color bryellow
echo "ilancosman/tide is a development branch. Please install from a release tag:"
_tide_fish_colorize "fisher install ilancosman/tide@v6"
sleep 3
end
# Set (disable) the new jobs variable
set -q tide_jobs_number_threshold || set -U tide_jobs_number_threshold 1000
end
function _tide_init_uninstall --on-event _tide_init_uninstall
set -e VIRTUAL_ENV_DISABLE_PROMPT
set -e (set -U --names | string match --entire -r '^_?tide')
functions --erase (functions --all | string match --entire -r '^_?tide')
end

View File

@@ -0,0 +1,87 @@
function __fish_eza_install --on-event fish-eza_install
set -Ux __FISH_EZA_BASE_ALIASES l ll lg le lt lc lo
set -Ux __FISH_EZA_EXPANDED a d i id aa ad ai aid aad aai aaid
set -Ux __FISH_EZA_EXPANDED_OPT_NAME LA LD LI LID LAA LAD LAI LAID LAAD LAAI LAAID
set -Ux __FISH_EZA_OPT_NAMES
set -Ux __FISH_EZA_ALIASES
set -Ux __FISH_EZA_SORT_OPTIONS name .name size ext mod old acc cr inode
set -Ux EZA_STANDARD_OPTIONS "--group" "--header" "--group-directories-first"
# Base aliases
set -Ux EZA_L_OPTIONS
set -Ux EZA_LL_OPTIONS "--long"
set -Ux EZA_LG_OPTIONS "--git" "--git-ignore" "--long"
set -Ux EZA_LE_OPTIONS "--extended" "--long"
set -Ux EZA_LT_OPTIONS "--tree" "--level"
set -Ux EZA_LC_OPTIONS "--across"
set -Ux EZA_LO_OPTIONS "--oneline"
# Extended aliases
set -Ux EZA_LI_OPTIONS "--icons"
set -Ux EZA_LD_OPTIONS "--only-dirs"
set -Ux EZA_LID_OPTIONS "--icons" "--only-dirs"
set -Ux EZA_LA_OPTIONS "--all" "--binary"
set -Ux EZA_LAD_OPTIONS "--all" "--binary" "--only-dirs"
set -Ux EZA_LAI_OPTIONS "--all" "--binary" "--icons"
set -Ux EZA_LAID_OPTIONS "--all" "--binary" "--icons" "--only-dirs"
set -Ux EZA_LAA_OPTIONS "--all" "--all" "--binary"
set -Ux EZA_LAAD_OPTIONS "--all" "--all" "--binary" "--only-dirs"
set -Ux EZA_LAAI_OPTIONS "--all" "--all" "--binary" "--icons"
set -Ux EZA_LAAID_OPTIONS "--all" "--all" "--binary" "--icons" "--only-dirs"
for a in $__FISH_EZA_BASE_ALIASES
set -l opt_name (string join '_' "EZA" (string upper $a) "OPTIONS")
if test $a = "ll"
alias --save "$a" "eza_git"
else
alias --save "$a" "eza \$EZA_STANDARD_OPTIONS \$$opt_name"
end
set -a __FISH_EZA_OPT_NAMES "$opt_name"
set -a __FISH_EZA_ALIASES "$a"
for i in (seq (count $__FISH_EZA_EXPANDED))
set -l name "$a$__FISH_EZA_EXPANDED[$i]"
# --tree is useless given --all --all
if test $name = "ltaa"; or test $name = "ltaac"
continue
end
set -l exp_opt_name (string join '_' "EZA" $__FISH_EZA_EXPANDED_OPT_NAME[$i] "OPTIONS")
if string match --quiet 'll*' "$name"
alias --save "$name" "eza_git \$$exp_opt_name"
else
alias --save "$name" "eza \$EZA_STANDARD_OPTIONS \$$exp_opt_name \$$opt_name"
end
set -a __FISH_EZA_ALIASES "$name"
if not contains $exp_opt_name $__FISH_EZA_OPT_NAMES
set -a __FISH_EZA_OPT_NAMES $exp_opt_name
end
end
end
end
function __fish_eza_update --on-event fish-eza_update
__fish_eza_uninstall
__fish_eza_install
end
function __fish_eza_uninstall --on-event fish-eza_uninstall
set --erase EZA_STANDARD_OPTIONS
for a in $__FISH_EZA_ALIASES
functions --erase $a
funcsave $a
end
for opt in $__FISH_EZA_OPT_NAMES
set --erase $opt
end
set --erase __FISH_EZA_BASE_ALIASES
set --erase __FISH_EZA_ALIASES
set --erase __FISH_EZA_EXPANDED
set --erase __FISH_EZA_EXPANDED_OPT_NAME
set --erase __FISH_EZA_OPT_NAMES
set --erase __FISH_EZA_SORT_OPTIONS
end

View File

@@ -0,0 +1,7 @@
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

@@ -0,0 +1,62 @@
# @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

@@ -0,0 +1,14 @@
# @halostatue/fish-macos/conf.d/halostatue_fish_macos.fish:v7.0.0
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,28 @@
set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share
set --query nvm_mirror || set --global nvm_mirror https://nodejs.org/dist
set --query nvm_data || set --global nvm_data $XDG_DATA_HOME/nvm
function _nvm_install --on-event nvm_install
test ! -d $nvm_data && command mkdir -p $nvm_data
echo "Downloading the Node distribution index..." 2>/dev/null
_nvm_index_update
end
function _nvm_update --on-event nvm_update
set --query --universal nvm_data && set --erase --universal nvm_data
set --query --universal nvm_mirror && set --erase --universal nvm_mirror
set --query nvm_mirror || set --global nvm_mirror https://nodejs.org/dist
end
function _nvm_uninstall --on-event nvm_uninstall
command rm -rf $nvm_data
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
set --names | string replace --filter --regex -- "^nvm" "set --erase nvm" | source
functions --erase (functions --all | string match --entire --regex -- "^_nvm_")
end
if status is-interactive && set --query nvm_default_version && ! set --query nvm_current_version
nvm use --silent $nvm_default_version
end

View File

@@ -0,0 +1,22 @@
function ___paths_plugin_set_colors
if not set -q ___paths_plugin_colors
set -Ux ___paths_plugin_colors 27e6ff 29e0ff 5cd8ff 77d0ff 8ac8ff 9cbfff afb5ff c5a7ff d99bfe ea8feb f684d5 fe7abd ff73a3 ff708a fa7070 ff708a ff73a3 fe7abd f684d5 ea8feb d99bfe c5a7ff afb5ff 9cbfff 8ac8ff 77d0ff 5cd8ff 29e0ff
end
return 0
end
function _paths_uninstall --on-event paths_uninstall
for i in ___paths_plugin_wrap_color ___paths_plugin_output ___paths_plugin_handle_found_item ___paths_plugin_handle_source ___paths_plugin_cycle_color
functions -e $i
end
set -e ___paths_plugin_colors
set -e ___paths_plugin_current_color
end
function _paths_install --on-event _paths_install
___paths_plugin_set_colors
end
function _paths_update --on-event paths_update
___paths_plugin_set_colors
end

63
config/fish/conf.d/z.fish Normal file
View File

@@ -0,0 +1,63 @@
if test -z "$Z_DATA"
if test -z "$XDG_DATA_HOME"
set -U Z_DATA_DIR "$HOME/.local/share/z"
else
set -U Z_DATA_DIR "$XDG_DATA_HOME/z"
end
set -U Z_DATA "$Z_DATA_DIR/data"
end
if test ! -e "$Z_DATA"
if test ! -e "$Z_DATA_DIR"
mkdir -p -m 700 "$Z_DATA_DIR"
end
touch "$Z_DATA"
end
if test -z "$Z_CMD"
set -U Z_CMD z
end
set -U ZO_CMD "$Z_CMD"o
if test ! -z $Z_CMD
function $Z_CMD -d "jump around"
__z $argv
end
end
if test ! -z $ZO_CMD
function $ZO_CMD -d "open target dir"
__z -d $argv
end
end
if not set -q Z_EXCLUDE
set -U Z_EXCLUDE "^$HOME\$"
else if contains $HOME $Z_EXCLUDE
# Workaround: migrate old default values to a regex (see #90).
set Z_EXCLUDE (string replace -r -- "^$HOME\$" '^'$HOME'$$' $Z_EXCLUDE)
end
# Setup completions once first
__z_complete
function __z_on_variable_pwd --on-variable PWD
__z_add
end
function __z_uninstall --on-event z_uninstall
functions -e __z_on_variable_pwd
functions -e $Z_CMD
functions -e $ZO_CMD
if test ! -z "$Z_DATA"
printf "To completely erase z's data, remove:\n" >/dev/stderr
printf "%s\n" "$Z_DATA" >/dev/stderr
end
set -e Z_CMD
set -e ZO_CMD
set -e Z_DATA
set -e Z_EXCLUDE
end

13
config/fish/config.fish Normal file
View File

@@ -0,0 +1,13 @@
# ╭──────────────────────────────────────────────────────────╮
# │ fish/config.fish │
# ╰──────────────────────────────────────────────────────────╯
test -e "$HOME/.config/fish/exports.fish" &&
source "$HOME/.config/fish/exports.fish"
if status is-interactive
# Commands to run in interactive sessions can go here
# Start tmux if not already running and not in SSH
open-tmux # defined in functions/open-tmux.fish
end

210
config/fish/exports.fish Normal file
View File

@@ -0,0 +1,210 @@
#!/usr/bin/env fish
# Set XDG environment variables
test -z "$XDG_CONFIG_HOME" && set -x XDG_CONFIG_HOME "$HOME/.config"
test -z "$XDG_DATA_HOME" && set -x XDG_DATA_HOME "$HOME/.local/share"
test -z "$XDG_CACHE_HOME" && set -x XDG_CACHE_HOME "$HOME/.cache"
test -z "$XDG_STATE_HOME" && set -x XDG_STATE_HOME "$HOME/.local/state"
test -z "$XDG_BIN_HOME" && set -x XDG_BIN_HOME "$HOME/.local/bin"
test -z "$XDG_RUNTIME_DIR" && set -x XDG_RUNTIME_DIR "$HOME/.local/run"
# Set dotfiles directory
test -z "$DOTFILES" && set -x DOTFILES "$HOME/.dotfiles"
# Set other environment variables
test -z "$EDITOR" && set -x EDITOR "nvim"
test -z "$VISUAL" && set -x VISUAL "code"
test -z "$HOSTNAME" && set -x HOSTNAME (hostname -s)
# Add local bin to path
fish_add_path "$XDG_BIN_HOME"
# Set npm environment variables
test -z "$NPM_CONFIG_PREFIX" && set -x NPM_CONFIG_PREFIX "$XDG_DATA_HOME/npm"
fish_add_path "$NPM_CONFIG_PREFIX/bin"
# Set yarn environment variables
test -z "$YARN_GLOBAL_FOLDER" && set -x YARN_GLOBAL_FOLDER "$XDG_DATA_HOME/yarn"
fish_add_path "$YARN_GLOBAL_FOLDER/bin"
# Set mason environment variables
test -z "$MASON_HOME" && set -x MASON_HOME "$XDG_DATA_HOME/nvim/mason"
fish_add_path "$MASON_HOME/bin"
# Set ASDF environment variables
test -z "$ASDF_DATA_DIR" && set -x ASDF_DATA_DIR "$XDG_DATA_HOME/asdf"
test -z "$ASDF_LOG_PATH" && set -x ASDF_LOG_PATH "$XDG_STATE_HOME/asdf/log"
test -z "$ASDF_CONFIG_DIR" && set -x ASDF_CONFIG_DIR "$XDG_CONFIG_HOME/asdf"
test -z "$ASDF_CONFIG_FILE" && set -x ASDF_CONFIG_FILE "$ASDF_CONFIG_DIR/asdfrc"
## Default package files
test -z "$ASDF_CRATE_DEFAULT_PACKAGES_FILE" && set -x ASDF_CRATE_DEFAULT_PACKAGES_FILE "$ASDF_CONFIG_DIR/cargo-packages"
test -z "$ASDF_GEM_DEFAULT_PACKAGES_FILE" && set -x ASDF_GEM_DEFAULT_PACKAGES_FILE "$ASDF_CONFIG_DIR/gem-packages"
test -z "$ASDF_GOLANG_DEFAULT_PACKAGES_FILE" && set -x ASDF_GOLANG_DEFAULT_PACKAGES_FILE "$ASDF_CONFIG_DIR/golang-packages"
test -z "$ASDF_NPM_DEFAULT_PACKAGES_FILE" && set -x ASDF_NPM_DEFAULT_PACKAGES_FILE "$ASDF_CONFIG_DIR/npm-packages"
test -z "$ASDF_PYTHON_DEFAULT_PACKAGES_FILE" && set -x ASDF_PYTHON_DEFAULT_PACKAGES_FILE "$ASDF_CONFIG_DIR/python-packages"
## Plugin configuration
set -x ASDF_DIRENV_IGNORE_MISSING_PLUGINS "1"
set -x ASDF_GOLANG_MOD_VERSION_ENABLED "true"
set -x ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY "latest_available"
test -z "$ASDF_GOLANG_MOD_VERSION_ENABLED" && set -x ASDF_GOLANG_MOD_VERSION_ENABLED "true"
## Load ASDF, if it exists
test -f "$HOME/.local/asdf/asdf.fish" &&
source "$HOME/.local/asdf/asdf.fish" &&
asdf reshim &&
fish_add_path "$ASDF_DIR/shims"
## If $HOME/.local/asdf/asdf.fish does not exist, show error message
test -e "$HOME/.local/asdf/asdf.fish" || echo "ASDF not found"
# Load ASDF completions
test -d "$XDG_CONFIG_HOME/fish/completions" ||
mkdir -p "$XDG_CONFIG_HOME/fish/completions";
test -e "$XDG_CONFIG_HOME/fish/completions/asdf.fish" ||
and ln -s "$ASDF_DIR/completions/asdf.fish" "$XDG_CONFIG_HOME/fish/completions/asdf.fish"
# Set Neovim environment variables
test -z "$NVIM_STATE" && set -x NVIM_STATE "$XDG_STATE_HOME/nvim"
test -z "$NVIM_CONFIG_HOME" && set -x NVIM_CONFIG_HOME "$XDG_CONFIG_HOME/nvim"
test -z "$NVIM_DATA_HOME" && set -x NVIM_DATA_HOME "$XDG_DATA_HOME/nvim"
test -z "$NVIM_CACHE_HOME" && set -x NVIM_CACHE_HOME "$XDG_CACHE_HOME/nvim"
test -z "$NVIM_LOG_PATH" && set -x NVIM_LOG_PATH "$NVIM_STATE/log"
test -z "$NVIM_SESSION_PATH" && set -x NVIM_SESSION_PATH "$NVIM_STATE/session"
test -z "$NVIM_SHADA_PATH" && set -x NVIM_SHADA_PATH "$NVIM_STATE/shada"
test -z "$NVIM_UNDO_PATH" && set -x NVIM_UNDO_PATH "$NVIM_STATE/undo"
# Ansible configuration
# https://docs.ansible.com/ansible/latest/reference_appendices/config.html
test -z "$ANSIBLE_HOME" && set -x ANSIBLE_HOME "$XDG_CONFIG_HOME/ansible"
test -z "$ANSIBLE_CONFIG" && set -x ANSIBLE_CONFIG "$ANSIBLE_HOME/ansible.cfg"
test -z "$ANSIBLE_GALAXY_CACHE_DIR" && set -x ANSIBLE_GALAXY_CACHE_DIR "$XDG_CACHE_HOME/ansible/galaxy_cache"
x-dc "$ANSIBLE_HOME"
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
# AWS configuration
test -z "$AWS_CONFIG_FILE" && set -x AWS_CONFIG_FILE "$XDG_STATE_HOME/aws/config"
test -z "$AWS_SHARED_CREDENTIALS_FILE" && set -x AWS_SHARED_CREDENTIALS_FILE "$XDG_STATE_HOME/aws/credentials"
test -z "$AWS_SESSION_TOKEN" && set -x AWS_SESSION_TOKEN "$XDG_STATE_HOME/aws/session_token"
test -z "$AWS_DATA_PATH" && set -x AWS_DATA_PATH "$XDG_DATA_HOME/aws"
test -z "$AWS_DEFAULT_OUTPUT" && set -x AWS_DEFAULT_OUTPUT "table"
test -z "$AWS_CONFIGURE_KEYS" && set -x AWS_CONFIGURE_KEYS "true"
test -z "$AWS_CONFIGURE_SESSION" && set -x AWS_CONFIGURE_SESSION "true"
test -z "$AWS_CONFIGURE_SESSION_DURATION" && set -x AWS_CONFIGURE_SESSION_DURATION "7200"
test -z "$AWS_CONFIGURE_SESSION_MFA" && set -x AWS_CONFIGURE_SESSION_MFA "true"
test -z "$AWS_CONFIGURE_PROFILE" && set -x AWS_CONFIGURE_PROFILE "true"
test -z "$AWS_CONFIGURE_PROMPT" && set -x AWS_CONFIGURE_PROMPT "true"
test -z "$AWS_CONFIGURE_PROMPT_DEFAULT" && set -x AWS_CONFIGURE_PROMPT_DEFAULT "true"
# Brew configuration
test -z "$HOMEBREW_NO_ANALYTICS" && set -x HOMEBREW_NO_ANALYTICS "true"
test -z "$HOMEBREW_NO_ENV_HINTS" && set -x HOMEBREW_NO_ENV_HINTS "true"
test -z "$HOMEBREW_BUNDLE_MAS_SKIP" && set -x HOMEBREW_BUNDLE_MAS_SKIP "true"
test -z "$HOMEBREW_BUNDLE_FILE" && set -x HOMEBREW_BUNDLE_FILE "$XDG_CONFIG_HOME/homebrew/Brewfile"
# Set composer environment variables
test -z "$COMPOSER_HOME" && set -x COMPOSER_HOME "$XDG_STATE_HOME/composer"
test -z "$COMPOSER_BIN" && set -x COMPOSER_BIN "$COMPOSER_HOME/vendor/bin"
fish_add_path "$COMPOSER_BIN"
# direnv, https://direnv.net/
# https://direnv.net/docs/hook.html
# Set the hook to show the direnv message in a different color
# export DIRENV_LOG_FORMAT=$'\033[2mdirenv: %s\033[0m'
test -z "$DIRENV_LOG_FORMAT" && set -x DIRENV_LOG_FORMAT ''
# docker, https://docs.docker.com/engine/reference/commandline/cli/
test -z "$DOCKER_CONFIG" && set -x DOCKER_CONFIG "$XDG_CONFIG_HOME/docker"
x-dc "$DOCKER_CONFIG"
test -z "$DOCKER_HIDE_LEGACY_COMMANDS" && set -x DOCKER_HIDE_LEGACY_COMMANDS "true"
# Docke: Disable snyk ad
test -z "$DOCKER_SCAN_SUGGEST" && set -x DOCKER_SCAN_SUGGEST "false"
# fzf
test -z "$FZF_BASE" && set -x FZF_BASE "$XDG_CONFIG_HOME/fzf"
test -z "$FZF_DEFAULT_OPTS" && set -x FZF_DEFAULT_OPTS '--height 40% --tmux bottom,40% --layout reverse --border top'
# GnuPG
# https://gnupg.org/documentation/manuals/gnupg/Invoking-GPG.html
test -z "$GNUPGHOME" && set -x GNUPGHOME "$XDG_DATA_HOME/gnupg"
# Go
test -z "$GOPATH" && set -x GOPATH "$XDG_DATA_HOME/go"
test -z "$GOBIN" && set -x GOBIN "$XDG_BIN_HOME"
fish_add_path "$GOBIN"
# NPM: Add npm packages to path
if x-have node;
set -x NVM_NODE_BIN_DIR $(dirname $(which node))
fish_add_path "$NVM_NODE_BIN_DIR"
end
# 1Password
test -z "$OP_CACHE" && set -x OP_CACHE "$XDG_STATE_HOME/1password"
# Python
test -z "$WORKON_HOME" && set -x WORKON_HOME "$XDG_DATA_HOME/virtualenvs"
test -z "$PYENV_ROOT" && set -x PYENV_ROOT "$XDG_DATA_HOME/pyenv"
fish_add_path "$PYENV_ROOT/bin"
## Set poetry environment variables
test -z "$POETRY_HOME" && set -x POETRY_HOME "$XDG_DATA_HOME/poetry"
fish_add_path "$POETRY_HOME/bin"
# Rust / cargo
test -z "$CARGO_HOME" && set -x CARGO_HOME "$XDG_DATA_HOME/cargo"
test -z "$CARGO_BIN_HOME" && set -x CARGO_BIN_HOME "$XDG_BIN_HOME"
test -z "$RUSTUP_HOME" && set -x RUSTUP_HOME "$XDG_DATA_HOME/rustup"
set -x RUST_WITHOUT "clippy,docs,rls"
fish_add_path "$CARGO_BIN_HOME"
fish_add_path "$XDG_SHARE_HOME/bob/nvim-bin"
# screen
# https://www.gnu.org/software/screen/manual/screen.html
test -z "$SCREENRC" && set -x SCREENRC "$XDG_CONFIG_HOME/misc/screenrc"
# Sonarlint
test -z "$SONARLINT_HOME" && set -x SONARLINT_HOME "$XDG_DATA_HOME/sonarlint"
test -z "$SONARLINT_BIN" && set -x SONARLINT_BIN "$XDG_BIN_HOME"
test -z "$SONARLINT_USER_HOME" && set -x SONARLINT_USER_HOME "$XDG_DATA_HOME/sonarlint"
# Terraform
test -z "$TF_DATA_DIR" && set -x TF_DATA_DIR "$XDG_STATE_HOME/terraform"
test -z "$TF_CLI_CONFIG_FILE" && set -x TF_CLI_CONFIG_FILE "$XDG_CONFIG_HOME/terraform/terraformrc"
test -z "$TF_PLUGIN_CACHE_DIR" && set -x TF_PLUGIN_CACHE_DIR "$XDG_CACHE_HOME/terraform/plugin-cache"
# tmux
# https://tmux.github.io/
test -z "$TMUX_TMPDIR" && set -x TMUX_TMPDIR "$XDG_STATE_HOME/tmux"
test -z "$TMUX_CONF_DIR" && set -x TMUX_CONF_DIR "$XDG_CONFIG_HOME/tmux"
test -z "$TMUX_PLUGINS" && set -x TMUX_PLUGINS "$TMUX_CONF_DIR/plugins"
test -z "$TMUX_CONF" && set -x TMUX_CONF "$TMUX_CONF_DIR/tmux.conf"
test -z "$TMUX_PLUGIN_MANAGER_PATH" && set -x TMUX_PLUGIN_MANAGER_PATH "$TMUX_PLUGINS"
# tms
# https://github.com/jrmoulton/tmux-sessionizer
test -z "$TMS_CONFIG_FILE" && set -x TMS_CONFIG_FILE "$XDG_CONFIG_HOME/tms/config.toml"
# wakatime
# https://github.com/wakatime/wakatime-cli
test -z "$WAKATIME_HOME" && set -x WAKATIME_HOME "$XDG_STATE_HOME/wakatime"
x-dc "$WAKATIME_HOME"
# misc
test -z "$CHEAT_USE_FZF" && set -x CHEAT_USE_FZF "true"
test -z "$SQLITE_HISTORY" && set -x SQLITE_HISTORY "$XDG_CACHE_HOME/sqlite/sqlite_history"
# Source exports-secret.fish if it exists
if test -f "$DOTFILES/config/fish/exports-secret.fish"
source "$DOTFILES/config/fish/exports-secret.fish"
end
# Source $DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish if it exists
if test -f "$DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish"
source "$DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish"
end
# Source $DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish if it exists
if test -f "$DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish"
source "$DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish"
end

11
config/fish/fish_plugins Normal file
View File

@@ -0,0 +1,11 @@
jorgebucaran/fisher
jorgebucaran/nvm.fish
ilancosman/tide@v6
jethrokuan/z
halostatue/fish-macos@v7
ehfive/fish-bash2env
jgusta/paths
danhper/fish-ssh-agent
halostatue/fish-brew@v3
plttn/fish-eza
edc/bass

View File

@@ -0,0 +1,4 @@
function .c --wraps='cd ~/Code' --description 'alias .c=cd ~/Code'
cd ~/Code $argv
end

View File

@@ -0,0 +1,4 @@
function .d --wraps='cd ~/.dotfiles' --description 'alias .d=cd ~/.dotfiles'
cd ~/.dotfiles $argv
end

View File

@@ -0,0 +1,56 @@
#!/usr/bin/env bash
# Copyright (c) 2022 Huang-Huang Bao
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
# shellcheck disable=SC2076
set -e
disallowd_vars_arr=(
_
fish_kill_signal
fish_killring
fish_pid
history
hostname
PWD
pipestatus
SHLVL
status
status_generation
version
)
disallowd_vars=" ${disallowd_vars_arr[*]} "
fish_escape() {
value="${1//\\/\\\\}"
value="${value//\'/\\\'}"
echo "'${value}'"
}
flag_impure="$__FISH_BASH2ENV_IMPURE"
unset __FISH_BASH2ENV_IMPURE
if [[ -z "$flag_impure" ]]; then
old_env=" $(env -0 | tr '\0' ' ') "
fi
eval_status=
eval "$*" 1>&2 || eval_status=$?
env -0 | while IFS= read -rs -d $'\0' line; do
if [[ -z "$flag_impure" && "${old_env}" =~ " ${line} " ]]; then
continue
fi
name="${line%%=*}"
if [[ "${disallowd_vars}" =~ " ${name} " ]]; then
continue
fi
value="$(fish_escape "${line#*=}")"
echo "set -gx ${name} ${value}"
done
exit $eval_status

View File

@@ -0,0 +1,140 @@
"""
To be used with a companion fish function like this:
function refish
set -l _x (python /tmp/bass.py source ~/.nvm/nvim.sh ';' nvm use iojs); source $_x; and rm -f $_x
end
"""
from __future__ import print_function
import json
import os
import signal
import subprocess
import sys
import traceback
BASH = 'bash'
FISH_READONLY = [
'PWD', 'SHLVL', 'history', 'pipestatus', 'status', 'version',
'FISH_VERSION', 'fish_pid', 'hostname', '_', 'fish_private_mode'
]
IGNORED = [
'PS1', 'XPC_SERVICE_NAME'
]
def ignored(name):
if name == 'PWD': # this is read only, but has special handling
return False
# ignore other read only variables
if name in FISH_READONLY:
return True
if name in IGNORED or name.startswith("BASH_FUNC"):
return True
if name.startswith('%'):
return True
return False
def escape(string):
# use json.dumps to reliably escape quotes and backslashes
return json.dumps(string).replace(r'$', r'\$')
def escape_identifier(word):
return escape(word.replace('?', '\\?'))
def comment(string):
return '\n'.join(['# ' + line for line in string.split('\n')])
def gen_script():
# Use the following instead of /usr/bin/env to read environment so we can
# deal with multi-line environment variables (and other odd cases).
env_reader = "%s -c 'import os,json; print(json.dumps({k:v for k,v in os.environ.items()}))'" % (sys.executable)
args = [BASH, '-c', env_reader]
output = subprocess.check_output(args, universal_newlines=True)
old_env = output.strip()
pipe_r, pipe_w = os.pipe()
if sys.version_info >= (3, 4):
os.set_inheritable(pipe_w, True)
command = 'eval $1 && ({}; alias) >&{}'.format(
env_reader,
pipe_w
)
args = [BASH, '-c', command, 'bass', ' '.join(sys.argv[1:])]
p = subprocess.Popen(args, universal_newlines=True, close_fds=False)
os.close(pipe_w)
with os.fdopen(pipe_r) as f:
new_env = f.readline()
alias_str = f.read()
if p.wait() != 0:
raise subprocess.CalledProcessError(
returncode=p.returncode,
cmd=' '.join(sys.argv[1:]),
output=new_env + alias_str
)
new_env = new_env.strip()
old_env = json.loads(old_env)
new_env = json.loads(new_env)
script_lines = []
for k, v in new_env.items():
if ignored(k):
continue
v1 = old_env.get(k)
if not v1:
script_lines.append(comment('adding %s=%s' % (k, v)))
elif v1 != v:
script_lines.append(comment('updating %s=%s -> %s' % (k, v1, v)))
# process special variables
if k == 'PWD':
script_lines.append('cd %s' % escape(v))
continue
else:
continue
if k == 'PATH':
value = ' '.join([escape(directory)
for directory in v.split(':')])
else:
value = escape(v)
script_lines.append('set -g -x %s %s' % (k, value))
for var in set(old_env.keys()) - set(new_env.keys()):
script_lines.append(comment('removing %s' % var))
script_lines.append('set -e %s' % var)
script = '\n'.join(script_lines)
alias_lines = []
for line in alias_str.splitlines():
_, rest = line.split(None, 1)
k, v = rest.split("=", 1)
alias_lines.append("alias " + escape_identifier(k) + "=" + v)
alias = '\n'.join(alias_lines)
return script + '\n' + alias
script_file = os.fdopen(3, 'w')
if not sys.argv[1:]:
print('__bass_usage', file=script_file, end='')
sys.exit(0)
try:
script = gen_script()
except subprocess.CalledProcessError as e:
sys.exit(e.returncode)
except Exception:
print('Bass internal error!', file=sys.stderr)
raise # traceback will output to stderr
except KeyboardInterrupt:
signal.signal(signal.SIGINT, signal.SIG_DFL)
os.kill(os.getpid(), signal.SIGINT)
else:
script_file.write(script)

View File

@@ -0,0 +1,53 @@
# @halostatue/fish-macos/functions/__macos_app_bundleid.fish:v7.0.0
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

@@ -0,0 +1,85 @@
# @halostatue/fish-macos/functions/__macos_app_find.fish:v7.0.0
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

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