Compare commits

...

63 Commits

Author SHA1 Message Date
6b26215197 chore: add move.sh and skhdrc tweaks 2025-06-24 04:43: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
116 changed files with 2451 additions and 9246 deletions

45
.gitattributes vendored
View File

@@ -1,4 +1,4 @@
## GITATTRIBUTES FOR WEB PROJECTS
## GITATTRIBUTES
#
# These settings are for any web project.
#
@@ -20,20 +20,23 @@
*.bat text eol=crlf
*.cmd text eol=crlf
*.coffee text
*.css text diff=css
*.htm text diff=html
*.html text diff=html
*.css text diff=css eol=lf
*.fish text diff=shell eol=lf
*.htm text diff=html eol=lf
*.html text diff=html eol=lf
*.inc text
*.ini text
*.js text
*.json text
*.jsx text
*.less text
*.lua text diff=lua eol=lf
*.ls text
*.map text -diff
*.od text
*.onlydata text
*.php text diff=php
*.plist text eol=lf
*.pl text
*.ps1 text eol=crlf
*.py text diff=python
@@ -41,15 +44,18 @@
*.sass text
*.scm text
*.scss text diff=css
*.sh text eol=lf
*.sh text eol=lf diff=shell
.husky/* text eol=lf
*.sql text
*.styl text
*.tag text
*.tmux text eol=lf diff=tmux
*.ts text
*.tsx text
*.vim text eol=lf
*.xml text
*.xhtml text diff=html
*.zsh text diff=zsh eol=lf
# Docker
Dockerfile text
@@ -68,6 +74,7 @@ Dockerfile text
AUTHORS text
CHANGELOG text
CHANGES text
CODEOWNERS text
CONTRIBUTING text
COPYING text
copyright text
@@ -105,6 +112,8 @@ TODO text
*.config text
.editorconfig text
.env text
*.env text
*.env.* text
.gitattributes text
.gitconfig text
.htaccess text
@@ -208,15 +217,37 @@ Procfile text
*.gitignore 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
**/.gitkeep export-ignore
# 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
git/* text
**/git/* text
**/alias 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

View File

@@ -19,9 +19,11 @@ jobs:
permissions: write-all
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Node.js environment
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- name: GitHub Actions
uses: reviewdog/action-actionlint@a5524e1c19e62881d79c1f1b9b6f09f16356e281 # v1.65.2
with:

View File

@@ -40,7 +40,7 @@ jobs:
- name: Create release
if: steps.daily-version.outputs.created
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2
uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ steps.daily-version.outputs.version }}

View File

@@ -5,7 +5,7 @@ name: Pre-commit autoupdate
on:
schedule:
# At 04:00 on Monday and Thursday.
- cron: "0 4 * * 1,4"
- cron: '0 4 * * 1,4'
workflow_dispatch:
concurrency:
@@ -25,7 +25,7 @@ jobs:
steps:
- 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
@@ -33,6 +33,6 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: update/pre-commit-hooks
title: "chore: update pre-commit hooks"
commit-message: "chore: 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.

View File

@@ -11,7 +11,7 @@ on:
- .github/workflows/sync-labels.yml
- .github/labels.yml
schedule:
- cron: "34 5 * * *"
- cron: '34 5 * * *'
workflow_call:
workflow_dispatch:

View File

@@ -5,7 +5,7 @@ name: Update submodules
on:
schedule:
# At 04:00 on Monday and Thursday.
- cron: "0 4 * * 1"
- cron: '0 4 * * 1'
workflow_dispatch:
concurrency:
@@ -21,7 +21,6 @@ jobs:
permissions: write-all
steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:

View File

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

View File

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

2
.nvmrc
View File

@@ -1 +1 @@
22.14.0
22.16.0

View File

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

View File

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

View File

@@ -1 +1 @@
3.13.3
3.13.5

View File

@@ -8,8 +8,8 @@
# supported_envs:
# - all
registries:
- type: standard
ref: v4.346.0 # renovate: depName=aquaproj/aqua-registry
- type: standard
ref: v4.346.0 # renovate: depName=aquaproj/aqua-registry
packages:
- name: cli/cli
version: 'v2.69.0'
- name: cli/cli
version: 'v2.69.0'

View File

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

View File

@@ -213,7 +213,7 @@ get_sha256sum()
# $2 - filename (string)
#
# Returns 1 when replaceable, 0 when not replaceable.
replacable()
replaceable()
{
FILE1="$1"
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

View File

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

View File

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

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

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 --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 --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
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,9 +8,6 @@ test -e "$HOME/.config/fish/alias.fish" &&
test -e "$HOME/.config/fish/exports.fish" &&
source "$HOME/.config/fish/exports.fish"
test -e "$HOME/.config/fish/exports.secret.fish" &&
source "$HOME/.config/fish/exports.secret.fish"
test -e "$HOME/.dotfiles/config/fzf/key-bindings.fish" &&
source "$HOME/.dotfiles/config/fzf/key-bindings.fish"

View File

@@ -22,11 +22,6 @@ fish_add_path "$XDG_BIN_HOME"
# Add cargo bin to path
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
set -q NVM_DIR; or set -x NVM_DIR "$XDG_DATA_HOME/nvm"
fish_add_path "$NVM_DIR/bin"
@@ -109,7 +104,6 @@ set -q GNUPGHOME; or set -x GNUPGHOME "$XDG_DATA_HOME/gnupg"
# Go configuration
# set -q GOPATH; or set -x GOPATH "$XDG_DATA_HOME/go"
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_RC_FILE; or set -x GOENV_RC_FILE "$XDG_CONFIG_HOME/goenv/goenvrc.fish"
@@ -131,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 RUSTUP_HOME; or set -x RUSTUP_HOME "$XDG_DATA_HOME/rustup"
set -x RUST_WITHOUT "clippy,docs,rls"
fish_add_path "$CARGO_BIN_HOME"
fish_add_path "$CARGO_HOME/bin"
fish_add_path "$XDG_SHARE_HOME/bob/nvim-bin"

View File

@@ -2,7 +2,9 @@ jorgebucaran/fisher
ilancosman/tide@v6
jethrokuan/z
halostatue/fish-macos@v7
jgusta/paths
danhper/fish-ssh-agent
halostatue/fish-brew@v3
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
__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
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
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
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
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
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
# - 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
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
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
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
# 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
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
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
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'
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
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'
# Suppress these flags being passed to __macos_app_find

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'
argparse --stop-nonopt h/help -- $argv
@@ -36,6 +36,8 @@ Options:
__macos_mac_airdrop $argv
case airport
__macos_mac_airport $argv
case brightness
__macos_mac_brightness $argv
case flushdns
__macos_mac_flushdns $argv
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)
# 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'
is_mac 'mountain lion'

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'
# 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'
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
updateRefs = true
[merge]
conflictstyle = zdiff3
conflictStyle = diff3
[pull]
rebase = true
[color "diff-highlight"]

View File

@@ -89,6 +89,8 @@ brew "coreutils"
brew "bats-core"
# Parser generator
brew "bison"
# Freely available high-quality data compressor
brew "bzip2"
# Software library to render fonts
brew "freetype"
# XML-based font configuration API for X Windows
@@ -113,10 +115,10 @@ brew "harfbuzz"
brew "dependency-check"
# Lightweight DNS forwarder and DHCP server
brew "dnsmasq"
# .NET Core
brew "dotnet@8", link: true
# Spellchecker wrapping library
brew "enchant"
# Command-line tool to interact with exercism.io
brew "exercism"
# Perl lib for reading and writing EXIF metadata
brew "exiftool"
# Banner-like program prints strings as ASCII art
@@ -222,7 +224,7 @@ brew "nginx"
# Port scanning utility for large networks
brew "nmap"
# Platform built on V8 to build network applications
brew "node"
brew "node", link: false
# Libraries for security-enabled client and server applications
brew "nss"
# Command-line Git information tool
@@ -232,9 +234,9 @@ brew "openldap"
# ISO-C API and CLI for generating UUIDs
brew "ossp-uuid"
# General-purpose scripting language
brew "php"
brew "php", link: false
# General-purpose scripting language
brew "php@8.2"
brew "php@8.2", link: true
# General-purpose scripting language
brew "php@8.3"
# Pins GitHub Actions to full hashes and versions
@@ -259,6 +261,8 @@ brew "re2c"
brew "rustup"
# Static analysis and lint tool, for (ba)sh scripts
brew "shellcheck"
# User interface to the TELNET protocol
brew "telnet"
# Send macOS User Notifications from the command-line
brew "terminal-notifier"
# Tool which checks for the support of TLS/SSL ciphers and flaws
@@ -317,8 +321,6 @@ brew "shivammathur/php/php-debug"
brew "shivammathur/php/php@8.2-debug"
# Command-line interface for 1Password
cask "1password-cli"
# AeroSpace is an i3-like tiling window manager for macOS
cask "aerospace"
# Universal database tool and SQL client
cask "dbeaver-community"
# Database version management tool
@@ -340,8 +342,6 @@ cask "jetbrains-toolbox"
cask "keybase"
# Kubernetes IDE
cask "lens"
# Neovim Client
cask "neovide"
# Reverse proxy, secure introspectable tunnels to localhost
cask "ngrok"
# Simple application that will prevent iTunes or Apple Music from launching

View File

@@ -6,10 +6,41 @@ source $HOME/.dotfiles/config/vim/vimrc
let mapleader = "\<SPACE>"
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 ideastatusicon=gray
set ideamarks
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> :noh<cr>
@@ -31,7 +62,6 @@ nmap <leader>ss <Action>(GotoSymbol)
nmap <leader>fl <Action>(RecentLocations)
nmap <leader>fc <Action>(FindInPath)
nmap <leader>fr <Action>(RecentFiles)
nmap <leader>fe :NERDTreeToggle<CR>
nmap <Leader>fu :action FindUsages<CR>
nmap <Leader>ff :action GotoFile<CR>
nmap <leader>fi <Action>(SelectIn)
@@ -168,27 +198,32 @@ nnoremap 'x `X
nnoremap 'y `Y
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
filetype plugin indent on
" call plug#begin('~/.config/vim/plugged')
" Plug 'ayu-theme/ayu-vim'
" call plug#end()
set termguicolors
if has('gui_running')
set macligatures
set guifont=JetBrainsMono:h14
endif
" vim: set filetype=vim :

View File

@@ -5,7 +5,7 @@
-- ── Install lazylazy ────────────────────────────────────────────────
-- https://github.com/folke/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 out = vim.fn.system {
'git',

View File

@@ -13,7 +13,7 @@ local a = vim.api -- A table to store API functions
g.mapleader = ' ' -- Space as the leader key
g.maplocalleader = ' ' -- Space as the local leader key
g.colors_theme = 'pencil' -- Set the colorscheme
g.colors_theme = 'onedark' -- Set the colorscheme
-- g.colors_variant_light = 'tokyonight-day' -- Set the light variant
-- g.colors_variant_dark = 'tokyonight-storm' -- Set the dark variant

View File

@@ -2,6 +2,7 @@ return {
-- A collection of small QoL plugins for Neovim
-- https://github.com/folke/snacks.nvim
{
---@module 'snacks'
'folke/snacks.nvim',
priority = 1000,
lazy = false,
@@ -42,6 +43,7 @@ return {
-- replaces the UI for messages, cmdline and the popupmenu.
-- https://github.com/folke/noice.nvim
{
---@module 'noice'
'folke/noice.nvim',
event = 'VeryLazy',
dependencies = {
@@ -122,10 +124,12 @@ return {
-- trouble your code is causing.
-- https://github.com/folke/trouble.nvim
{
---@module 'trouble'
'folke/trouble.nvim',
lazy = false,
cmd = 'Trouble',
dependencies = { 'nvim-tree/nvim-web-devicons' },
---@type trouble.Config
opts = {
auto_preview = true,
auto_fold = true,

View File

@@ -38,41 +38,46 @@ return {
-- Rename the variable under your cursor.
-- Most Language Servers support renaming across files, etc.
map('grn', vim.lsp.buf.rename, '[R]e[n]ame')
map('<leader>grn', vim.lsp.buf.rename, '[R]e[n]ame')
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map('gra', vim.lsp.buf.code_action, '[G]oto Code [A]ction', { 'n', 'x' })
map(
'<leader>gra',
vim.lsp.buf.code_action,
'[G]oto Code [A]ction',
{ 'n', 'x' }
)
-- Find references for the word under your cursor.
map('grr', tsb.lsp_references, '[G]oto [R]eferences')
map('<leader>grr', tsb.lsp_references, '[G]oto [R]eferences')
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without
-- an actual implementation.
map('gri', tsb.lsp_implementations, '[G]oto [I]mplementation')
map('<leader>gri', tsb.lsp_implementations, '[G]oto [I]mplementation')
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is
-- defined, etc. To jump back, press <C-t>.
map('grd', tsb.lsp_definitions, '[G]oto [D]efinition')
map('<leader>grd', tsb.lsp_definitions, '[G]oto [D]efinition')
-- WARN: This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map('grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
map('<leader>grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
map('gO', tsb.lsp_document_symbols, 'Open Document Symbols')
map('<leader>gO', tsb.lsp_document_symbols, 'Open Document Symbols')
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
map('gW', tsb.lsp_dynamic_workspace_symbols, 'Open Workspace Symbols')
map('<leader>gW', tsb.lsp_dynamic_workspace_symbols, 'Open Workspace Symbols')
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map('grt', tsb.lsp_type_definitions, '[G]oto [T]ype Definition')
map('<leader>grt', tsb.lsp_type_definitions, '[G]oto [T]ype Definition')
-- This function resolves a difference between neovim nightly
-- (version 0.11) and stable (version 0.10)
@@ -227,17 +232,6 @@ return {
tailwindcss = {},
terraformls = {},
ts_ls = {},
volar = {
settings = {
typescript = {
inlayHints = {
enumMemberValues = { enabled = true },
functionLikeReturnTypes = { enabled = true },
propertyDeclarationTypes = { enabled = true },
},
},
},
},
vimls = {},
eslint = {},
yamlls = {
@@ -270,6 +264,7 @@ return {
require('mason-lspconfig').setup {
ensure_installed = {}, -- explicitly set to an empty table
automatic_enable = true,
automatic_installation = false,
handlers = {
function(server_name)

View File

@@ -12,6 +12,42 @@ return {
version = '*',
priority = 1001,
config = function()
-- ╭─────────────────────────────────────────────────────────╮
-- │ Text editing │
-- ╰─────────────────────────────────────────────────────────╯
-- Better Around/Inside textobjects
-- Examples:
-- - va) - [V]isually select [A]round [)]paren
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote
-- - ci' - [C]hange [I]nside [']quote
require('mini.ai').setup { n_lines = 500 }
-- Comment lines
require('mini.comment').setup()
-- Text edit operators
-- g= - Evaluate text and replace with output
-- gx - Exchange text regions
-- gm - Multiply (duplicate) text
-- gr - Replace text with register
-- gs - Sort text
require('mini.operators').setup()
-- Split and join arguments, lists, and other sequences
require('mini.splitjoin').setup()
-- Fast and feature-rich surround actions
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
-- - sd' - [S]urround [D]elete [']quotes
-- - sr)' - [S]urround [R]eplace [)] [']
-- - sff - find right (`sf`) part of surrounding function call (`f`)
require('mini.surround').setup()
-- ╭─────────────────────────────────────────────────────────╮
-- │ General workflow │
-- ╰─────────────────────────────────────────────────────────╯
-- Presets for common options and mappings
-- h: MiniBasics.config
require('mini.basics').setup {
@@ -25,25 +61,12 @@ return {
},
}
-- Better Around/Inside textobjects
--
-- Examples:
-- - va) - [V]isually select [A]round [)]paren
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote
-- - ci' - [C]hange [I]nside [']quote
require('mini.ai').setup { n_lines = 500 }
-- Animate common Neovim actions
-- Replaced anuvyklack/windows.nvim
require('mini.animate').setup()
-- Buffer removing (unshow, delete, wipeout), which saves window layout
-- Replaced famiu/bufdelete.nvim
require('mini.bufremove').setup()
-- Show next key clues
-- Replaced folke/which-key.nvim
local miniclue = require 'mini.clue'
---@modules mini.clue
miniclue.setup {
window = {
config = {
@@ -108,22 +131,30 @@ return {
},
}
-- Comment lines
-- Replaced numToStr/Comment.nvim
require('mini.comment').setup()
-- Highlight cursor word and its matches
require('mini.cursorword').setup()
-- Work with diff hunks
-- Replaced lewis6991/gitsigns.nvim
require('mini.diff').setup()
-- Git integration
require('mini.git').setup()
-- Session management (read, write, delete)
require('mini.sessions').setup {
autowrite = true,
directory = vim.g.sessions_dir or vim.fn.stdpath 'data' .. '/sessions',
file = '',
}
-- ╭─────────────────────────────────────────────────────────╮
-- │ Appearance │
-- ╰─────────────────────────────────────────────────────────╯
-- Animate common Neovim actions
require('mini.animate').setup()
-- Highlight cursor word and its matches
require('mini.cursorword').setup()
-- Highlight patterns in text
-- Replaced folke/todo-comments.nvim
local hp = require 'mini.hipatterns'
hp.setup {
highlighters = {
@@ -170,36 +201,16 @@ return {
}
-- Visualize and work with indent scope
-- Replaced lukas-reineke/indent-blankline.nvim
require('mini.indentscope').setup()
-- Text edit operators
-- g= - Evaluate text and replace with output
-- gx - Exchange text regions
-- gm - Multiply (duplicate) text
-- gr - Replace text with register
-- gs - Sort text
require('mini.operators').setup()
-- Session management (read, write, delete)
require('mini.sessions').setup {
autowrite = true,
directory = vim.g.sessions_dir or vim.fn.stdpath 'data' .. '/sessions',
file = '',
}
-- Split and join arguments, lists, and other sequences
-- Replaced Wansmer/treesj
require('mini.splitjoin').setup()
-- Fast and flexible start screen
-- Replaced glepnir/dashboard-nvim
local starter = require 'mini.starter'
---@modules mini.starter
starter.setup {
items = {
starter.sections.telescope(),
starter.sections.builtin_actions(),
starter.sections.sessions(5, true),
starter.sections.recent_files(5),
},
content_hooks = {
starter.gen_hook.adding_bullet(),
@@ -209,25 +220,38 @@ return {
}
-- Minimal and fast statusline module with opinionated default look
-- Replaced nvim-lualine/lualine.nvim
local sl = require 'mini.statusline'
---@modules mini.statusline
sl.setup {
use_icons = true,
set_vim_settings = true,
content = {
active = function()
local mode, mode_hl = sl.section_mode { trunc_width = 120 }
local git = sl.section_git { trunc_width = 9999 }
local diagnostics = sl.section_diagnostics { trunc_width = 9999 }
local filename = sl.section_filename { trunc_width = 9999 }
local mode, mode_hl = sl.section_mode { trunc_width = 100 }
local git = sl.section_git { trunc_width = 40 }
local diagnostics = sl.section_diagnostics {
trunc_width = 75,
signs = {
ERROR = 'E ',
WARN = 'W ',
INFO = 'I ',
HINT = 'H ',
},
}
local lsp = MiniStatusline.section_lsp { trunc_width = 75 }
local filename = sl.section_filename { trunc_width = 140 }
local fileinfo = sl.section_fileinfo { trunc_width = 9999 }
local location = sl.section_location { trunc_width = 9999 }
return sl.combine_groups {
{ hl = mode_hl, strings = { mode } },
{ hl = 'statuslineDevinfo', strings = { git, diagnostics } },
{
hl = 'MiniStatuslineDevinfo',
strings = { git, lsp },
},
'%<', -- Mark general truncate point
{ hl = 'statuslineFilename', strings = { filename } },
'%=', -- End left alignment
{ hl = 'statuslineFileinfo', strings = { diagnostics } },
{ hl = 'statuslineFileinfo', strings = { fileinfo } },
{ hl = mode_hl, strings = { location } },
}
@@ -235,13 +259,6 @@ return {
},
}
-- Fast and feature-rich surround actions
-- Replaced kylechui/nvim-surround
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
-- - sd' - [S]urround [D]elete [']quotes
-- - sr)' - [S]urround [R]eplace [)] [']
require('mini.surround').setup()
-- Work with trailing whitespace
require('mini.trailspace').setup()
end,

View File

@@ -61,4 +61,13 @@ return {
-- Neovim plugin for locking a buffer to a window
-- https://github.com/stevearc/stickybuf.nvim
{ 'stevearc/stickybuf.nvim', opts = {} },
-- Break bad habits, master Vim motions
-- https://github.com/m4xshen/hardtime.nvim
{
'm4xshen/hardtime.nvim',
lazy = false,
dependencies = { 'MunifTanjim/nui.nvim' },
opts = {},
},
}

View File

@@ -112,9 +112,7 @@
{
"background": "transparent",
"foreground": "lightGreen",
"foreground_templates": [
"{{ if gt .Code 0 }}red{{ end }}"
],
"foreground_templates": ["{{ if gt .Code 0 }}red{{ end }}"],
"properties": {
"always_enabled": true
},
@@ -129,9 +127,7 @@
"transient_prompt": {
"background": "transparent",
"foreground": "lightGreen",
"foreground_templates": [
"{{ if gt .Code 0 }}red{{ end }}"
],
"foreground_templates": ["{{ if gt .Code 0 }}red{{ end }}"],
"template": "\u279c "
},
"version": 2

View File

@@ -1,15 +1,13 @@
{
"account_id": "S5Z2DMNFKJEZBPCWRHRWC4DCGI",
"entrypoint": [
"gh"
],
"credentials": [
{
"plugin": "github",
"credential_type": "personal_access_token",
"usage_id": "personal_access_token",
"vault_id": "injcin7obv3jdet3r2u3kfihfy",
"item_id": "f6vinbnc6l7ngdzvlw66ayewlq"
}
]
}
"account_id": "S5Z2DMNFKJEZBPCWRHRWC4DCGI",
"entrypoint": ["gh"],
"credentials": [
{
"plugin": "github",
"credential_type": "personal_access_token",
"usage_id": "personal_access_token",
"vault_id": "injcin7obv3jdet3r2u3kfihfy",
"item_id": "f6vinbnc6l7ngdzvlw66ayewlq"
}
]
}

View File

@@ -17,13 +17,53 @@ DEBUG="${DEBUG:-0}"
# Enable debugging with DEBUG=1
[ "${DEBUG:-0}" -eq 1 ] && set -x
# Detect the current shell
CURRENT_SHELL=$(ps -p $$ -ocomm= | awk -F/ '{print $NF}')
# Function to prepend a path to PATH based on the shell
x-path-prepend()
{
local dir=$1
case "$CURRENT_SHELL" in
fish)
set -U fish_user_paths "$dir" $fish_user_paths
;;
sh | bash | zsh)
PATH="$dir:$PATH"
;;
*)
echo "Unsupported shell: $CURRENT_SHELL"
exit 1
;;
esac
}
# Function to set environment variables based on the shell
x-set-env()
{
local var=$1
local value=$2
case "$CURRENT_SHELL" in
fish)
set -x "$var" "$value"
;;
sh | bash | zsh)
export "$var=$value"
;;
*)
echo "Unsupported shell: $CURRENT_SHELL"
exit 1
;;
esac
}
# Explicitly set XDG folders, if not already set
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
[ -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"
x-set-env XDG_CONFIG_HOME "$HOME/.config"
x-set-env XDG_DATA_HOME "$HOME/.local/share"
x-set-env XDG_CACHE_HOME "$HOME/.cache"
x-set-env XDG_STATE_HOME "$HOME/.local/state"
x-set-env XDG_BIN_HOME "$HOME/.local/bin"
# Paths
x-path-prepend "/usr/local/bin"

52
config/skhd/move.sh Executable file
View File

@@ -0,0 +1,52 @@
#!/bin/bash
direction="$1" # east | west
# Active window and display
window=$(yabai -m query --windows --window)
display=$(yabai -m query --displays --display)
win_x=$(echo "$window" | jq '.frame.x')
win_w=$(echo "$window" | jq '.frame.w')
disp_x=$(echo "$display" | jq '.frame.x')
disp_w=$(echo "$display" | jq '.frame.w')
# Edge detection buffer
padding=20
move_to_display=false
if [[ "$direction" == "east" ]]; then
[[ $((win_x + win_w)) -ge $((disp_x + disp_w - padding)) ]] && move_to_display=true
elif [[ "$direction" == "west" ]]; then
[[ $win_x -le $((disp_x + padding)) ]] && move_to_display=true
fi
if $move_to_display; then
# Find the target display based on the direction
if [[ "$direction" == "east" ]]; then
target_display=$(yabai -m query --displays | jq ".[] | select(.frame.x > $disp_x)" | jq -s '.[0].index')
else
target_display=$(yabai -m query --displays | jq ".[] | select(.frame.x < $disp_x)" | jq -s '.[-1].index')
fi
if [[ -n "$target_display" && "$target_display" != "null" ]]; then
# Find current space on the target display
target_space=$(yabai -m query --spaces | jq ".[] | select(.display == $target_display) | .index" | head -n1)
# If no space found, create a new one
if [[ -z "$target_space" || "$target_space" == "null" ]]; then
yabai -m space --create
sleep 0.3
# Asign the new space to the target display
target_space=$(yabai -m query --spaces | jq ".[] | select(.display == $target_display) | .index" | head -n1)
fi
# Move the window to the new space and focus it
yabai -m window --space "$target_space"
yabai -m space --focus "$target_space"
yabai -m display --focus "$target_display"
fi
else
yabai -m window --warp "$direction"
fi

View File

@@ -80,10 +80,12 @@ ctrl + alt - h : yabai -m window --grid 1:2:0:0:1:1 # 1/2 left
ctrl + alt - l : yabai -m window --grid 1:2:1:0:1:1 # 1/2 right
## swap windows
shift + alt - h : yabai -m window --swap west
#shift + alt - h : yabai -m window --swap west
shift + alt - j : yabai -m window --swap south
shift + alt - k : yabai -m window --swap north
shift + alt - l : yabai -m window --swap east
#shift + alt - l : yabai -m window --swap east
alt + shift - l : ~/.config/skhd/move.sh east
alt + shift - h : ~/.config/skhd/move.sh west
## resize windows
ctrl + alt - h : yabai -m window --resize left:-50:0; \

View File

@@ -52,6 +52,7 @@ if-shell '[ "$DEBUG" = "1" ]' 'set -g debug-file ~/.cache/tmux-debug.log'
set -g pane-active-border-style "fg=#7aa2f7"
set -g pane-border-style "fg=#3b4261"
set -g status-style "bg=default"
set -g status-justify "left"
set -g status-left ''
set -g status-left-length "0"
@@ -159,11 +160,11 @@ run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-sensible/sensible.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-window-name/tmux_window_name.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-mode-indicator/mode_indicator.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-suspend/suspend.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-continuum/continuum.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-resurrect/resurrect.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/sessionist.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-yank/yank.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-current-pane-hostname/current_pane_hostname.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-fzf-url/fzf-url.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-resurrect/resurrect.tmux"
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-continuum/continuum.tmux"
# run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-dark-notify/main.tmux"

View File

@@ -17,7 +17,7 @@ cnoreabbrev Qall qall " quit all
"" Mappings
"*****************************************************************************
noremap <C-S> :w<CR> " save buffer
noremap <C-s> :w<CR> " save buffer
" Split
noremap <Leader>h :<C-u>split<CR> " horizontal split
@@ -57,7 +57,7 @@ noremap <Leader>r :tabe <C-R>=expand("%:p:h") . "/" <CR>
" fzf.vim
let $FZF_DEFAULT_COMMAND = "find * -path '*/\.*' -prune -o -path 'node_modules/**' -prune -o -path 'target/**' -prune -o -path 'vendor/**' -prune -o -path 'dist/**' -prune -o -type f -print -o -type l -print 2> /dev/null"
cnoremap <C-P> <C-R>=expand("%:p:h") . "/" <CR>
cnoremap <C-p> <C-R>=expand("%:p:h") . "/" <CR>
nnoremap <silent> <leader>b :Buffers<CR>
nnoremap <silent> <leader>e :FZF -m<CR>
" Recovery commands from history through FZF

View File

@@ -17,16 +17,31 @@ config.font = wezterm.font_with_fallback {
'JetBrains Mono',
'Symbols Nerd Font Mono',
}
config.harfbuzz_features = { 'zero', 'ss01', 'cv05' }
config.font_shaper = 'Harfbuzz'
config.harfbuzz_features = { 'calt=1', 'clig=1', 'liga=1' }
-- Make the window a bit transparent
config.window_background_opacity = 0.96
config.selection_word_boundary = ' \t\n{[}]()"\'`,;:'
-- Window configuration
config.window_background_opacity = 0.95
config.window_decorations = 'RESIZE'
config.macos_window_background_blur = 10
config.window_padding = {
left = 5,
right = 5,
top = 5,
bottom = 5,
}
-- Don't show tab bar
config.enable_tab_bar = false
-- Fix alt on macOS
config.send_composed_key_when_left_alt_is_pressed = true
config.send_composed_key_when_right_alt_is_pressed = true
-- Scrolling deactivated, using tmux for that
config.scrollback_lines = 0
-- Function to detect the theme based on appearance
function Scheme_for_appearance(appearance)

View File

@@ -22,16 +22,19 @@ yabai -m config \
# apps to not manage (ignore)
# TODO: add apps from aerospace config to here
# list active apps:
# > yabai -m query --windows | jq .[].app
# > yabai -m query --windows | jq .[].app | sort | uniq
yabai -m rule --add app="1Password" manage=off
yabai -m rule --add app="Fork" manage=off
yabai -m rule --add app="JetBrains Rider" manage=off
yabai -m rule --add app="Logi Options" manage=off
yabai -m rule --add app="MSTeams" manage=off
yabai -m rule --add app="Microsoft Teams" manage=off
yabai -m rule --add app="PhpStorm" manage=off
yabai -m rule --add app="Slack" manage=off
yabai -m rule --add app="System Settings" manage=off
yabai -m rule --add app="^Logi Options$" manage=off
yabai -m rule --add app="^Microsoft Teams$" manage=off
yabai -m rule --add app="^PhpStorm$" manage=off
yabai -m rule --add app="^Slack$" manage=off
yabai -m rule --add app="^TIDAL$" manage=off
yabai -m rule --add app="^Windows App$" manage=off
yabai -m rule --add app="TIDAL" manage=off
yabai -m rule --add app="Windows App" manage=off
yabai -m rule --add app="Zoom" manage=off
# apply rules
yabai -m rule --apply

View File

@@ -1,15 +1,29 @@
{
"context_servers": {
"github-activity-summarizer": {
"settings": {}
}
},
"telemetry": {
"metrics": false
},
"assistant": {
"agent": {
"always_allow_tool_actions": false,
"default_model": {
"provider": "copilot_chat",
"model": "claude-3-7-sonnet"
"model": "gpt-4.1"
},
"version": "2"
},
"languages": {
"PHP": {
"language_servers": ["intelephense", "phpactor"]
},
"Python": {
"enable_language_server": true,
"allow_rewrap": "anywhere",
"auto_indent_on_paste": true
},
"Shell Script": {
"enable_language_server": true
},
@@ -19,6 +33,13 @@
"source.fixAll.eslint": true
}
},
"Markdown": {
"enable_language_server": true,
"preferred_line_length": 160,
"prettier": {
"allowed": true
}
},
"Lua": {
"enable_language_server": true,
"tab_size": 2
@@ -44,13 +65,32 @@
}
}
},
"diagnostics": {
"button": true,
"include_warnings": true,
"lsp_pull_diagnostics": {
"enabled": true,
"debounce_ms": 50
},
"inline": {
"enabled": true,
"update_debounce_ms": 150
}
},
"multi_cursor_modifier": "cmd_or_ctrl", // alias: "cmd", "ctrl"
"indent_guides": {
"enabled": true,
"coloring": "indent_aware"
},
"preferred_line_length": 100,
"soft_wrap": "bounded",
"wrap_guides": [100, 120, 160, 200],
"format_on_save": "on",
"vim_mode": true,
"theme": {
"mode": "system",
"light": "Iceberg",
"dark": "Iceberg"
"light": "Tomorrow",
"dark": "Tomorrow at Midnight"
},
"inlay_hints": {
"enabled": true,
@@ -60,13 +100,45 @@
},
"ui_font_size": 16,
"buffer_font_size": 16,
"buffer_font_fallbacks": [
"JetBrainsMono Nerd Font"
],
"edit_predictions": {
"disabled_globs": [
".env"
]
},
"hour_format": "hour24"
"buffer_font_fallbacks": ["JetBrainsMono Nerd Font"],
"use_autoclose": false,
"hour_format": "hour24",
"auto_install_extensions": {
"angular": true,
"ansible": true,
"basher": true,
"biome": true,
"blade": true,
"csharp": true,
"css-modules-kit": true,
"dockerfile": true,
"git-firefly": true,
"github-activity-summarizer": true,
"golangci-lint": true,
"gosum": true,
"go-snippets": true,
"html": true,
"ini": true,
"json": true,
"json5": true,
"just": true,
"just-ls": true,
"lua": true,
"make": true,
"php": true,
"python-snippets": true,
"python-requirements": true,
"ruff": true,
"scss": true,
"sieve": true,
"stylelint": true,
"sql": true,
"toml": true,
"vue": true,
"vue-snippets": true,
"wakatime": true,
"xcode-themes": true,
"yaml": true,
"tomorrow-theme": true
}
}

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