Compare commits

...

110 Commits

Author SHA1 Message Date
renovate[bot]
62c620efad fix(github-action): update ivuorinen/actions (25.6.25 → 25.6.30) (#144) 2025-07-03 09:45:24 +03:00
07fe18af75 fix(scripts): correct usage and help exit status (#143) 2025-06-30 08:51:06 +03:00
renovate[bot]
29d3676b38 fix(github-action): update ivuorinen/actions (25.6.23 → 25.6.25) (#142) 2025-06-30 08:04:34 +03:00
0b9e1803d4 docs(agents): update instructions for yarn (#141) 2025-06-30 07:59:58 +03:00
github-actions[bot]
c45ad9710d chore: update pre-commit hooks (#140) 2025-06-30 07:52:04 +03:00
cf7ca2109f feat: add bats tests, docs (#139)
* fix(test): ensure bats file list uses xargs

* docs(readme): use yarn for testing instructions

* fix(test): ensure pipelines fail properly

* docs(alias): fix table header

---------

Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-30 04:30:06 +03:00
1531647e01 feat(ci): use pr-lint action instead of reviewdog (#136) 2025-06-30 03:21:47 +03:00
github-actions[bot]
15aff17f03 chore: update pre-commit hooks (#138)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-06-26 10:21:22 +03:00
renovate[bot]
42a5b79048 chore(deps): update node.js to v22.17.0 (#137) 2025-06-25 17:13:11 +03:00
a72c8ff33a chore(config): zed config update 2025-06-24 04:42:23 +03:00
19d9035214 chore(config): don't format config/op/plugins 2025-06-23 20:04:50 +03:00
7ca077c852 fix(ci): typo
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-23 20:00:04 +03:00
48604d81d6 fix(ci): add actions/setup-node to linters.yml
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-23 19:57:34 +03:00
github-actions[bot]
405e68f895 chore: update pre-commit hooks (#135) 2025-06-23 10:18:13 +03:00
6d62352127 chore(deps): update fisher plugins, add jgusta/paths 2025-06-22 11:44:41 +03:00
017d82abc5 fix(bin): path append quoting (#130) 2025-06-21 21:32:23 +03:00
github-actions[bot]
24ad4bf5b7 chore: update pre-commit hooks (#128)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-06-19 13:10:14 +03:00
07264c594f chore(config): ideavim config tweaks
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-16 14:03:00 +03:00
github-actions[bot]
7b58f660ac chore: update pre-commit hooks (#127) 2025-06-16 07:33:21 +03:00
renovate[bot]
b000f2b0c4 fix(container): update image python (3.13.4 → 3.13.5) (#126) 2025-06-14 09:53:35 +03:00
4d548687e1 chore(lint): prettier
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-12 10:20:58 +03:00
519d8398de chore(deps): remove bundle-audit, add @types/node and typescript, upgrade
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-12 10:16:53 +03:00
2203bb3957 chore(config): ideavim harpoon config
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-12 09:19:09 +03:00
github-actions[bot]
ddafdfe3c9 chore: update pre-commit hooks (#125) 2025-06-12 07:32:53 +03:00
a3f35b2d18 feat(fish): add nickeb96/puffer-fish
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-11 13:40:36 +03:00
90020a4998 chore(config): zed config update 2025-06-11 08:18:33 +03:00
0f806c172d chore(tmux): move resurrect and continuum last 2025-06-11 08:18:33 +03:00
renovate[bot]
e8eb9b98b2 feat(github-action): update softprops/action-gh-release (v2.2.2 → v2.3.2)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 00:09:23 +00:00
7e0a88cf8f feat(nvim): add m4xshen/hardtime.nvim
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-10 12:01:19 +03:00
f72f57ebf0 chore(nvim): remove volar, prefix lsp commands with leader
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-10 12:00:49 +03:00
b5e56e2cbb feat(config): fish: meaningful-ooo/sponge
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-10 09:57:18 +03:00
github-actions[bot]
179938132c chore: update pre-commit hooks (#120) 2025-06-09 08:06:27 +03:00
renovate[bot]
bae84c176c fix(container): update image python (3.13.3 → 3.13.4) (#119)
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-06-05 07:45:53 +03:00
be8a6761af test: expand version comparison tests (#118) 2025-06-04 12:12:55 +03:00
c348f3625f chore(lint): fix replacable helper typo (#116)
* Fix typo in replaceable helper

* chore(docs): add docstrings to `codex/rename-replacable-to-replaceable-and-update-references` (#117)

Docstrings generation was requested by @ivuorinen.

* https://github.com/ivuorinen/dotfiles/pull/116#issuecomment-2938946257

The following files were modified:

* `scripts/install-cheat-purebashbible.sh`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-06-04 11:00:42 +03:00
094f19c99c chore(config): tweak yabai config
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-03 13:58:04 +03:00
5a23ae8f01 chore(config): nvim tweaks
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-06-03 13:57:01 +03:00
github-actions[bot]
ee47821089 chore: update pre-commit hooks (#115) 2025-06-02 08:16:06 +03:00
github-actions[bot]
b834ce04f7 chore: update pre-commit hooks (#114) 2025-05-29 14:54:33 +03:00
github-actions[bot]
6a62d73d7f chore: update pre-commit hooks (#113) 2025-05-26 13:15:01 +03:00
github-actions[bot]
440842ed34 chore: update pre-commit hooks (#112) 2025-05-22 08:29:51 +03:00
renovate[bot]
d0563e4a29 chore(deps): update node.js to v22.16.0 (#111) 2025-05-22 01:11:53 +03:00
github-actions[bot]
bc404bfbea chore: update pre-commit hooks (#110) 2025-05-19 08:27:54 +03:00
923f881725 chore(config): change git merge conflictStyle 2025-05-16 21:50:29 +03:00
ccc5903290 chore(config): updated zed settings
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-05-16 21:49:55 +03:00
renovate[bot]
786efc48fa chore(deps): update node.js to v22.15.1 (#109) 2025-05-15 20:09:12 +03:00
2a11a28422 chore(repo): tweak install.conf.yaml
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-05-15 16:39:15 +03:00
812a27ea61 chore(config): updated zed settings
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-05-15 16:38:49 +03:00
e73e61f01b chore(config): added git-profile completions
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-05-15 16:38:23 +03:00
314679b4fc chore(deps): updated Brewfile
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-05-15 16:37:59 +03:00
github-actions[bot]
516b27384a chore: update pre-commit hooks (#108)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-05-12 12:28:03 +03:00
github-actions[bot]
9e1af3053d chore: update pre-commit hooks (#107)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-05-08 09:51:32 +03:00
github-actions[bot]
9e4f8741b3 chore: update pre-commit hooks (#106)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-05-05 11:37:52 +03:00
c0995c1b49 chore(config): zed: settings update 2025-05-03 02:32:38 +03:00
c9f1e824c3 chore(bin): fish support shared.sh and dfm 2025-05-03 02:32:01 +03:00
3d301daeb1 chore: remove x-dupers.pl 2025-05-03 02:29:48 +03:00
8b4198dc90 chore(lint): shfmt local/bin/* 2025-05-03 02:15:04 +03:00
66461f9b1b chore(config): zed: update config 2025-05-03 02:14:19 +03:00
80851d1efd chore(config): vim: fix ctrl-s, ctrl-p 2025-05-03 02:13:45 +03:00
github-actions[bot]
c457c0f3ab chore: update pre-commit hooks (#105)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-05-01 11:15:18 +03:00
9936e4bd76 chore(config): reorg of mini plugins
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-29 18:08:23 +03:00
c3a45e2653 chore(deps): update Brewfile
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-29 18:08:00 +03:00
506360a027 chore(config): fish: config cleanup, fixes
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-29 18:07:50 +03:00
github-actions[bot]
00074ec3ff chore: update pre-commit hooks (#104) 2025-04-28 18:53:17 +03:00
renovate[bot]
7c7daf89ea feat(github-action): update actions/setup-python (v5.5.0 → v5.6.0)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-24 21:49:51 +00:00
renovate[bot]
267c54aa56 chore(deps): update node.js to v22.15.0 (#102) 2025-04-24 09:09:01 +03:00
github-actions[bot]
d72409efc0 chore: update pre-commit hooks (#103) 2025-04-24 08:48:35 +03:00
3d9e0477b0 feat(bin): git-attributes rewrite 2025-04-22 10:11:32 +03:00
cfab48eee0 chore(config): zed config mode change 2025-04-22 10:08:12 +03:00
624920b2ab chore(config): nvim, tmux and wezterm tweaks 2025-04-22 10:07:34 +03:00
github-actions[bot]
fd82f1e36c chore: update pre-commit hooks (#101) 2025-04-21 14:23:31 +03:00
dependabot[bot]
48ec8cd7a7 chore(deps): bump http-proxy-middleware (#100) 2025-04-19 13:10:01 +03:00
renovate[bot]
3a61bd2b72 fix(github-action): update softprops/action-gh-release (v2.2.1 → v2.2.2)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-19 04:34:26 +00:00
895b0ad353 chore(config): aqua: remove extra tools
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-19 04:12:58 +03:00
3c733ec7eb chore(config): tmux: tweak theme
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-19 04:12:36 +03:00
5321ad7bd7 feat(config): fish formatting, secrets, op
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-19 04:11:14 +03:00
196077bea9 feat(nvim): reworked lsp, theme, cleanup
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-19 04:04:26 +03:00
github-actions[bot]
75147c7dd6 chore: update pre-commit hooks (#99) 2025-04-17 07:30:06 +03:00
f28ad41f67 chore(bin): remove zalgo-text.swift 2025-04-15 21:05:14 +03:00
61b66d3114 chore: removed yabai bin from repository 2025-04-15 21:00:40 +03:00
282f760a4f chore(lint): shfmt 2025-04-15 21:00:19 +03:00
4a9c9b4cb9 feat(bin): rewrote git-update-dirs 2025-04-15 20:59:50 +03:00
16311ee5b4 feat(bin): rewrote git-fsck-dirs 2025-04-15 15:39:01 +03:00
2fddfa82c0 feat(bin): rewrote git-dirty with additional feats 2025-04-15 14:02:44 +03:00
8f5f44db2d feat(bin): x-gh-get-latest-version improvements 2025-04-14 14:45:20 +03:00
8ad1f5c4d0 chore(docs): bin/README.md tweaks
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-14 10:25:43 +03:00
ac0aa1fbc0 feat(bin): php-switcher for Brew based version changes
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-14 10:25:18 +03:00
e8c6794ff6 chore(repo): ignore yabai from repo
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-14 10:24:20 +03:00
4de9a649f0 chore(config): update zed config
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-14 10:23:50 +03:00
github-actions[bot]
e7f115680e chore: update pre-commit hooks (#98)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-04-14 09:06:55 +03:00
f3b4551d0c chore(config): ideavim config 2025-04-11 16:31:59 +03:00
64725c57dc chore(config): fish config tweaks 2025-04-11 16:31:58 +03:00
b32ee414e3 chore(config): tweak yabai config 2025-04-11 16:31:58 +03:00
renovate[bot]
6ea7807718 fix(container): update image python (3.13.2 → 3.13.3) (#97) 2025-04-10 22:14:50 +03:00
6a776bd3dd chore(config): nvim: cleanup and fixes
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-04 16:34:08 +03:00
6ffe581326 feat(config): use nvm with bass, simplify setup
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-04 16:33:32 +03:00
5d476e8eed chore(config): add tmux-resurrect back
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-03 09:39:15 +03:00
github-actions[bot]
bf84c67f08 chore: update pre-commit hooks (#96)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-04-03 07:54:08 +03:00
9cb400dd3f chore(config): docker completions for fish 2025-04-02 18:23:14 +03:00
fce649619a chore(config): remove double init for pyenv 2025-04-02 18:22:59 +03:00
8b0148e468 chore: fish: migrate back to nvm 2025-04-02 18:22:38 +03:00
9cb27eb9dc chore(deps): yarn package update
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-03-31 21:06:27 +03:00
f1ed88a98e chore(config): vim plug update
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-03-31 21:05:57 +03:00
ec35f1cb1e chore(config): wezterm font and config tweaks
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-03-31 21:05:44 +03:00
dab8504cfd chore(deps): Brewfile update
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-03-31 21:05:09 +03:00
0f9a76e36f chore(config): nvim config tweaks
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-03-31 21:04:50 +03:00
github-actions[bot]
97244d5287 chore: update pre-commit hooks (#95)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2025-03-31 09:09:46 +03:00
50ea9bea89 fix(config): nvim theme tweaks
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-03-28 09:47:53 +02:00
688469ad8b chore(config): wezterm font is now Operator Mono
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-03-28 09:47:21 +02:00
github-actions[bot]
af32914d71 chore: update pre-commit hooks (#94) 2025-03-27 06:44:56 +02:00
235 changed files with 8709 additions and 3906 deletions

View File

@@ -8,11 +8,14 @@ indent_style = space
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
[*.fish]
max_line_length = 80
[*.md] [*.md]
max_line_length = 100 max_line_length = 100
[*.lua] [*.lua]
max_line_length = 120 max_line_length = 90
[*.{php,fish}] [*.{php,fish}]
indent_size = 4 indent_size = 4

50
.gitattributes vendored
View File

@@ -1,4 +1,4 @@
## GITATTRIBUTES FOR WEB PROJECTS ## GITATTRIBUTES
# #
# These settings are for any web project. # These settings are for any web project.
# #
@@ -20,20 +20,23 @@
*.bat text eol=crlf *.bat text eol=crlf
*.cmd text eol=crlf *.cmd text eol=crlf
*.coffee text *.coffee text
*.css text diff=css *.css text diff=css eol=lf
*.htm text diff=html *.fish text diff=shell eol=lf
*.html text diff=html *.htm text diff=html eol=lf
*.html text diff=html eol=lf
*.inc text *.inc text
*.ini text *.ini text
*.js text *.js text
*.json text *.json text
*.jsx text *.jsx text
*.less text *.less text
*.lua text diff=lua eol=lf
*.ls text *.ls text
*.map text -diff *.map text -diff
*.od text *.od text
*.onlydata text *.onlydata text
*.php text diff=php *.php text diff=php
*.plist text eol=lf
*.pl text *.pl text
*.ps1 text eol=crlf *.ps1 text eol=crlf
*.py text diff=python *.py text diff=python
@@ -41,15 +44,18 @@
*.sass text *.sass text
*.scm text *.scm text
*.scss text diff=css *.scss text diff=css
*.sh text eol=lf *.sh text eol=lf diff=shell
.husky/* text eol=lf .husky/* text eol=lf
*.sql text *.sql text
*.styl text *.styl text
*.tag text *.tag text
*.tmux text eol=lf diff=tmux
*.ts text *.ts text
*.tsx text *.tsx text
*.vim text eol=lf
*.xml text *.xml text
*.xhtml text diff=html *.xhtml text diff=html
*.zsh text diff=zsh eol=lf
# Docker # Docker
Dockerfile text Dockerfile text
@@ -68,6 +74,7 @@ Dockerfile text
AUTHORS text AUTHORS text
CHANGELOG text CHANGELOG text
CHANGES text CHANGES text
CODEOWNERS text
CONTRIBUTING text CONTRIBUTING text
COPYING text COPYING text
copyright text copyright text
@@ -78,6 +85,7 @@ LICENSE text
NEWS text NEWS text
readme text readme text
*README* text *README* text
# Files literally named "TODO", not a todo list item
TODO text TODO text
# Templates # Templates
@@ -105,6 +113,8 @@ TODO text
*.config text *.config text
.editorconfig text .editorconfig text
.env text .env text
*.env text
*.env.* text
.gitattributes text .gitattributes text
.gitconfig text .gitconfig text
.htaccess text .htaccess text
@@ -113,7 +123,8 @@ package.json text eol=lf
package-lock.json text eol=lf -diff package-lock.json text eol=lf -diff
pnpm-lock.yaml text eol=lf -diff pnpm-lock.yaml text eol=lf -diff
.prettierrc text .prettierrc text
yarn.lock text -diff # Ensure yarn.lock shows textual diffs
yarn.lock text eol=lf
*.toml text *.toml text
*.yaml text *.yaml text
*.yml text *.yml text
@@ -208,15 +219,38 @@ Procfile text
*.gitignore text *.gitignore text
*.gitkeep text *.gitkeep text
.gitattributes export-ignore .gitattributes text export-ignore
*.gitattributes text export-ignore
.gitmodules text export-ignore
*.gitmodules text export-ignore
**/.gitignore export-ignore **/.gitignore export-ignore
**/.gitkeep export-ignore **/.gitkeep export-ignore
# Repo specials # Repo specials
local/bin/* text eol=lf local/bin/* text eol=lf diff=shell
local/bin/*.md text eol=lf diff=markdown
config/antigen.zsh text config/antigen.zsh text
git/* text git/* text
**/git/* text **/git/* text
**/alias text **/alias text
ssh/* text ssh/* text
ssh/shared.d/* text
ssh/local.d/* text
# Auto-generated rules - 2025-04-16 10:28:04
# Shell scripts detected by content
install text eol=lf diff=shell
# File extension-based rules
*.1 text eol=lf
*.applescript text eol=lf
*.d/work-git text eol=lf
*.dirs text eol=lf
*.example text eol=lf
*.itermcolors text eol=lf
*.locale text eol=lf
*.python-version text eol=lf
*.snippets text eol=lf
*.theme text eol=lf
*.yamlfmt text eol=lf
*.bats text eol=lf diff=shell

30
.github/AGENTS.md vendored Normal file
View File

@@ -0,0 +1,30 @@
# Guidelines for AI contributors
These instructions help language models work with this repository.
## Setup
1. Run `yarn install` to get linting tools and the Bats test framework.
## Formatting
- Format code and docs with Prettier and markdownlint:
```bash
yarn fix:prettier
yarn fix:markdown
```
- Shell scripts should pass `shellcheck`.
## Testing
- When code changes, run `yarn test` to execute Bats tests.
- If only comments or documentation change, tests may be skipped.
## Commits and PRs
- Use Semantic Commit messages: `type(scope): summary`.
- Keep PR titles in the same format.
<!-- vim: set ft=markdown spell spelllang=en_us cc=80 : -->

View File

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

46
.github/README.md vendored
View File

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

View File

@@ -1,5 +1,5 @@
--- ---
# yaml-language-server: https://json.schemastore.org/github-workflow.json # $schema: "https://json.schemastore.org/github-workflow.json"
name: Debug Changelog # Workflow name displayed on GitHub name: Debug Changelog # Workflow name displayed on GitHub
on: on:

View File

@@ -1,8 +1,10 @@
--- ---
# yaml-language-server: https://json.schemastore.org/github-workflow.json # yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: Reviewdog name: Lint Code Base
on: [push] on:
pull_request:
branches: [master, main]
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@@ -11,48 +13,24 @@ concurrency:
permissions: read-all permissions: read-all
jobs: jobs:
linters: Linter:
name: Linters name: PR Lint
runs-on: ubuntu-latest
runs-on: self-hosted timeout-minutes: 15
permissions:
permissions: write-all statuses: write
contents: read
packages: read
steps: steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Yarn Lock Changes
uses: Simek/yarn-lock-changes@34017425198654c20162a4dfd4f238fbece9636f # v0.12.1
- name: GitHub Actions
uses: reviewdog/action-actionlint@a5524e1c19e62881d79c1f1b9b6f09f16356e281 # v1.65.2
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
- name: detect-secrets - name: Run PR Lint
uses: reviewdog/action-detect-secrets@master # https://github.com/ivuorinen/actions
with: uses: ivuorinen/actions/pr-lint@c0f919957eb60743682a6e0cd6d454fd4b142ac9 # 25.6.30
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
- name: markdownlint
uses: reviewdog/action-markdownlint@3667398db9118d7e78f7a63d10e26ce454ba5f58 # v0.26.2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
- name: shfmt
uses: reviewdog/action-shfmt@d8f080930b9be5847b4f97e9f4122b81a82aaeac # v1.0.4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
shfmt_flags: |
--find
--list
--write
--diff
--simplify
--language-dialect bash
--indent 2
--binary-next-line
--case-indent
--space-redirects
--func-next-line

View File

@@ -1,5 +1,5 @@
--- ---
# yaml-language-server: https://json.schemastore.org/github-workflow.json # $schema: "https://json.schemastore.org/github-workflow.json"
name: Release Daily State name: Release Daily State
on: on:
@@ -40,7 +40,7 @@ jobs:
- name: Create release - name: Create release
if: steps.daily-version.outputs.created if: steps.daily-version.outputs.created
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2.2.1 uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ steps.daily-version.outputs.version }} tag_name: ${{ steps.daily-version.outputs.version }}

View File

@@ -1,11 +1,11 @@
--- ---
# yaml-language-server: https://json.schemastore.org/github-workflow.json # $schema: "https://json.schemastore.org/github-workflow.json"
name: Pre-commit autoupdate name: Pre-commit autoupdate
on: on:
schedule: schedule:
# At 04:00 on Monday and Thursday. # At 04:00 on Monday and Thursday.
- cron: "0 4 * * 1,4" - cron: '0 4 * * 1,4'
workflow_dispatch: workflow_dispatch:
concurrency: concurrency:
@@ -16,7 +16,7 @@ permissions: read-all
jobs: jobs:
auto-update: auto-update:
runs-on: ubuntu-latest runs-on: self-hosted
permissions: permissions:
contents: write contents: write
@@ -25,7 +25,7 @@ jobs:
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
- run: pip install pre-commit && pre-commit autoupdate - run: pip install pre-commit && pre-commit autoupdate
@@ -33,6 +33,6 @@ jobs:
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
branch: update/pre-commit-hooks branch: update/pre-commit-hooks
title: "chore: update pre-commit hooks" title: 'chore: update pre-commit hooks'
commit-message: "chore: update pre-commit hooks" commit-message: 'chore: update pre-commit hooks'
body: Update versions of pre-commit hooks to latest version. body: Update versions of pre-commit hooks to latest version.

View File

@@ -1,5 +1,5 @@
--- ---
# yaml-language-server: https://json.schemastore.org/github-workflow.json # $schema: "https://json.schemastore.org/github-workflow.json"
name: Semantic PR name: Semantic PR
on: on:

View File

@@ -1,5 +1,5 @@
--- ---
# yaml-language-server: https://json.schemastore.org/github-workflow.json # $schema: "https://json.schemastore.org/github-workflow.json"
name: Sync labels name: Sync labels
# yamllint disable-line rule:truthy # yamllint disable-line rule:truthy
@@ -11,7 +11,7 @@ on:
- .github/workflows/sync-labels.yml - .github/workflows/sync-labels.yml
- .github/labels.yml - .github/labels.yml
schedule: schedule:
- cron: "34 5 * * *" - cron: '34 5 * * *'
workflow_call: workflow_call:
workflow_dispatch: workflow_dispatch:
@@ -23,10 +23,10 @@ permissions: read-all
jobs: jobs:
SyncLabels: SyncLabels:
runs-on: ubuntu-latest runs-on: self-hosted
permissions: permissions:
issues: write issues: write
steps: steps:
- uses: ivuorinen/actions/sync-labels@main - uses: ivuorinen/actions/sync-labels@c0f919957eb60743682a6e0cd6d454fd4b142ac9 # 25.6.30

View File

@@ -1,11 +1,11 @@
--- ---
# yaml-language-server: https://json.schemastore.org/github-workflow.json # $schema: "https://json.schemastore.org/github-workflow.json"
name: Update submodules name: Update submodules
on: on:
schedule: schedule:
# At 04:00 on Monday and Thursday. # At 04:00 on Monday and Thursday.
- cron: "0 4 * * 1" - cron: '0 4 * * 1'
workflow_dispatch: workflow_dispatch:
concurrency: concurrency:
@@ -21,7 +21,6 @@ jobs:
permissions: write-all permissions: write-all
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with: with:

4
.gitignore vendored
View File

@@ -40,8 +40,12 @@ node_modules
ssh/local.d/* ssh/local.d/*
!ssh/local.d/.gitkeep !ssh/local.d/.gitkeep
config/fish/fish_variables config/fish/fish_variables
**/exports.secret.fish
**/exports-secret.fish **/exports-secret.fish
config/fish/completions/asdf.fish config/fish/completions/asdf.fish
config/vim/.netrwhist config/vim/.netrwhist
config/vim/extra/* config/vim/extra/*
config/gh/hosts.yml config/gh/hosts.yml
dependency-check-report.html
local/bin/yabai
local/man/yabai.1

3
.gitmodules vendored
View File

@@ -80,3 +80,6 @@
shallow = true shallow = true
ignore = dirty ignore = dirty
[submodule "tmux/tmux-resurrect"]
path = config/tmux/plugins/tmux-resurrect
url = https://github.com/tmux-plugins/tmux-resurrect.git

View File

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

View File

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

29
.mega-linter.yml Normal file
View File

@@ -0,0 +1,29 @@
---
# Configuration file for MegaLinter
# See all available variables at
# https://megalinter.io/configuration/ and in linters documentation
APPLY_FIXES: all
SHOW_ELAPSED_TIME: false # Show elapsed time at the end of MegaLinter run
PARALLEL: true
VALIDATE_ALL_CODEBASE: true
FILEIO_REPORTER: false # Generate file.io report
GITHUB_STATUS_REPORTER: true # Generate GitHub status report
IGNORE_GENERATED_FILES: true # Ignore generated files
JAVASCRIPT_DEFAULT_STYLE: prettier # Default style for JavaScript
PRINT_ALPACA: false # Print Alpaca logo in console
SARIF_REPORTER: true # Generate SARIF report
SHOW_SKIPPED_LINTERS: false # Show skipped linters in MegaLinter log
TYPESCRIPT_DEFAULT_STYLE: prettier # Default style for TypeScript
DISABLE_LINTERS:
- REPOSITORY_DEVSKIM
YAML_YAMLLINT_CONFIG_FILE: .yamllint.yml
MARKDOWN_MARKDOWNLINT_CONFIG_FILE: .markdownlint.json
JAVASCRIPT_ES_CONFIG_FILE: .eslintrc.json
TYPESCRIPT_ES_CONFIG_FILE: .eslintrc.json
FILTER_REGEX_EXCLUDE: >
(node_modules|tools|config/cheat/cheatsheets/community|config/cheat/cheatsheets/tldr|config/fzf|config/zsh|config/tmux/plugins)

2
.nvmrc
View File

@@ -1 +1 @@
22.14.0 22.17.0

View File

@@ -23,13 +23,13 @@ repos:
args: [--autofix, --no-sort-keys] args: [--autofix, --no-sort-keys]
- repo: https://github.com/igorshubovych/markdownlint-cli - repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.44.0 rev: v0.45.0
hooks: hooks:
- id: markdownlint - id: markdownlint
args: [-c, .markdownlint.json, --fix] args: [-c, .markdownlint.json, --fix]
- repo: https://github.com/adrienverge/yamllint - repo: https://github.com/adrienverge/yamllint
rev: v1.37.0 rev: v1.37.1
hooks: hooks:
- id: yamllint - id: yamllint
@@ -49,12 +49,12 @@ repos:
- id: actionlint - id: actionlint
- repo: https://github.com/renovatebot/pre-commit-hooks - repo: https://github.com/renovatebot/pre-commit-hooks
rev: 39.212.0 rev: 41.17.2
hooks: hooks:
- id: renovate-config-validator - id: renovate-config-validator
- repo: https://github.com/JohnnyMorganz/StyLua - repo: https://github.com/JohnnyMorganz/StyLua
rev: v2.0.2 rev: v2.1.0
hooks: hooks:
- id: stylua # or stylua-system / stylua-github - id: stylua # or stylua-system / stylua-github

View File

@@ -5,6 +5,7 @@ config/cheat/cheatsheets/community
config/cheat/cheatsheets/tldr config/cheat/cheatsheets/tldr
config/fzf/* config/fzf/*
config/nvim/* config/nvim/*
config/op/plugins/used_plugins/*
config/tmux/plugins/* config/tmux/plugins/*
config/zsh/* config/zsh/*
lazy-lock.json lazy-lock.json

View File

@@ -1 +1 @@
3.13.2 3.13.5

View File

@@ -26,6 +26,8 @@ git submodule add --name tmux/tmux-continuum \
-f https://github.com/tmux-plugins/tmux-continuum config/tmux/plugins/tmux-continuum -f https://github.com/tmux-plugins/tmux-continuum config/tmux/plugins/tmux-continuum
git submodule add --name tmux/tmux-mode-indicator \ git submodule add --name tmux/tmux-mode-indicator \
-f https://github.com/MunifTanjim/tmux-mode-indicator.git config/tmux/plugins/tmux-mode-indicator -f https://github.com/MunifTanjim/tmux-mode-indicator.git config/tmux/plugins/tmux-mode-indicator
git submodule add --name tmux/tmux-resurrect \
-f https://github.com/tmux-plugins/tmux-resurrect.git config/tmux/plugins/tmux-resurrect
git submodule add --name tmux/tmux-sensible \ git submodule add --name tmux/tmux-sensible \
-f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible -f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible
git submodule add --name tmux/tmux-sessionist \ git submodule add --name tmux/tmux-sessionist \
@@ -55,7 +57,6 @@ folders=(
"config/tmux/plugins/tpm" "config/tmux/plugins/tpm"
"config/tmux/plugins/tmux" "config/tmux/plugins/tmux"
"config/tmux/plugins/tmux-menus" "config/tmux/plugins/tmux-menus"
"config/tmux/plugins/tmux-resurrect"
"tools/dotbot-crontab" "tools/dotbot-crontab"
"tools/dotbot-snap" "tools/dotbot-snap"
"config/nvim-kickstart" "config/nvim-kickstart"

View File

@@ -8,14 +8,8 @@
# supported_envs: # supported_envs:
# - all # - all
registries: registries:
- type: standard - type: standard
ref: v4.331.0 # renovate: depName=aquaproj/aqua-registry ref: v4.346.0 # renovate: depName=aquaproj/aqua-registry
packages: packages:
- name: cli/cli - name: cli/cli
version: 'v2.69.0' version: 'v2.69.0'
- name: junegunn/fzf
version: 'v0.60.3'
- name: jqlang/jq
version: 'jq-1.7.1'
- name: 1password/cli
version: '2.30.3'

View File

@@ -75,7 +75,6 @@ cheatpaths:
path: ~/.dotfiles/config/cheat/cheatsheets/personal path: ~/.dotfiles/config/cheat/cheatsheets/personal
tags: [personal] tags: [personal]
readonly: false readonly: false
# While it requires no configuration here, it's also worth noting that # While it requires no configuration here, it's also worth noting that
# cheat will automatically append directories named '.cheat' within the # cheat will automatically append directories named '.cheat' within the
# current working directory to the 'cheatpath'. This can be very useful if # current working directory to the 'cheatpath'. This can be very useful if

View File

@@ -213,7 +213,7 @@ get_sha256sum()
# $2 - filename (string) # $2 - filename (string)
# #
# Returns 1 when replaceable, 0 when not replaceable. # Returns 1 when replaceable, 0 when not replaceable.
replacable() replaceable()
{ {
FILE1="$1" FILE1="$1"
FILE2="$2" FILE2="$2"

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/completions/app.fish:v7.0.0 # @halostatue/fish-macos/completions/app.fish:v7.0.1
complete --command app --erase complete --command app --erase

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/completions/finder.fish:v7.0.0 # @halostatue/fish-macos/completions/finder.fish:v7.0.1
complete --command finder --erase complete --command finder --erase

View File

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

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/completions/mac.fish:v7.0.0 # @halostatue/fish-macos/completions/mac.fish:v7.0.1
complete --command mac --erase complete --command mac --erase

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/completions/manp.fish:v7.0.0 # @halostatue/fish-macos/completions/manp.fish:v7.0.1
complete --command manp --erase complete --command manp --erase
complete --command manp --wraps man complete --command manp --wraps man

View File

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

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/conf.d/halostatue_fish_macos.fish:v7.0.0 # @halostatue/fish-macos/conf.d/halostatue_fish_macos.fish:v7.0.1
function _halostatue_fish_macos_uninstall -e halostatue_fish_macos_uninstall function _halostatue_fish_macos_uninstall -e halostatue_fish_macos_uninstall
set --function functions app finder has_app mac manp note ql remind set --function functions app finder has_app mac manp note ql remind

View File

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

View File

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

View File

@@ -8,18 +8,29 @@ test -e "$HOME/.config/fish/alias.fish" &&
test -e "$HOME/.config/fish/exports.fish" && test -e "$HOME/.config/fish/exports.fish" &&
source "$HOME/.config/fish/exports.fish" source "$HOME/.config/fish/exports.fish"
if status is-interactive test -e "$HOME/.dotfiles/config/fzf/key-bindings.fish" &&
# Commands to run in interactive sessions can go here source "$HOME/.dotfiles/config/fzf/key-bindings.fish"
# Start tmux if not already running and not in SSH if status is-interactive
open-tmux # defined in functions/open-tmux.fish # Commands to run in interactive shell
# 1Password plugins if op command is available
type -q op; and test -e "$HOME/.config/op/plugins.sh" &&
source "$HOME/.config/op/plugins.sh"
# version manager initializers
type -q rbenv; and source (rbenv init -|psub)
type -q pyenv; and source (pyenv init -|psub)
type -q pyenv; and source (pyenv virtualenv-init -|psub)
type -q goenv; and source (goenv init -|psub)
# type -q fnm; and fnm env --use-on-cd --shell fish | source
type -q load_nvm; and load_nvm > /dev/stderr
# Start tmux if not already running and not in SSH
open-tmux # defined in functions/open-tmux.fish
end end
# Added by LM Studio CLI (lms) # Added by LM Studio CLI (lms)
set -gx PATH $PATH $HOME/.lmstudio/bin set -gx PATH $PATH $HOME/.lmstudio/bin
type -q rbenv; and source (rbenv init -|psub) # vim: ft=fish ts=4 sw=4 et:
type -q pyenv; and source (pyenv init -|psub)
type -q goenv; and source (goenv init -|psub)
type -q fnm; and fnm env --use-on-cd --shell fish | source

View File

@@ -22,11 +22,6 @@ fish_add_path "$XDG_BIN_HOME"
# Add cargo bin to path # Add cargo bin to path
fish_add_path "$XDG_SHARE_HOME/cargo/bin" fish_add_path "$XDG_SHARE_HOME/cargo/bin"
# Set Aqua configuration
set -q AQUA_BIN; or set -gx AQUA_BIN "$XDG_DATA_HOME/aquaproj-aqua/bin"
set -q AQUA_CONFIG; or set -gx AQUA_CONFIG "$XDG_CONFIG_HOME/aqua/aqua.yaml"
set -gx PATH $AQUA_BIN $PATH
# NPM/NVM configuration # NPM/NVM configuration
set -q NVM_DIR; or set -x NVM_DIR "$XDG_DATA_HOME/nvm" set -q NVM_DIR; or set -x NVM_DIR "$XDG_DATA_HOME/nvm"
fish_add_path "$NVM_DIR/bin" fish_add_path "$NVM_DIR/bin"
@@ -109,7 +104,6 @@ set -q GNUPGHOME; or set -x GNUPGHOME "$XDG_DATA_HOME/gnupg"
# Go configuration # Go configuration
# set -q GOPATH; or set -x GOPATH "$XDG_DATA_HOME/go" # set -q GOPATH; or set -x GOPATH "$XDG_DATA_HOME/go"
set -q GOBIN; or set -x GOBIN "$XDG_BIN_HOME" set -q GOBIN; or set -x GOBIN "$XDG_BIN_HOME"
fish_add_path "$GOBIN"
set -q GOENV_ROOT; or set -x GOENV_ROOT "$XDG_DATA_HOME/goenv" set -q GOENV_ROOT; or set -x GOENV_ROOT "$XDG_DATA_HOME/goenv"
set -q GOENV_RC_FILE; or set -x GOENV_RC_FILE "$XDG_CONFIG_HOME/goenv/goenvrc.fish" set -q GOENV_RC_FILE; or set -x GOENV_RC_FILE "$XDG_CONFIG_HOME/goenv/goenvrc.fish"
@@ -121,9 +115,6 @@ set -q OP_CACHE; or set -x OP_CACHE "$XDG_STATE_HOME/1password"
set -q WORKON_HOME; or set -x WORKON_HOME "$XDG_DATA_HOME/virtualenvs" set -q WORKON_HOME; or set -x WORKON_HOME "$XDG_DATA_HOME/virtualenvs"
set -q PYENV_ROOT; or set -x PYENV_ROOT "$XDG_DATA_HOME/pyenv" set -q PYENV_ROOT; or set -x PYENV_ROOT "$XDG_DATA_HOME/pyenv"
fish_add_path "$PYENV_ROOT/bin" fish_add_path "$PYENV_ROOT/bin"
if x-have pyenv; and not functions -q pyenv
status --is-interactive; and source (pyenv init - | psub)
end
# Poetry configuration # Poetry configuration
set -q POETRY_HOME; or set -x POETRY_HOME "$XDG_DATA_HOME/poetry" set -q POETRY_HOME; or set -x POETRY_HOME "$XDG_DATA_HOME/poetry"
@@ -134,7 +125,6 @@ set -q CARGO_HOME; or set -x CARGO_HOME "$XDG_DATA_HOME/cargo"
set -q CARGO_BIN_HOME; or set -x CARGO_BIN_HOME "$XDG_BIN_HOME" set -q CARGO_BIN_HOME; or set -x CARGO_BIN_HOME "$XDG_BIN_HOME"
set -q RUSTUP_HOME; or set -x RUSTUP_HOME "$XDG_DATA_HOME/rustup" set -q RUSTUP_HOME; or set -x RUSTUP_HOME "$XDG_DATA_HOME/rustup"
set -x RUST_WITHOUT "clippy,docs,rls" set -x RUST_WITHOUT "clippy,docs,rls"
fish_add_path "$CARGO_BIN_HOME"
fish_add_path "$CARGO_HOME/bin" fish_add_path "$CARGO_HOME/bin"
fish_add_path "$XDG_SHARE_HOME/bob/nvim-bin" fish_add_path "$XDG_SHARE_HOME/bob/nvim-bin"

View File

@@ -2,7 +2,9 @@ jorgebucaran/fisher
ilancosman/tide@v6 ilancosman/tide@v6
jethrokuan/z jethrokuan/z
halostatue/fish-macos@v7 halostatue/fish-macos@v7
jgusta/paths
danhper/fish-ssh-agent danhper/fish-ssh-agent
halostatue/fish-brew@v3 halostatue/fish-brew@v3
edc/bass edc/bass
meaningful-ooo/sponge
nickeb96/puffer-fish
jgusta/paths

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_app_bundleid.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_app_bundleid.fish:v7.0.1
function __macos_app_bundleid function __macos_app_bundleid
argparse --name 'app bundleid' x/exact a/all h/help q/quiet s/short -- $argv argparse --name 'app bundleid' x/exact a/all h/help q/quiet s/short -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_app_find.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_app_find.fish:v7.0.1
function __macos_app_find function __macos_app_find
argparse --name 'app find' x/exact a/all q/quiet h/help -- $argv argparse --name 'app find' x/exact a/all q/quiet h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_app_frontmost.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_app_frontmost.fish:v7.0.1
function __macos_app_frontmost::info function __macos_app_frontmost::info
set --function value (lsappinfo info -only $argv[2] $argv[1] | string split =)[2] set --function value (lsappinfo info -only $argv[2] $argv[1] | string split =)[2]

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_app_icon.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_app_icon.fish:v7.0.1
function __macos_app_icon function __macos_app_icon
argparse --name 'app quit' x/exact h/help 'o/output=' 'w/width=' -- $argv argparse --name 'app quit' x/exact h/help 'o/output=' 'w/width=' -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_app_quit.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_app_quit.fish:v7.0.1
function __macos_app_quit function __macos_app_quit
argparse --name 'app quit' x/exact r/restart h/help -- $argv argparse --name 'app quit' x/exact r/restart h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_cd.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_cd.fish:v7.0.1
function __macos_finder_cd function __macos_finder_cd
argparse --name 'finder cd' h/help -- $argv argparse --name 'finder cd' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_clean.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_clean.fish:v7.0.1
function __macos_finder_clean function __macos_finder_clean
argparse --name 'finder clean' h/help -- $argv argparse --name 'finder clean' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_column.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_column.fish:v7.0.1
function __macos_finder_column function __macos_finder_column
argparse --name 'finder column' h/help -- $argv argparse --name 'finder column' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_desktop_icons.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_desktop_icons.fish:v7.0.1
function __macos_finder_desktop_icons function __macos_finder_desktop_icons
argparse --name 'finder desktop-icons' h/help -- $argv argparse --name 'finder desktop-icons' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_hidden.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_hidden.fish:v7.0.1
function __macos_finder_hidden function __macos_finder_hidden
argparse --name 'finder hidden' h/help -- $argv argparse --name 'finder hidden' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_icon.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_icon.fish:v7.0.1
function __macos_finder_icon function __macos_finder_icon
argparse --name 'finder icon' h/help -- $argv argparse --name 'finder icon' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_list.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_list.fish:v7.0.1
function __macos_finder_list function __macos_finder_list
argparse --name 'finder list' h/help -- $argv argparse --name 'finder list' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_pushd.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_pushd.fish:v7.0.1
function __macos_finder_pushd function __macos_finder_pushd
argparse --name 'finder pushd' h/help -- $argv argparse --name 'finder pushd' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_pwd.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_pwd.fish:v7.0.1
function __macos_finder_pwd function __macos_finder_pwd
argparse --name 'finder pwd' h/help -- $argv argparse --name 'finder pwd' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_quarantine.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_quarantine.fish:v7.0.1
function __macos_finder_quarantine::run function __macos_finder_quarantine::run
set --query argv[1] set --query argv[1]

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_selected.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_selected.fish:v7.0.1
function __macos_finder_selected function __macos_finder_selected
argparse --name 'finder selected' h/help -- $argv argparse --name 'finder selected' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_track.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_track.fish:v7.0.1
function __macos_finder_track function __macos_finder_track
argparse --name 'finder track' h/help -- $argv argparse --name 'finder track' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_untrack.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_untrack.fish:v7.0.1
function __macos_finder_untrack function __macos_finder_untrack
argparse --name 'finder untrack' h/help -- $argv argparse --name 'finder untrack' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_finder_update.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_finder_update.fish:v7.0.1
function __macos_finder_update function __macos_finder_update
argparse --name 'finder update' h/help -- $argv argparse --name 'finder update' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_airdrop.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_airdrop.fish:v7.0.1
function __macos_mac_airdrop function __macos_mac_airdrop
argparse --name 'mac airdrop' h/help -- $argv argparse --name 'mac airdrop' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_airport.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_airport.fish:v7.0.1
function __macos_mac_airport::ssid function __macos_mac_airport::ssid
__macos_mac_airport::run -I | string replace --filter --regex '\s+SSID: (\S+)' '$1' __macos_mac_airport::run -I | string replace --filter --regex '\s+SSID: (\S+)' '$1'

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_brightness.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_brightness.fish:v7.0.1
function __macos_mac_brightness function __macos_mac_brightness
argparse --name 'mac brightness' h/help -- $argv argparse --name 'mac brightness' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_defaults_query.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_defaults_query.fish:v7.0.1
function __macos_mac_defaults_query function __macos_mac_defaults_query
if set --function value (defaults read $argv[1] $argv[2] 2>/dev/null) if set --function value (defaults read $argv[1] $argv[2] 2>/dev/null)

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_flushdns.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_flushdns.fish:v7.0.1
function __macos_mac_flushdns function __macos_mac_flushdns
argparse --name 'mac flushdns' h/help -- $argv argparse --name 'mac flushdns' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_font_smoothing.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_font_smoothing.fish:v7.0.1
function __macos_mac_font_smoothing function __macos_mac_font_smoothing
argparse --name 'mac font-smoothing' h/help -- $argv argparse --name 'mac font-smoothing' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_lsclean.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_lsclean.fish:v7.0.1
function __macos_mac_lsclean function __macos_mac_lsclean
argparse --name 'mac lsclean' h/help -- $argv argparse --name 'mac lsclean' h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_mail.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_mail.fish:v7.0.1
# Speed up Mail.app by vacuuming the Envelope Index # Speed up Mail.app by vacuuming the Envelope Index
# - Code from: http://web.archive.org/web/20071008123746/http://www.hawkwings.net/2007/03/03/scripts-to-automate-the-mailapp-envelope-speed-trick/ # - Code from: http://web.archive.org/web/20071008123746/http://www.hawkwings.net/2007/03/03/scripts-to-automate-the-mailapp-envelope-speed-trick/

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_proxy_icon.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_proxy_icon.fish:v7.0.1
function __macos_mac_proxy_icon function __macos_mac_proxy_icon
argparse --name 'mac proxy-icon' h/help q/query -- $argv argparse --name 'mac proxy-icon' h/help q/query -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_serialnumber.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_serialnumber.fish:v7.0.1
function __macos_mac_serialnumber function __macos_mac_serialnumber
argparse --name 'mac serialnumber' h/help c/copy -- $argv argparse --name 'mac serialnumber' h/help c/copy -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_touchid.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_touchid.fish:v7.0.1
function __macos_mac_touchid function __macos_mac_touchid
argparse --name 'mac touchid' h/help q/quiet -- $argv argparse --name 'mac touchid' h/help q/quiet -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_touchid_sudo.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_touchid_sudo.fish:v7.0.1
# Massively simplified. This version _only_ works if /etc/pam.d/sudo includes `auth # Massively simplified. This version _only_ works if /etc/pam.d/sudo includes `auth
# include sudo_local` and requires manual removal of `pam_reattach` and `pam_tid` from # include sudo_local` and requires manual removal of `pam_reattach` and `pam_tid` from

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_transparency.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_transparency.fish:v7.0.1
function __macos_mac_transparency function __macos_mac_transparency
argparse --name 'mac transparency' h/help q/query -- $argv argparse --name 'mac transparency' h/help q/query -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_version.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_version.fish:v7.0.1
function __macos_mac_version function __macos_mac_version
argparse \ argparse \

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/__macos_mac_vol.fish:v7.0.0 # @halostatue/fish-macos/functions/__macos_mac_vol.fish:v7.0.1
function __macos_mac_vol function __macos_mac_vol
argparse --name 'mac vol' h/help -- $argv argparse --name 'mac vol' h/help -- $argv

View File

@@ -0,0 +1,9 @@
function _puffer_fish_expand_bang
switch (commandline -t)
case '!'
commandline -t $history[1]
case '*'
commandline -i '!'
end
end

View File

@@ -0,0 +1,9 @@
function _puffer_fish_expand_dots -d 'expand ... to ../.. etc'
set -l cmd (commandline --cut-at-cursor)
set -l split (string split -- ' ' $cmd)
if string match --quiet --regex -- '^(\.\./)*\.\.$' $split[-1]
commandline --insert '/..'
else
commandline --insert '.'
end
end

View File

@@ -0,0 +1,9 @@
function _puffer_fish_expand_lastarg
switch (commandline -t)
case '!'
commandline -t ""
commandline -f history-token-search-backward
case '*'
commandline -i '$'
end
end

View File

@@ -0,0 +1,5 @@
function _sponge_clear_state
set --erase --global _sponge_current_command
set --erase --global _sponge_current_command_exit_code
set --erase --global _sponge_current_command_previously_in_history
end

View File

@@ -0,0 +1,3 @@
function _sponge_on_exit --on-event fish_exit
sponge_delay=0 _sponge_remove_from_history
end

View File

@@ -0,0 +1,24 @@
function _sponge_on_postexec --on-event fish_postexec
set --global _sponge_current_command_exit_code $status
# Remove command from the queue if it's been added previously
if set --local index (contains --index -- $_sponge_current_command $_sponge_queue)
set --erase _sponge_queue[$index]
end
# Ignore empty commands
if test -n $_sponge_current_command
set --local command ''
# Run filters
for filter in $sponge_filters
if $filter \
$_sponge_current_command \
$_sponge_current_command_exit_code \
$_sponge_current_command_previously_in_history
set command $_sponge_current_command
break
end
end
set --prepend --global _sponge_queue $command
end
end

View File

@@ -0,0 +1,16 @@
function _sponge_on_preexec --on-event fish_preexec \
--argument-names command
_sponge_clear_state
set --global _sponge_current_command $command
builtin history search --case-sensitive --exact --max=1 --null $command \
| read --local --null found_entries
# If a command is in the history and in the queue, ignore it, like if it wasnt in the history
if test (count $found_entries) -ne 0; and not contains $command $_sponge_queue
set --global _sponge_current_command_previously_in_history true
else
set --global _sponge_current_command_previously_in_history false
end
end

View File

@@ -0,0 +1,5 @@
function _sponge_on_prompt --on-event fish_prompt
if test $sponge_purge_only_on_exit = false
_sponge_remove_from_history
end
end

View File

@@ -0,0 +1,9 @@
function _sponge_remove_from_history
while test (count $_sponge_queue) -gt $sponge_delay
builtin history delete --case-sensitive --exact -- $_sponge_queue[-1]
set --erase _sponge_queue[-1]
end
builtin history save
end

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/app.fish:v7.0.0 # @halostatue/fish-macos/functions/app.fish:v7.0.1
function app --description 'Operate on macOS applications' function app --description 'Operate on macOS applications'
argparse --stop-nonopt h/help -- $argv argparse --stop-nonopt h/help -- $argv

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/finder.fish:v7.0.0 # @halostatue/fish-macos/functions/finder.fish:v7.0.1
function __macos_finder_defaults::query function __macos_finder_defaults::query
set --query argv[1] set --query argv[1]

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/has_app.fish:v7.0.0 # @halostatue/fish-macos/functions/has_app.fish:v7.0.1
function has_app --description 'Returns true if the named application exists' function has_app --description 'Returns true if the named application exists'
# Suppress these flags being passed to __macos_app_find # Suppress these flags being passed to __macos_app_find

View File

@@ -0,0 +1,16 @@
function load_nvm --on-variable="PWD"
set -l default_node_version (nvm version default)
set -l node_version (nvm version)
set -l nvmrc_path (nvm_find_nvmrc)
if test -n "$nvmrc_path"
set -l nvmrc_node_version (nvm version (cat $nvmrc_path))
if test "$nvmrc_node_version" = "N/A"
nvm install (cat $nvmrc_path)
else if test "$nvmrc_node_version" != "$node_version"
nvm use $nvmrc_node_version
end
else if test "$node_version" != "$default_node_version"
echo "Reverting to default Node version"
nvm use default
end
end

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/mac.fish:v7.0.0 # @halostatue/fish-macos/functions/mac.fish:v7.0.1
function mac --description 'Manage several macOS functions' function mac --description 'Manage several macOS functions'
argparse --stop-nonopt h/help -- $argv argparse --stop-nonopt h/help -- $argv
@@ -36,6 +36,8 @@ Options:
__macos_mac_airdrop $argv __macos_mac_airdrop $argv
case airport case airport
__macos_mac_airport $argv __macos_mac_airport $argv
case brightness
__macos_mac_brightness $argv
case flushdns case flushdns
__macos_mac_flushdns $argv __macos_mac_flushdns $argv
case font-smoothing case font-smoothing

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/manp.fish:v7.0.0 # @halostatue/fish-macos/functions/manp.fish:v7.0.1
# Based on man2pdf.sh created by Pico Mitchell (of Random Applications) # Based on man2pdf.sh created by Pico Mitchell (of Random Applications)
# on 11/16/22, licensed under the MIT license. # on 11/16/22, licensed under the MIT license.

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/note.fish:v7.0.0 # @halostatue/fish-macos/functions/note.fish:v7.0.1
function note --description 'Add a note to Notes.app' function note --description 'Add a note to Notes.app'
is_mac 'mountain lion' is_mac 'mountain lion'

View File

@@ -0,0 +1,4 @@
function nvm
bass source $NVM_DIR/nvm.sh --no-use ';' nvm $argv
end

View File

@@ -0,0 +1,3 @@
function nvm_find_nvmrc
bass source $NVM_DIR/nvm.sh --no-use ';' nvm_find_nvmrc
end

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/ql.fish:v7.0.0 # @halostatue/fish-macos/functions/ql.fish:v7.0.1
function ql --description 'QuickLook a file or directory' function ql --description 'QuickLook a file or directory'
# Updated based on https://gist.github.com/chockenberry/13c15466417b88e40f23e58df8091dac # Updated based on https://gist.github.com/chockenberry/13c15466417b88e40f23e58df8091dac

View File

@@ -1,4 +1,4 @@
# @halostatue/fish-macos/functions/remind.fish:v7.0.0 # @halostatue/fish-macos/functions/remind.fish:v7.0.1
function remind --description 'Add a reminder to Reminders.app' function remind --description 'Add a reminder to Reminders.app'
is_mac 'mountain lion' is_mac 'mountain lion'

View File

@@ -0,0 +1,11 @@
function sponge_filter_failed \
--argument-names command exit_code previously_in_history
if test $previously_in_history = true -a $sponge_allow_previously_successful = true
return 1
end
if contains $exit_code $sponge_successful_exit_codes
return 1
end
end

View File

@@ -0,0 +1,11 @@
function sponge_filter_matched \
--argument-names command
for pattern in $sponge_regex_patterns
if string match --regex --quiet $pattern -- $command
return
end
end
return 1
end

View File

@@ -46,7 +46,7 @@
autoStash = true autoStash = true
updateRefs = true updateRefs = true
[merge] [merge]
conflictstyle = zdiff3 conflictStyle = diff3
[pull] [pull]
rebase = true rebase = true
[color "diff-highlight"] [color "diff-highlight"]

View File

@@ -89,6 +89,8 @@ brew "coreutils"
brew "bats-core" brew "bats-core"
# Parser generator # Parser generator
brew "bison" brew "bison"
# Freely available high-quality data compressor
brew "bzip2"
# Software library to render fonts # Software library to render fonts
brew "freetype" brew "freetype"
# XML-based font configuration API for X Windows # XML-based font configuration API for X Windows
@@ -107,12 +109,16 @@ brew "choose-rust"
brew "cmake" brew "cmake"
# Get a file from an HTTP, HTTPS or FTP server # Get a file from an HTTP, HTTPS or FTP server
brew "curl" brew "curl"
# OpenType text shaping engine
brew "harfbuzz"
# OWASP dependency-check
brew "dependency-check"
# Lightweight DNS forwarder and DHCP server # Lightweight DNS forwarder and DHCP server
brew "dnsmasq" brew "dnsmasq"
# .NET Core
brew "dotnet@8", link: true
# Spellchecker wrapping library # Spellchecker wrapping library
brew "enchant" brew "enchant"
# Command-line tool to interact with exercism.io
brew "exercism"
# Perl lib for reading and writing EXIF metadata # Perl lib for reading and writing EXIF metadata
brew "exiftool" brew "exiftool"
# Banner-like program prints strings as ASCII art # Banner-like program prints strings as ASCII art
@@ -121,8 +127,6 @@ brew "figlet"
brew "fish" brew "fish"
# Lock file during command # Lock file during command
brew "flock" brew "flock"
# Fast and simple Node.js version manager
brew "fnm"
# Libraries to talk to Microsoft SQL Server and Sybase databases # Libraries to talk to Microsoft SQL Server and Sybase databases
brew "freetds" brew "freetds"
# Monitor a directory for changes and run a shell command # Monitor a directory for changes and run a shell command
@@ -135,8 +139,6 @@ brew "gd"
brew "gdu" brew "gdu"
# GitHub command-line tool # GitHub command-line tool
brew "gh" brew "gh"
# OpenType text shaping engine
brew "harfbuzz"
# Secure hashing function # Secure hashing function
brew "libb2" brew "libb2"
# Framework for layout and rendering of i18n text # Framework for layout and rendering of i18n text
@@ -193,6 +195,8 @@ brew "jq"
brew "json-c" brew "json-c"
# Network authentication protocol # Network authentication protocol
brew "krb5" brew "krb5"
# Style and grammar checker
brew "languagetool"
# Tool to detect/remediate misconfig and security risks of GitHub/GitLab assets # Tool to detect/remediate misconfig and security risks of GitHub/GitLab assets
brew "legitify" brew "legitify"
# BSD-style licensed readline alternative # BSD-style licensed readline alternative
@@ -220,7 +224,7 @@ brew "nginx"
# Port scanning utility for large networks # Port scanning utility for large networks
brew "nmap" brew "nmap"
# Platform built on V8 to build network applications # Platform built on V8 to build network applications
brew "node" brew "node", link: false
# Libraries for security-enabled client and server applications # Libraries for security-enabled client and server applications
brew "nss" brew "nss"
# Command-line Git information tool # Command-line Git information tool
@@ -230,6 +234,8 @@ brew "openldap"
# ISO-C API and CLI for generating UUIDs # ISO-C API and CLI for generating UUIDs
brew "ossp-uuid" brew "ossp-uuid"
# General-purpose scripting language # General-purpose scripting language
brew "php", link: false
# General-purpose scripting language
brew "php@8.2", link: true brew "php@8.2", link: true
# General-purpose scripting language # General-purpose scripting language
brew "php@8.3" brew "php@8.3"
@@ -255,6 +261,8 @@ brew "re2c"
brew "rustup" brew "rustup"
# Static analysis and lint tool, for (ba)sh scripts # Static analysis and lint tool, for (ba)sh scripts
brew "shellcheck" brew "shellcheck"
# User interface to the TELNET protocol
brew "telnet"
# Send macOS User Notifications from the command-line # Send macOS User Notifications from the command-line
brew "terminal-notifier" brew "terminal-notifier"
# Tool which checks for the support of TLS/SSL ciphers and flaws # Tool which checks for the support of TLS/SSL ciphers and flaws
@@ -313,8 +321,6 @@ brew "shivammathur/php/php-debug"
brew "shivammathur/php/php@8.2-debug" brew "shivammathur/php/php@8.2-debug"
# Command-line interface for 1Password # Command-line interface for 1Password
cask "1password-cli" cask "1password-cli"
# AeroSpace is an i3-like tiling window manager for macOS
cask "aerospace"
# Universal database tool and SQL client # Universal database tool and SQL client
cask "dbeaver-community" cask "dbeaver-community"
# Database version management tool # Database version management tool

View File

@@ -1,15 +1,46 @@
"" Source your .vimrc "" Source your .vimrc
source ~/.dotfiles/config/vim/vimrc source $HOME/.dotfiles/config/vim/vimrc
" https://github.com/ville6000/dotfiles/blob/main/vimrc " https://github.com/ville6000/dotfiles/blob/main/vimrc
" To get a list of Actions run `:actionlist ` " To get a list of Actions run `:actionlist `
let mapleader = "\<SPACE>" let mapleader = "\<SPACE>"
set clipboard+=unnamed set clipboard+=unnamed
set cursorline " Highlight current line
set nocompatible " disable compatibility mode with vi
filetype off " disable filetype detection (but re-enable later, see below)
set undolevels=1000 " Number of undo levels
set backspace=indent,eol,start " Backspace behaviour
" Show a few lines of context around the cursor. Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5
" Do incremental searching.
set incsearch
" Don't use Ex mode, use Q for formatting.
map Q gq
call plug#begin('~/.config/vim/plugged')
" Plug 'ayu-theme/ayu-vim'
call plug#end()
set ideajoin set ideajoin
set ideastatusicon=gray
set ideamarks set ideamarks
set idearefactormode=normal set idearefactormode=normal
set which-key
set mini-ai
" which-key settings
" https://github.com/TheBlob42/idea-which-key
let g:WhichKey_ShowVimActions = "true"
let g:WhichKey_DefaultDelay = 600 " make the popup appear much slower
let g:WhichKey_PrefixStyle = "bold"
" disable the timeout option
set notimeout
" Map esc to :noh " Map esc to :noh
map <esc> :noh<cr> map <esc> :noh<cr>
@@ -31,7 +62,6 @@ nmap <leader>ss <Action>(GotoSymbol)
nmap <leader>fl <Action>(RecentLocations) nmap <leader>fl <Action>(RecentLocations)
nmap <leader>fc <Action>(FindInPath) nmap <leader>fc <Action>(FindInPath)
nmap <leader>fr <Action>(RecentFiles) nmap <leader>fr <Action>(RecentFiles)
nmap <leader>fe :NERDTreeToggle<CR>
nmap <Leader>fu :action FindUsages<CR> nmap <Leader>fu :action FindUsages<CR>
nmap <Leader>ff :action GotoFile<CR> nmap <Leader>ff :action GotoFile<CR>
nmap <leader>fi <Action>(SelectIn) nmap <leader>fi <Action>(SelectIn)
@@ -168,27 +198,32 @@ nnoremap 'x `X
nnoremap 'y `Y nnoremap 'y `Y
nnoremap 'z `Z nnoremap 'z `Z
" Harpoon
nmap <leader><C-1> :action SetHarpoon1<cr>
nmap <leader><C-2> :action SetHarpoon2<cr>
nmap <leader><C-3> :action SetHarpoon3<cr>
nmap <leader><C-4> :action SetHarpoon4<cr>
nmap <leader><C-5> :action SetHarpoon5<cr>
nmap <leader><C-6> :action SetHarpoon6<cr>
nmap <C-1> :action GotoHarpoon1<cr>
nmap <C-2> :action GotoHarpoon2<cr>
nmap <C-3> :action GotoHarpoon3<cr>
nmap <C-4> :action GotoHarpoon4<cr>
nmap <C-5> :action GotoHarpoon5<cr>
nmap <C-6> :action GotoHarpoon6<cr>
nmap <C-e> :action ShowHarpoon<cr>
nmap <C-a> :action AddToHarpoon<cr>
" --- " ---
set cursorline " Highlight current line
set nocompatible " disable compatibility mode with vi
filetype off " disable filetype detection (but re-enable later, see below)
set undolevels=1000 " Number of undo levels
set backspace=indent,eol,start " Backspace behaviour
" Don't use Ex mode, use Q for formatting.
map Q gq
syntax enable syntax enable
filetype plugin indent on filetype plugin indent on
" call plug#begin('~/.config/vim/plugged')
" Plug 'ayu-theme/ayu-vim'
" call plug#end()
set termguicolors set termguicolors
if has('gui_running') if has('gui_running')
set macligatures set macligatures
set guifont=JetBrainsMono:h14 set guifont=JetBrainsMono:h14
endif endif
" vim: set filetype=vim :

View File

@@ -1,7 +1,7 @@
# EditorConfig is awesome: https://editorconfig.org # EditorConfig is awesome: https://editorconfig.org
# top-most EditorConfig file # top-most EditorConfig file
root = true root = false
[*] [*]
end_of_line = lf end_of_line = lf
@@ -18,3 +18,7 @@ trim_trailing_whitespace = false
[*.json] [*.json]
max_line_length = off max_line_length = off
[*.lua]
max_line_length = 90

View File

@@ -1,4 +1,4 @@
column_width = 80 column_width = 90
line_endings = "Unix" line_endings = "Unix"
indent_type = "Spaces" indent_type = "Spaces"
indent_width = 2 indent_width = 2

View File

@@ -0,0 +1,2 @@
autocmd BufRead,BufNewFile *.env set ft=env
autocmd BufRead,BufNewFile *.env.* set ft=env

View File

@@ -5,7 +5,7 @@
-- ── Install lazylazy ──────────────────────────────────────────────── -- ── Install lazylazy ────────────────────────────────────────────────
-- https://github.com/folke/lazy.nvim -- https://github.com/folke/lazy.nvim
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
if not vim.uv.fs_stat(lazypath) then if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = 'https://github.com/folke/lazy.nvim.git' local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
local out = vim.fn.system { local out = vim.fn.system {
'git', 'git',
@@ -28,10 +28,7 @@ end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
-- ── Add ~/.local/bin to the PATH ──────────────────────────────────── -- ── Add ~/.local/bin to the PATH ────────────────────────────────────
vim.fn.setenv( vim.fn.setenv('PATH', vim.fn.expand '$HOME/.local/bin' .. ':' .. vim.fn.expand '$PATH')
'PATH',
vim.fn.expand '$HOME/.local/bin' .. ':' .. vim.fn.expand '$PATH'
)
require 'options' require 'options'
require 'autogroups' require 'autogroups'
@@ -68,4 +65,4 @@ require('lazy').setup(
require 'keymaps' require 'keymaps'
-- vim: ts=2 sts=2 sw=2 et -- vim: set ts=2 sts=2 sw=2 wrap et :

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