diff --git a/config/fish/completions/app.fish b/config/fish/completions/app.fish index a2669d3..180d8ab 100644 --- a/config/fish/completions/app.fish +++ b/config/fish/completions/app.fish @@ -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 diff --git a/config/fish/completions/docker.fish b/config/fish/completions/docker.fish deleted file mode 100755 index 9c9db8e..0000000 --- a/config/fish/completions/docker.fish +++ /dev/null @@ -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., -n=) - # 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' diff --git a/config/fish/completions/finder.fish b/config/fish/completions/finder.fish index 8267cc5..98cc198 100644 --- a/config/fish/completions/finder.fish +++ b/config/fish/completions/finder.fish @@ -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 diff --git a/config/fish/completions/mac.fish b/config/fish/completions/mac.fish index 1e09c6b..86eabce 100644 --- a/config/fish/completions/mac.fish +++ b/config/fish/completions/mac.fish @@ -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 diff --git a/config/fish/completions/manp.fish b/config/fish/completions/manp.fish index 2034fcb..c8fbaf4 100644 --- a/config/fish/completions/manp.fish +++ b/config/fish/completions/manp.fish @@ -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 diff --git a/config/fish/completions/ql.fish b/config/fish/completions/ql.fish index 9f7518f..fc20feb 100644 --- a/config/fish/completions/ql.fish +++ b/config/fish/completions/ql.fish @@ -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 diff --git a/config/fish/conf.d/halostatue_fish_macos.fish b/config/fish/conf.d/halostatue_fish_macos.fish index fcc266f..4436add 100644 --- a/config/fish/conf.d/halostatue_fish_macos.fish +++ b/config/fish/conf.d/halostatue_fish_macos.fish @@ -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 diff --git a/config/fish/conf.d/paths.fish b/config/fish/conf.d/paths.fish new file mode 100644 index 0000000..83a7054 --- /dev/null +++ b/config/fish/conf.d/paths.fish @@ -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 diff --git a/config/fish/fish_plugins b/config/fish/fish_plugins index 150fb96..3e77b12 100644 --- a/config/fish/fish_plugins +++ b/config/fish/fish_plugins @@ -7,3 +7,4 @@ halostatue/fish-brew@v3 edc/bass meaningful-ooo/sponge nickeb96/puffer-fish +jgusta/paths diff --git a/config/fish/functions/__macos_app_bundleid.fish b/config/fish/functions/__macos_app_bundleid.fish index 3e57ca6..601251f 100644 --- a/config/fish/functions/__macos_app_bundleid.fish +++ b/config/fish/functions/__macos_app_bundleid.fish @@ -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 diff --git a/config/fish/functions/__macos_app_find.fish b/config/fish/functions/__macos_app_find.fish index 2124103..8f64eda 100644 --- a/config/fish/functions/__macos_app_find.fish +++ b/config/fish/functions/__macos_app_find.fish @@ -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 diff --git a/config/fish/functions/__macos_app_frontmost.fish b/config/fish/functions/__macos_app_frontmost.fish index b5b1d29..cd07f4f 100644 --- a/config/fish/functions/__macos_app_frontmost.fish +++ b/config/fish/functions/__macos_app_frontmost.fish @@ -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] diff --git a/config/fish/functions/__macos_app_icon.fish b/config/fish/functions/__macos_app_icon.fish index ed760f2..b5c2249 100644 --- a/config/fish/functions/__macos_app_icon.fish +++ b/config/fish/functions/__macos_app_icon.fish @@ -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 diff --git a/config/fish/functions/__macos_app_quit.fish b/config/fish/functions/__macos_app_quit.fish index 8e161ae..2d5b1eb 100644 --- a/config/fish/functions/__macos_app_quit.fish +++ b/config/fish/functions/__macos_app_quit.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_cd.fish b/config/fish/functions/__macos_finder_cd.fish index 87adaeb..1bca4ac 100644 --- a/config/fish/functions/__macos_finder_cd.fish +++ b/config/fish/functions/__macos_finder_cd.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_clean.fish b/config/fish/functions/__macos_finder_clean.fish index f3489c2..1293846 100644 --- a/config/fish/functions/__macos_finder_clean.fish +++ b/config/fish/functions/__macos_finder_clean.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_column.fish b/config/fish/functions/__macos_finder_column.fish index f379cc5..9c25b11 100644 --- a/config/fish/functions/__macos_finder_column.fish +++ b/config/fish/functions/__macos_finder_column.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_desktop_icons.fish b/config/fish/functions/__macos_finder_desktop_icons.fish index 2b95cf6..c79424a 100644 --- a/config/fish/functions/__macos_finder_desktop_icons.fish +++ b/config/fish/functions/__macos_finder_desktop_icons.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_hidden.fish b/config/fish/functions/__macos_finder_hidden.fish index d7a061d..d36704f 100644 --- a/config/fish/functions/__macos_finder_hidden.fish +++ b/config/fish/functions/__macos_finder_hidden.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_icon.fish b/config/fish/functions/__macos_finder_icon.fish index b0eb1ac..6354654 100644 --- a/config/fish/functions/__macos_finder_icon.fish +++ b/config/fish/functions/__macos_finder_icon.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_list.fish b/config/fish/functions/__macos_finder_list.fish index e3869ce..5186e56 100644 --- a/config/fish/functions/__macos_finder_list.fish +++ b/config/fish/functions/__macos_finder_list.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_pushd.fish b/config/fish/functions/__macos_finder_pushd.fish index b5c79df..ef07e1d 100644 --- a/config/fish/functions/__macos_finder_pushd.fish +++ b/config/fish/functions/__macos_finder_pushd.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_pwd.fish b/config/fish/functions/__macos_finder_pwd.fish index 668f13e..2487400 100644 --- a/config/fish/functions/__macos_finder_pwd.fish +++ b/config/fish/functions/__macos_finder_pwd.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_quarantine.fish b/config/fish/functions/__macos_finder_quarantine.fish index 6e590c7..79ba4d9 100644 --- a/config/fish/functions/__macos_finder_quarantine.fish +++ b/config/fish/functions/__macos_finder_quarantine.fish @@ -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] diff --git a/config/fish/functions/__macos_finder_selected.fish b/config/fish/functions/__macos_finder_selected.fish index e7ed459..7445f7e 100644 --- a/config/fish/functions/__macos_finder_selected.fish +++ b/config/fish/functions/__macos_finder_selected.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_track.fish b/config/fish/functions/__macos_finder_track.fish index 63499d1..9b3a568 100644 --- a/config/fish/functions/__macos_finder_track.fish +++ b/config/fish/functions/__macos_finder_track.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_untrack.fish b/config/fish/functions/__macos_finder_untrack.fish index 8189f31..c950d72 100644 --- a/config/fish/functions/__macos_finder_untrack.fish +++ b/config/fish/functions/__macos_finder_untrack.fish @@ -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 diff --git a/config/fish/functions/__macos_finder_update.fish b/config/fish/functions/__macos_finder_update.fish index 605efef..6d56b87 100644 --- a/config/fish/functions/__macos_finder_update.fish +++ b/config/fish/functions/__macos_finder_update.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_airdrop.fish b/config/fish/functions/__macos_mac_airdrop.fish index 7a715aa..9bc407e 100644 --- a/config/fish/functions/__macos_mac_airdrop.fish +++ b/config/fish/functions/__macos_mac_airdrop.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_airport.fish b/config/fish/functions/__macos_mac_airport.fish index 44992b6..0d0c399 100644 --- a/config/fish/functions/__macos_mac_airport.fish +++ b/config/fish/functions/__macos_mac_airport.fish @@ -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' diff --git a/config/fish/functions/__macos_mac_brightness.fish b/config/fish/functions/__macos_mac_brightness.fish index 7a01425..4b2d144 100644 --- a/config/fish/functions/__macos_mac_brightness.fish +++ b/config/fish/functions/__macos_mac_brightness.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_defaults_query.fish b/config/fish/functions/__macos_mac_defaults_query.fish index 5740e70..66033f9 100644 --- a/config/fish/functions/__macos_mac_defaults_query.fish +++ b/config/fish/functions/__macos_mac_defaults_query.fish @@ -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) diff --git a/config/fish/functions/__macos_mac_flushdns.fish b/config/fish/functions/__macos_mac_flushdns.fish index 2ea0920..e35a5cf 100644 --- a/config/fish/functions/__macos_mac_flushdns.fish +++ b/config/fish/functions/__macos_mac_flushdns.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_font_smoothing.fish b/config/fish/functions/__macos_mac_font_smoothing.fish index 0fddbf8..d779c68 100644 --- a/config/fish/functions/__macos_mac_font_smoothing.fish +++ b/config/fish/functions/__macos_mac_font_smoothing.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_lsclean.fish b/config/fish/functions/__macos_mac_lsclean.fish index b3b282c..6754aa9 100644 --- a/config/fish/functions/__macos_mac_lsclean.fish +++ b/config/fish/functions/__macos_mac_lsclean.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_mail.fish b/config/fish/functions/__macos_mac_mail.fish index ed851de..9b95234 100644 --- a/config/fish/functions/__macos_mac_mail.fish +++ b/config/fish/functions/__macos_mac_mail.fish @@ -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/ diff --git a/config/fish/functions/__macos_mac_proxy_icon.fish b/config/fish/functions/__macos_mac_proxy_icon.fish index 010e449..99f04b7 100644 --- a/config/fish/functions/__macos_mac_proxy_icon.fish +++ b/config/fish/functions/__macos_mac_proxy_icon.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_serialnumber.fish b/config/fish/functions/__macos_mac_serialnumber.fish index 015ce5c..9e1b77d 100644 --- a/config/fish/functions/__macos_mac_serialnumber.fish +++ b/config/fish/functions/__macos_mac_serialnumber.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_touchid.fish b/config/fish/functions/__macos_mac_touchid.fish index c73829e..144d5aa 100644 --- a/config/fish/functions/__macos_mac_touchid.fish +++ b/config/fish/functions/__macos_mac_touchid.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_touchid_sudo.fish b/config/fish/functions/__macos_mac_touchid_sudo.fish index 622bffe..e503649 100644 --- a/config/fish/functions/__macos_mac_touchid_sudo.fish +++ b/config/fish/functions/__macos_mac_touchid_sudo.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_transparency.fish b/config/fish/functions/__macos_mac_transparency.fish index 9320ef9..1b06b32 100644 --- a/config/fish/functions/__macos_mac_transparency.fish +++ b/config/fish/functions/__macos_mac_transparency.fish @@ -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 diff --git a/config/fish/functions/__macos_mac_version.fish b/config/fish/functions/__macos_mac_version.fish index b80e797..1f41c88 100644 --- a/config/fish/functions/__macos_mac_version.fish +++ b/config/fish/functions/__macos_mac_version.fish @@ -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 \ diff --git a/config/fish/functions/__macos_mac_vol.fish b/config/fish/functions/__macos_mac_vol.fish index 9e3d335..ed56606 100644 --- a/config/fish/functions/__macos_mac_vol.fish +++ b/config/fish/functions/__macos_mac_vol.fish @@ -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 diff --git a/config/fish/functions/app.fish b/config/fish/functions/app.fish index 834f8b9..16bf12f 100644 --- a/config/fish/functions/app.fish +++ b/config/fish/functions/app.fish @@ -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 diff --git a/config/fish/functions/finder.fish b/config/fish/functions/finder.fish index 38f6088..0023e7f 100644 --- a/config/fish/functions/finder.fish +++ b/config/fish/functions/finder.fish @@ -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] diff --git a/config/fish/functions/has_app.fish b/config/fish/functions/has_app.fish index d09f507..12f90eb 100644 --- a/config/fish/functions/has_app.fish +++ b/config/fish/functions/has_app.fish @@ -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 diff --git a/config/fish/functions/mac.fish b/config/fish/functions/mac.fish index eeab524..6c154a7 100644 --- a/config/fish/functions/mac.fish +++ b/config/fish/functions/mac.fish @@ -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 diff --git a/config/fish/functions/manp.fish b/config/fish/functions/manp.fish index 9fd1637..248ac2a 100644 --- a/config/fish/functions/manp.fish +++ b/config/fish/functions/manp.fish @@ -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. diff --git a/config/fish/functions/note.fish b/config/fish/functions/note.fish index 92ec39d..8f8b6da 100644 --- a/config/fish/functions/note.fish +++ b/config/fish/functions/note.fish @@ -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' diff --git a/config/fish/functions/paths.fish b/config/fish/functions/paths.fish new file mode 100644 index 0000000..09eccfd --- /dev/null +++ b/config/fish/functions/paths.fish @@ -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] " + 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 diff --git a/config/fish/functions/ql.fish b/config/fish/functions/ql.fish index 5cde1ab..7e9ad5c 100644 --- a/config/fish/functions/ql.fish +++ b/config/fish/functions/ql.fish @@ -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 diff --git a/config/fish/functions/remind.fish b/config/fish/functions/remind.fish index 084d055..95211e4 100644 --- a/config/fish/functions/remind.fish +++ b/config/fish/functions/remind.fish @@ -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'