mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-27 22:45:27 +00:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
15aff17f03 | ||
|
|
42a5b79048 | ||
| a72c8ff33a | |||
| 19d9035214 | |||
| 7ca077c852 | |||
| 48604d81d6 | |||
|
|
405e68f895 | ||
| 6d62352127 | |||
| 017d82abc5 | |||
|
|
24ad4bf5b7 | ||
| 07264c594f | |||
|
|
7b58f660ac | ||
|
|
b000f2b0c4 | ||
| 4d548687e1 | |||
| 519d8398de | |||
| 2203bb3957 | |||
|
|
ddafdfe3c9 | ||
| a3f35b2d18 | |||
| 90020a4998 | |||
| 0f806c172d | |||
|
|
e8eb9b98b2 | ||
| 7e0a88cf8f | |||
| f72f57ebf0 | |||
| b5e56e2cbb | |||
|
|
179938132c | ||
|
|
bae84c176c | ||
| be8a6761af | |||
| c348f3625f |
4
.github/workflows/linters.yml
vendored
4
.github/workflows/linters.yml
vendored
@@ -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:
|
||||
|
||||
2
.github/workflows/new-release.yml
vendored
2
.github/workflows/new-release.yml
vendored
@@ -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 }}
|
||||
|
||||
6
.github/workflows/pre-commit-autoupdate.yml
vendored
6
.github/workflows/pre-commit-autoupdate.yml
vendored
@@ -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:
|
||||
@@ -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.
|
||||
|
||||
2
.github/workflows/sync-labels.yml
vendored
2
.github/workflows/sync-labels.yml
vendored
@@ -11,7 +11,7 @@ on:
|
||||
- .github/workflows/sync-labels.yml
|
||||
- .github/labels.yml
|
||||
schedule:
|
||||
- cron: "34 5 * * *"
|
||||
- cron: '34 5 * * *'
|
||||
workflow_call:
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
3
.github/workflows/update-submodules.yml
vendored
3
.github/workflows/update-submodules.yml
vendored
@@ -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:
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
{
|
||||
"diagnostics.globals": [
|
||||
"vim"
|
||||
]
|
||||
"diagnostics.globals": ["vim"]
|
||||
}
|
||||
|
||||
@@ -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/*
|
||||
|
||||
@@ -49,7 +49,7 @@ repos:
|
||||
- id: actionlint
|
||||
|
||||
- repo: https://github.com/renovatebot/pre-commit-hooks
|
||||
rev: 40.36.8
|
||||
rev: 41.11.1
|
||||
hooks:
|
||||
- id: renovate-config-validator
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1 +1 @@
|
||||
3.13.3
|
||||
3.13.5
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -213,7 +213,7 @@ get_sha256sum()
|
||||
# $2 - filename (string)
|
||||
#
|
||||
# Returns 1 when replaceable, 0 when not replaceable.
|
||||
replacable()
|
||||
replaceable()
|
||||
{
|
||||
FILE1="$1"
|
||||
FILE2="$2"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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'
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
22
config/fish/conf.d/paths.fish
Normal file
22
config/fish/conf.d/paths.fish
Normal file
@@ -0,0 +1,22 @@
|
||||
function ___paths_plugin_set_colors
|
||||
if not set -q ___paths_plugin_colors
|
||||
set -Ux ___paths_plugin_colors 27e6ff 29e0ff 5cd8ff 77d0ff 8ac8ff 9cbfff afb5ff c5a7ff d99bfe ea8feb f684d5 fe7abd ff73a3 ff708a fa7070 ff708a ff73a3 fe7abd f684d5 ea8feb d99bfe c5a7ff afb5ff 9cbfff 8ac8ff 77d0ff 5cd8ff 29e0ff
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function _paths_uninstall --on-event paths_uninstall
|
||||
for i in ___paths_plugin_wrap_color ___paths_plugin_output ___paths_plugin_handle_found_item ___paths_plugin_handle_source ___paths_plugin_cycle_color
|
||||
functions -e $i
|
||||
end
|
||||
set -e ___paths_plugin_colors
|
||||
set -e ___paths_plugin_current_color
|
||||
end
|
||||
|
||||
function _paths_install --on-event _paths_install
|
||||
___paths_plugin_set_colors
|
||||
end
|
||||
|
||||
function _paths_update --on-event paths_update
|
||||
___paths_plugin_set_colors
|
||||
end
|
||||
25
config/fish/conf.d/puffer_fish_key_bindings.fish
Normal file
25
config/fish/conf.d/puffer_fish_key_bindings.fish
Normal 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
|
||||
52
config/fish/conf.d/sponge.fish
Normal file
52
config/fish/conf.d/sponge.fish
Normal 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
|
||||
@@ -5,3 +5,6 @@ halostatue/fish-macos@v7
|
||||
danhper/fish-ssh-agent
|
||||
halostatue/fish-brew@v3
|
||||
edc/bass
|
||||
meaningful-ooo/sponge
|
||||
nickeb96/puffer-fish
|
||||
jgusta/paths
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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
|
||||
|
||||
9
config/fish/functions/_puffer_fish_expand_bang.fish
Normal file
9
config/fish/functions/_puffer_fish_expand_bang.fish
Normal file
@@ -0,0 +1,9 @@
|
||||
function _puffer_fish_expand_bang
|
||||
switch (commandline -t)
|
||||
case '!'
|
||||
commandline -t $history[1]
|
||||
case '*'
|
||||
commandline -i '!'
|
||||
end
|
||||
end
|
||||
|
||||
9
config/fish/functions/_puffer_fish_expand_dots.fish
Normal file
9
config/fish/functions/_puffer_fish_expand_dots.fish
Normal 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
|
||||
9
config/fish/functions/_puffer_fish_expand_lastarg.fish
Normal file
9
config/fish/functions/_puffer_fish_expand_lastarg.fish
Normal 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
|
||||
5
config/fish/functions/_sponge_clear_state.fish
Normal file
5
config/fish/functions/_sponge_clear_state.fish
Normal 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
|
||||
3
config/fish/functions/_sponge_on_exit.fish
Normal file
3
config/fish/functions/_sponge_on_exit.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function _sponge_on_exit --on-event fish_exit
|
||||
sponge_delay=0 _sponge_remove_from_history
|
||||
end
|
||||
24
config/fish/functions/_sponge_on_postexec.fish
Normal file
24
config/fish/functions/_sponge_on_postexec.fish
Normal 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
|
||||
16
config/fish/functions/_sponge_on_preexec.fish
Normal file
16
config/fish/functions/_sponge_on_preexec.fish
Normal 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 wasn’t 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
|
||||
5
config/fish/functions/_sponge_on_prompt.fish
Normal file
5
config/fish/functions/_sponge_on_prompt.fish
Normal 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
|
||||
9
config/fish/functions/_sponge_remove_from_history.fish
Normal file
9
config/fish/functions/_sponge_remove_from_history.fish
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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'
|
||||
|
||||
175
config/fish/functions/paths.fish
Normal file
175
config/fish/functions/paths.fish
Normal file
@@ -0,0 +1,175 @@
|
||||
function ___paths_plugin_wrap_color
|
||||
set_color normal
|
||||
set_color "$argv[1]"
|
||||
echo -n (set_color "$argv[1]")"$argv[2..]"
|
||||
set_color normal
|
||||
end
|
||||
|
||||
# duplicated in conf.d
|
||||
function ___paths_plugin_set_colors
|
||||
if not set -q ___paths_plugin_colors
|
||||
set -Ux ___paths_plugin_colors 27e6ff 29e0ff 5cd8ff 77d0ff 8ac8ff 9cbfff afb5ff c5a7ff d99bfe ea8feb f684d5 fe7abd ff73a3 ff708a fa7070 ff708a ff73a3 fe7abd f684d5 ea8feb d99bfe c5a7ff afb5ff 9cbfff 8ac8ff 77d0ff 5cd8ff 29e0ff
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function ___paths_plugin_cycle_color
|
||||
if not set -q ___paths_plugin_current_color
|
||||
set -Ux ___paths_plugin_current_color 1
|
||||
else if test $___paths_plugin_current_color -gt (count $___paths_plugin_colors)
|
||||
set -Ux ___paths_plugin_current_color 1
|
||||
end
|
||||
echo $___paths_plugin_colors[$___paths_plugin_current_color]
|
||||
set -Ux ___paths_plugin_current_color (math $___paths_plugin_current_color + 1)
|
||||
end
|
||||
|
||||
function ___paths_plugin_handle_found_item -a testName outFlags
|
||||
set -f flags (string split -n ' ' -- "$outFlags")
|
||||
set -f options (fish_opt -s c -l clean)
|
||||
set -a options (fish_opt -s s -l single)
|
||||
set -a options (fish_opt -s k -l no-color)
|
||||
set -a options (fish_opt -s n -l inline)
|
||||
argparse $options -- $flags
|
||||
|
||||
set -f arrow "=>"
|
||||
# check if file exists
|
||||
if test -e "$testName"
|
||||
set -f nameOut (string trim -- "$testName")
|
||||
if not set -q _flag_c # is not clean
|
||||
if test -L "$testName" # is symlink
|
||||
set -f __linkname (readlink -f "$testName")
|
||||
set __linkname (string trim -- "$__linkname")
|
||||
set testName (string trim -- "$testName")
|
||||
if not set -q _flag_k # is color
|
||||
set nameOut (___paths_plugin_wrap_color (___paths_plugin_cycle_color) $testName) (___paths_plugin_wrap_color "yellow" "$arrow") (___paths_plugin_wrap_color (___paths_plugin_cycle_color) $__linkname)
|
||||
else # is color
|
||||
set nameOut (echo -n "$testName" "$arrow" "$__linkname")
|
||||
end
|
||||
else # is not symlink
|
||||
if not set -q _flag_k # is color
|
||||
set testName (string trim -- "$testName")
|
||||
set nameOut (___paths_plugin_wrap_color (___paths_plugin_cycle_color) "$testName")
|
||||
else
|
||||
set testName (string trim -- "$testName")
|
||||
set nameOut "$testName"
|
||||
end
|
||||
end
|
||||
|
||||
set nameOut (string trim -- "$nameOut")
|
||||
# do the tick
|
||||
if set -q _flag_k # is not color
|
||||
set nameOut "- $nameOut"
|
||||
else # is color
|
||||
set nameOut (___paths_plugin_wrap_color "yellow" "-") "$nameOut"
|
||||
end
|
||||
end
|
||||
set nameOut (string trim -- "$nameOut")
|
||||
echo -n $nameOut
|
||||
end
|
||||
end
|
||||
|
||||
function paths --description "Reveal the executable matches in shell paths or fish autoload."
|
||||
set -f options (fish_opt -s c -l clean)
|
||||
set -a options (fish_opt -s s -l single)
|
||||
set -a options (fish_opt -s k -l no-color)
|
||||
set -a options (fish_opt -s q -l quiet)
|
||||
set -a options (fish_opt -s n -l inline)
|
||||
argparse $options -- $argv
|
||||
|
||||
if test (count $argv) -lt 1
|
||||
echo "paths - executable matches in shell paths or fish autoload."
|
||||
and echo "usage: paths [-c|-s|-k] <name>"
|
||||
and echo -e "\t-c or --no-color: output without color"
|
||||
and echo -e "\t-s or --single: output without color or headers, the first result"
|
||||
and echo -e "\t-k or --clean: output without tick marks or headers"
|
||||
# and echo -e "\t-n or --inline: output without endline"
|
||||
and return 1
|
||||
end
|
||||
|
||||
set -f foundStatus 1
|
||||
set -f input (string trim -- $argv)
|
||||
# deprecated
|
||||
if set -q _flag_q
|
||||
set _flag_c True
|
||||
end
|
||||
|
||||
if set -q _flag_s
|
||||
set _flag_k True
|
||||
set _flag_c True
|
||||
end
|
||||
|
||||
set -f outFlags ''
|
||||
set -q _flag_n; and set -a outFlags -n
|
||||
set -q _flag_c; and set -a outFlags -c
|
||||
set -q _flag_k; and set -a outFlags -k
|
||||
set -q _flag_s; and set -a outFlags -s
|
||||
set outFlags (string split -n " " -- "$outFlags")
|
||||
___paths_plugin_set_colors
|
||||
# loop over list of path lists
|
||||
for pVar in VIRTUAL_ENV fisher_path fish_function_path fish_user_paths PATH
|
||||
set -e acc
|
||||
set -f acc ''
|
||||
set -e hit
|
||||
# see if variable is empty
|
||||
if test -z "$pVar"
|
||||
continue
|
||||
end
|
||||
set -f acc (begin
|
||||
for t in $$pVar
|
||||
for snit in "$t/$input.fish" "$t/$input"
|
||||
set -f found (___paths_plugin_handle_found_item "$snit" "$outFlags")
|
||||
set found (string trim -- "$found")
|
||||
if test -n "$found"
|
||||
set -f hit True
|
||||
echo "$found"
|
||||
if set -q _flag_s
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
if set -q _flag_s
|
||||
if set -q hit
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
# prepend source
|
||||
if not set -q _flag_c
|
||||
if set -q hit
|
||||
set pVar (string trim -- "$pVar")
|
||||
echo -e -n "$pVar\n"
|
||||
end
|
||||
end
|
||||
|
||||
if test -n "$acc"
|
||||
set foundStatus 0
|
||||
for fk in $acc
|
||||
echo $fk
|
||||
if set -q _flag_s
|
||||
# stop after one
|
||||
return $foundStatus
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# check
|
||||
set -l built (type --type $input 12&>/dev/null)
|
||||
if test -n "$built"
|
||||
and test "$built" = 'builtin'
|
||||
set $foundStatus 0
|
||||
if not set -q _flag_c
|
||||
echo -e -n "builtin\n"
|
||||
if set -q _flag_k
|
||||
echo - "$input"
|
||||
else # is color
|
||||
echo (___paths_plugin_wrap_color "yellow" "-") (___paths_plugin_wrap_color (___paths_plugin_cycle_color) "$input")
|
||||
end
|
||||
else
|
||||
echo "$input"
|
||||
end
|
||||
end
|
||||
return $foundStatus
|
||||
end
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
11
config/fish/functions/sponge_filter_failed.fish
Normal file
11
config/fish/functions/sponge_filter_failed.fish
Normal 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
|
||||
11
config/fish/functions/sponge_filter_matched.fish
Normal file
11
config/fish/functions/sponge_filter_matched.fish
Normal 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
|
||||
@@ -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 :
|
||||
@@ -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)
|
||||
|
||||
@@ -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 = {},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -160,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"
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
{
|
||||
"context_servers": {
|
||||
"github-activity-summarizer": {
|
||||
"settings": {}
|
||||
}
|
||||
},
|
||||
"telemetry": {
|
||||
"metrics": false
|
||||
},
|
||||
"assistant": {
|
||||
"agent": {
|
||||
"always_allow_tool_actions": false,
|
||||
"default_model": {
|
||||
"provider": "copilot_chat",
|
||||
@@ -11,6 +16,9 @@
|
||||
"version": "2"
|
||||
},
|
||||
"languages": {
|
||||
"PHP": {
|
||||
"language_servers": ["intelephense", "phpactor"]
|
||||
},
|
||||
"Python": {
|
||||
"enable_language_server": true,
|
||||
"allow_rewrap": "anywhere",
|
||||
@@ -25,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
|
||||
@@ -50,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": "Tokyo Night Light",
|
||||
"dark": "Tokyo Night Storm"
|
||||
"light": "Tomorrow",
|
||||
"dark": "Tomorrow at Midnight"
|
||||
},
|
||||
"inlay_hints": {
|
||||
"enabled": true,
|
||||
@@ -67,8 +101,44 @@
|
||||
"ui_font_size": 16,
|
||||
"buffer_font_size": 16,
|
||||
"buffer_font_fallbacks": ["JetBrainsMono Nerd Font"],
|
||||
"edit_predictions": {
|
||||
"disabled_globs": [".env", ".env.*"]
|
||||
},
|
||||
"hour_format": "hour24"
|
||||
"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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,64 +2,64 @@
|
||||
|
||||
## main
|
||||
|
||||
| Key | Command(s) and actions |
|
||||
|-----------------|-----------------------------------------------|
|
||||
| alt-a | mode apps |
|
||||
| alt-h | focus left |
|
||||
| alt-j | focus down |
|
||||
| alt-k | focus up |
|
||||
| alt-l | focus right |
|
||||
| alt-m | mode move |
|
||||
| alt-s | mode service |
|
||||
| alt-shift-1 | workspace 1 |
|
||||
| alt-shift-2 | workspace 2 |
|
||||
| alt-shift-tab | workspace-back-and-forth |
|
||||
| ctrl-shift-1 | move-node-to-workspace 1 |
|
||||
| ctrl-shift-2 | move-node-to-workspace 2 |
|
||||
| ctrl-shift-tab | move-workspace-to-monitor --wrap-around prev |
|
||||
| Key | Command(s) and actions |
|
||||
| -------------- | -------------------------------------------- |
|
||||
| alt-a | mode apps |
|
||||
| alt-h | focus left |
|
||||
| alt-j | focus down |
|
||||
| alt-k | focus up |
|
||||
| alt-l | focus right |
|
||||
| alt-m | mode move |
|
||||
| alt-s | mode service |
|
||||
| alt-shift-1 | workspace 1 |
|
||||
| alt-shift-2 | workspace 2 |
|
||||
| alt-shift-tab | workspace-back-and-forth |
|
||||
| ctrl-shift-1 | move-node-to-workspace 1 |
|
||||
| ctrl-shift-2 | move-node-to-workspace 2 |
|
||||
| ctrl-shift-tab | move-workspace-to-monitor --wrap-around prev |
|
||||
|
||||
## apps
|
||||
|
||||
| Key | Command(s) and actions |
|
||||
|------|----------------------------------------------------------------------|
|
||||
| b | exec-and-forget open -a /Applications/Brave Browser.app; mode main |
|
||||
| c | exec-and-forget open -a /Applications/Ferdium.app; mode main |
|
||||
| esc | reload-config; mode main |
|
||||
| g | exec-and-forget open -a /Applications/Ghostty.app; mode main |
|
||||
| o | exec-and-forget open -a /Applications/Obsidian.app; mode main |
|
||||
| s | exec-and-forget open -a /Applications/Slack.app; mode main |
|
||||
| t | exec-and-forget open -a /Applications/TIDAL.app; mode main |
|
||||
| w | exec-and-forget open -a /Applications/WezTerm.app; mode main |
|
||||
| Key | Command(s) and actions |
|
||||
| --- | ------------------------------------------------------------------ |
|
||||
| b | exec-and-forget open -a /Applications/Brave Browser.app; mode main |
|
||||
| c | exec-and-forget open -a /Applications/Ferdium.app; mode main |
|
||||
| esc | reload-config; mode main |
|
||||
| g | exec-and-forget open -a /Applications/Ghostty.app; mode main |
|
||||
| o | exec-and-forget open -a /Applications/Obsidian.app; mode main |
|
||||
| s | exec-and-forget open -a /Applications/Slack.app; mode main |
|
||||
| t | exec-and-forget open -a /Applications/TIDAL.app; mode main |
|
||||
| w | exec-and-forget open -a /Applications/WezTerm.app; mode main |
|
||||
|
||||
## move
|
||||
|
||||
| Key | Command(s) and actions |
|
||||
|--------------|--------------------------------------------------|
|
||||
| 1 | move-node-to-workspace 1 --focus-follows-window |
|
||||
| 2 | move-node-to-workspace 2 --focus-follows-window |
|
||||
| ctrl-h | resize smart -70 |
|
||||
| ctrl-l | resize smart +70 |
|
||||
| esc | reload-config; mode main |
|
||||
| h | move left |
|
||||
| j | move down |
|
||||
| k | move up |
|
||||
| l | move right |
|
||||
| r | flatten-workspace-tree; mode main |
|
||||
| shift-h | join-with left |
|
||||
| shift-j | join-with down |
|
||||
| shift-k | join-with up |
|
||||
| shift-l | join-with right |
|
||||
| shift-left | resize smart +70 |
|
||||
| shift-right | resize smart -70 |
|
||||
| Key | Command(s) and actions |
|
||||
| ----------- | ----------------------------------------------- |
|
||||
| 1 | move-node-to-workspace 1 --focus-follows-window |
|
||||
| 2 | move-node-to-workspace 2 --focus-follows-window |
|
||||
| ctrl-h | resize smart -70 |
|
||||
| ctrl-l | resize smart +70 |
|
||||
| esc | reload-config; mode main |
|
||||
| h | move left |
|
||||
| j | move down |
|
||||
| k | move up |
|
||||
| l | move right |
|
||||
| r | flatten-workspace-tree; mode main |
|
||||
| shift-h | join-with left |
|
||||
| shift-j | join-with down |
|
||||
| shift-k | join-with up |
|
||||
| shift-l | join-with right |
|
||||
| shift-left | resize smart +70 |
|
||||
| shift-right | resize smart -70 |
|
||||
|
||||
## service
|
||||
|
||||
| Key | Command(s) and actions |
|
||||
|------------|-------------------------------------------|
|
||||
| backspace | close-all-windows-but-current; mode main |
|
||||
| esc | reload-config; mode main |
|
||||
| f | layout floating tiling; mode main |
|
||||
| r | flatten-workspace-tree; mode main |
|
||||
| Key | Command(s) and actions |
|
||||
| --------- | ---------------------------------------- |
|
||||
| backspace | close-all-windows-but-current; mode main |
|
||||
| esc | reload-config; mode main |
|
||||
| f | layout floating tiling; mode main |
|
||||
| r | flatten-workspace-tree; mode main |
|
||||
|
||||
File generated: 2025-01-15 13:32:41
|
||||
|
||||
|
||||
@@ -2,51 +2,51 @@
|
||||
|
||||
This file lists all aliases defined in `config/alias`.
|
||||
|
||||
| Alias | Command |
|
||||
| ------------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `....` | `cd ../../..` |
|
||||
| `...` | `cd ../..` |
|
||||
| `..` | `cd ..` |
|
||||
| `.` | `cd $HOME` |
|
||||
| `.b` | `cd $XDG_BIN_HOME` |
|
||||
| `.c` | `cd $HOME/Code` |
|
||||
| `.d` | `cd $DOTFILES` |
|
||||
| `.l` | `cd $HOME/.local` |
|
||||
| `.o` | `cd $HOME/Code/ivuorinen/obsidian/` |
|
||||
| `art` | `[ -f artisan ] && php artisan \|\| php vendor/bin/artisan` |
|
||||
| `cd..` | `cd ..` |
|
||||
| `cdgr` | `cd "$(get_git_root)"` |
|
||||
| `dn` | `du -chd1` |
|
||||
| `flush` | `dscacheutil -flushcache` |
|
||||
| `grep` | `grep --color` |
|
||||
| `hide` | `defaults write com.apple.finder AppleShowAllFiles -bool false; killall Finder` |
|
||||
| `ips` | `ifconfig -a \| grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\\|[a-fA-F0-9:]\+\)' \| sed -e 's/inet6* //' \| sort` |
|
||||
| `irssi` | `irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_CONFIG_HOME/irssi` |
|
||||
| `isodate` | `date +'%Y-%m-%d'` |
|
||||
| `l` | `ls -a` |
|
||||
| `ll` | `ls -la` |
|
||||
| `localip` | `ipconfig getifaddr en1` |
|
||||
| `mirror_site` | `wget -m -k -K -E -e robots=off` |
|
||||
| `peek` | `tee >(cat 1>&2)` |
|
||||
| `pubkey` | `more ~/.ssh/id_rsa.pub \| pbcopy \| echo '=> Public key copied to pasteboard.'` |
|
||||
| `sail` | `[ -f sail ] && bash sail \|\| bash vendor/bin/sail` |
|
||||
| `show` | `defaults write com.apple.finder AppleShowAllFiles -bool true; killall Finder` |
|
||||
| `sl` | `ls` |
|
||||
| `svn` | `svn --config-dir $XDG_CONFIG_HOME/subversion` |
|
||||
| `trivy_scan` | `docker run -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/Library/Caches:/root/.cache/ aquasec/trivy` |
|
||||
| `updatedb` | `sudo /usr/libexec/locate.updatedb` |
|
||||
| `vi` | `nvim` |
|
||||
| `vim` | `nvim` |
|
||||
| `watchx` | `watch -dpbc` |
|
||||
| `wget` | `wget --hsts-file=$XDG_DATA_HOME/wget-hsts` |
|
||||
| `x-datetime` | `date +'%Y-%m-%d %H:%M:%S'` |
|
||||
| `x-ip` | `dig +short myip.opendns.com @resolver1.opendns.com` |
|
||||
| `x-timestamp` | `date +'%s'` |
|
||||
| `xdg` | `xdg-ninja --skip-ok --skip-unsupported` |
|
||||
| `zapall` | `zapds && zappyc` |
|
||||
| `zapds` | `find . -name ".DS_Store" -print -delete` |
|
||||
| `zappyc` | `find . -type f -name '*.pyc' -ls -delete` |
|
||||
| `zedit` | `$EDITOR ~/.dotfiles` |
|
||||
| Alias | Command |
|
||||
| ------------- | ------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
|
||||
| `....` | `cd ../../..` |
|
||||
| `...` | `cd ../..` |
|
||||
| `..` | `cd ..` |
|
||||
| `.` | `cd $HOME` |
|
||||
| `.b` | `cd $XDG_BIN_HOME` |
|
||||
| `.c` | `cd $HOME/Code` |
|
||||
| `.d` | `cd $DOTFILES` |
|
||||
| `.l` | `cd $HOME/.local` |
|
||||
| `.o` | `cd $HOME/Code/ivuorinen/obsidian/` |
|
||||
| `art` | `[ -f artisan ] && php artisan \|\| php vendor/bin/artisan` |
|
||||
| `cd..` | `cd ..` |
|
||||
| `cdgr` | `cd "$(get_git_root)"` |
|
||||
| `dn` | `du -chd1` |
|
||||
| `flush` | `dscacheutil -flushcache` |
|
||||
| `grep` | `grep --color` |
|
||||
| `hide` | `defaults write com.apple.finder AppleShowAllFiles -bool false; killall Finder` |
|
||||
| `ips` | `ifconfig -a \| grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\\ | [a-fA-F0-9:]\+\)' \| sed -e 's/inet6\* //' \| sort` |
|
||||
| `irssi` | `irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_CONFIG_HOME/irssi` |
|
||||
| `isodate` | `date +'%Y-%m-%d'` |
|
||||
| `l` | `ls -a` |
|
||||
| `ll` | `ls -la` |
|
||||
| `localip` | `ipconfig getifaddr en1` |
|
||||
| `mirror_site` | `wget -m -k -K -E -e robots=off` |
|
||||
| `peek` | `tee >(cat 1>&2)` |
|
||||
| `pubkey` | `more ~/.ssh/id_rsa.pub \| pbcopy \| echo '=> Public key copied to pasteboard.'` |
|
||||
| `sail` | `[ -f sail ] && bash sail \|\| bash vendor/bin/sail` |
|
||||
| `show` | `defaults write com.apple.finder AppleShowAllFiles -bool true; killall Finder` |
|
||||
| `sl` | `ls` |
|
||||
| `svn` | `svn --config-dir $XDG_CONFIG_HOME/subversion` |
|
||||
| `trivy_scan` | `docker run -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/Library/Caches:/root/.cache/ aquasec/trivy` |
|
||||
| `updatedb` | `sudo /usr/libexec/locate.updatedb` |
|
||||
| `vi` | `nvim` |
|
||||
| `vim` | `nvim` |
|
||||
| `watchx` | `watch -dpbc` |
|
||||
| `wget` | `wget --hsts-file=$XDG_DATA_HOME/wget-hsts` |
|
||||
| `x-datetime` | `date +'%Y-%m-%d %H:%M:%S'` |
|
||||
| `x-ip` | `dig +short myip.opendns.com @resolver1.opendns.com` |
|
||||
| `x-timestamp` | `date +'%s'` |
|
||||
| `xdg` | `xdg-ninja --skip-ok --skip-unsupported` |
|
||||
| `zapall` | `zapds && zappyc` |
|
||||
| `zapds` | `find . -name ".DS_Store" -print -delete` |
|
||||
| `zappyc` | `find . -type f -name '*.pyc' -ls -delete` |
|
||||
| `zedit` | `$EDITOR ~/.dotfiles` |
|
||||
|
||||
Total aliases: 43
|
||||
Last updated: Fri 17 Jan 2025 13:06:59 EET
|
||||
|
||||
@@ -87,4 +87,3 @@ Leader: `<ctrl><space>`
|
||||
S-Left Move the visible part of the window left
|
||||
S-Right Move the visible part of the window right
|
||||
```
|
||||
|
||||
|
||||
@@ -277,4 +277,4 @@ Mouse: alt_screen
|
||||
|
||||
```
|
||||
|
||||
- Generated on Thu 2 Jan 2025 17:41:13 EET
|
||||
- Generated on Thu 2 Jan 2025 17:41:13 EET
|
||||
|
||||
@@ -20,7 +20,7 @@ Some problematic code has been fixed per `shellcheck` suggestions.
|
||||
## Sourced
|
||||
|
||||
| Script | Source |
|
||||
|-------------------------|-------------------|
|
||||
| ----------------------- | ----------------- |
|
||||
| `x-dupes` | skx/sysadmin-util |
|
||||
| `x-foreach` | mvdan/dotfiles |
|
||||
| `x-multi-ping` | skx/sysadmin-util |
|
||||
|
||||
@@ -46,9 +46,25 @@ def test():
|
||||
assert vercmp("2.4 >= 2.4")
|
||||
assert vercmp("2.5 >= 2.4")
|
||||
assert vercmp("3 >= 2.999")
|
||||
assert vercmp("2.9 < 2.9a")
|
||||
assert vercmp("2.9a < 2.9")
|
||||
assert vercmp("2.9a >= 2.8")
|
||||
|
||||
# multiple comparisons in a single expression
|
||||
assert vercmp("1.0 < 2.0 <= 2.0")
|
||||
assert not vercmp("1.0 > 2.0 < 3.0")
|
||||
|
||||
# mixed major/minor version comparisons
|
||||
assert vercmp("2 >= 1.5")
|
||||
assert not vercmp("1 < 1.0")
|
||||
|
||||
# invalid operator should raise an error
|
||||
try:
|
||||
vercmp("1.0 <> 2.0")
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
assert False, "invalid operator did not raise"
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) == 2 and sys.argv[1] == "test":
|
||||
|
||||
@@ -39,6 +39,6 @@ for dir in "$@"; do
|
||||
esac
|
||||
|
||||
# Append the directory to PATH.
|
||||
export PATH="${PATH:+"$PATH:"}$dir"
|
||||
export PATH="${PATH:+$PATH:}$dir"
|
||||
[ "$VERBOSE" -eq 1 ] && echo "Appended '$dir' to PATH."
|
||||
done
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
"homepage": "https://github.com/ivuorinen/dotfiles#readme",
|
||||
"devDependencies": {
|
||||
"@ivuorinen/base-configs": "^2.0.0",
|
||||
"bundle-audit": "^0.1.0"
|
||||
"@types/node": "^24.0.1",
|
||||
"typescript": "^5.8.3"
|
||||
},
|
||||
"packageManager": "yarn@1.22.22"
|
||||
}
|
||||
|
||||
18
scripts/install-cheat-purebashbible.sh
Executable file → Normal file
18
scripts/install-cheat-purebashbible.sh
Executable file → Normal file
@@ -47,6 +47,22 @@ prepare_cheat_dest()
|
||||
echo "$cheat_dest"
|
||||
}
|
||||
|
||||
# Processes chapter files from the pure-bash-bible repository and generates or updates corresponding cheat sheets.
|
||||
#
|
||||
# For each chapter file, creates or updates a cheat sheet in the appropriate destination directory, removes chapter end markers, and ensures required metadata is present.
|
||||
#
|
||||
# Globals:
|
||||
# * PBB_TEMP_DIR: Directory containing the cloned pure-bash-bible repository.
|
||||
# * PBB_SYNTAX, PBB_TAGS, PBB_SOURCE: Metadata strings for cheat sheets.
|
||||
#
|
||||
# Outputs:
|
||||
# * Writes or updates cheat sheet files in the determined cheat sheet directory.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# ```bash
|
||||
# process_chapters
|
||||
# ```
|
||||
process_chapters()
|
||||
{
|
||||
local cheat_dest
|
||||
@@ -59,7 +75,7 @@ process_chapters()
|
||||
header=$(grep -e '^[#] ' "$f" | head -1 | awk '{print tolower($2)}')
|
||||
cheat_file="$cheat_dest/$header"
|
||||
|
||||
if ! replacable "$f" "$cheat_file"; then
|
||||
if ! replaceable "$f" "$cheat_file"; then
|
||||
cp "$f" "$cheat_file" && msg_run "Updated: $cheat_file"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user