Kevin Mok
4 years ago
17 changed files with 327 additions and 57 deletions
-
80aliases/key_aliases.tmpl
-
40aliases/key_dirs.tmpl
-
12aliases/key_files.tmpl
-
1dot_Xresources.tmpl
-
137dot_config/fish/completions/kogito.fish
-
29dot_config/fish/config.fish.tmpl
-
4dot_config/fish/functions/maven-test-method.fish
-
10dot_config/fish/functions/vpn-red-hat.fish
-
2dot_config/fish/functions/watson-add-fortnite.fish
-
24dot_config/i3/config.tmpl
-
6dot_config/kitty/kitty.conf
-
2dot_config/mpv/mpv.conf
-
2dot_config/ranger/rc.conf.tmpl
-
4dot_gitconfig.tmpl
-
6dot_taskrc
-
24dot_vimrc.tmpl
-
1txt/exclude-dirs-backup.txt.tmpl
@ -0,0 +1,137 @@ |
|||||
|
# fish completion for kogito -*- shell-script -*- |
||||
|
|
||||
|
function __kogito_debug |
||||
|
set file "$BASH_COMP_DEBUG_FILE" |
||||
|
if test -n "$file" |
||||
|
echo "$argv" >> $file |
||||
|
end |
||||
|
end |
||||
|
|
||||
|
function __kogito_perform_completion |
||||
|
__kogito_debug "Starting __kogito_perform_completion with: $argv" |
||||
|
|
||||
|
set args (string split -- " " "$argv") |
||||
|
set lastArg "$args[-1]" |
||||
|
|
||||
|
__kogito_debug "args: $args" |
||||
|
__kogito_debug "last arg: $lastArg" |
||||
|
|
||||
|
set emptyArg "" |
||||
|
if test -z "$lastArg" |
||||
|
__kogito_debug "Setting emptyArg" |
||||
|
set emptyArg \"\" |
||||
|
end |
||||
|
__kogito_debug "emptyArg: $emptyArg" |
||||
|
|
||||
|
set requestComp "$args[1] __complete $args[2..-1] $emptyArg" |
||||
|
__kogito_debug "Calling $requestComp" |
||||
|
|
||||
|
set results (eval $requestComp 2> /dev/null) |
||||
|
set comps $results[1..-2] |
||||
|
set directiveLine $results[-1] |
||||
|
|
||||
|
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>) |
||||
|
# completions must be prefixed with the flag |
||||
|
set flagPrefix (string match -r -- '-.*=' "$lastArg") |
||||
|
|
||||
|
__kogito_debug "Comps: $comps" |
||||
|
__kogito_debug "DirectiveLine: $directiveLine" |
||||
|
__kogito_debug "flagPrefix: $flagPrefix" |
||||
|
|
||||
|
for comp in $comps |
||||
|
printf "%s%s\n" "$flagPrefix" "$comp" |
||||
|
end |
||||
|
|
||||
|
printf "%s\n" "$directiveLine" |
||||
|
end |
||||
|
|
||||
|
# This function does three things: |
||||
|
# 1- Obtain the completions and store them in the global __kogito_comp_results |
||||
|
# 2- Set the __kogito_comp_do_file_comp flag if file completion should be performed |
||||
|
# and unset it otherwise |
||||
|
# 3- Return true if the completion results are not empty |
||||
|
function __kogito_prepare_completions |
||||
|
# Start fresh |
||||
|
set --erase __kogito_comp_do_file_comp |
||||
|
set --erase __kogito_comp_results |
||||
|
|
||||
|
# Check if the command-line is already provided. This is useful for testing. |
||||
|
if not set --query __kogito_comp_commandLine |
||||
|
set __kogito_comp_commandLine (commandline) |
||||
|
end |
||||
|
__kogito_debug "commandLine is: $__kogito_comp_commandLine" |
||||
|
|
||||
|
set results (__kogito_perform_completion "$__kogito_comp_commandLine") |
||||
|
set --erase __kogito_comp_commandLine |
||||
|
__kogito_debug "Completion results: $results" |
||||
|
|
||||
|
if test -z "$results" |
||||
|
__kogito_debug "No completion, probably due to a failure" |
||||
|
# Might as well do file completion, in case it helps |
||||
|
set --global __kogito_comp_do_file_comp 1 |
||||
|
return 0 |
||||
|
end |
||||
|
|
||||
|
set directive (string sub --start 2 $results[-1]) |
||||
|
set --global __kogito_comp_results $results[1..-2] |
||||
|
|
||||
|
__kogito_debug "Completions are: $__kogito_comp_results" |
||||
|
__kogito_debug "Directive is: $directive" |
||||
|
|
||||
|
if test -z "$directive" |
||||
|
set directive 0 |
||||
|
end |
||||
|
|
||||
|
set compErr (math (math --scale 0 $directive / 1) % 2) |
||||
|
if test $compErr -eq 1 |
||||
|
__kogito_debug "Received error directive: aborting." |
||||
|
# Might as well do file completion, in case it helps |
||||
|
set --global __kogito_comp_do_file_comp 1 |
||||
|
return 0 |
||||
|
end |
||||
|
|
||||
|
set nospace (math (math --scale 0 $directive / 2) % 2) |
||||
|
set nofiles (math (math --scale 0 $directive / 4) % 2) |
||||
|
|
||||
|
__kogito_debug "nospace: $nospace, nofiles: $nofiles" |
||||
|
|
||||
|
# Important not to quote the variable for count to work |
||||
|
set numComps (count $__kogito_comp_results) |
||||
|
__kogito_debug "numComps: $numComps" |
||||
|
|
||||
|
if test $numComps -eq 1; and test $nospace -ne 0 |
||||
|
# To support the "nospace" directive we trick the shell |
||||
|
# by outputting an extra, longer completion. |
||||
|
__kogito_debug "Adding second completion to perform nospace directive" |
||||
|
set --append __kogito_comp_results $__kogito_comp_results[1]. |
||||
|
end |
||||
|
|
||||
|
if test $numComps -eq 0; and test $nofiles -eq 0 |
||||
|
__kogito_debug "Requesting file completion" |
||||
|
set --global __kogito_comp_do_file_comp 1 |
||||
|
end |
||||
|
|
||||
|
# If we don't want file completion, we must return true even if there |
||||
|
# are no completions found. This is because fish will perform the last |
||||
|
# completion command, even if its condition is false, if no other |
||||
|
# completion command was triggered |
||||
|
return (not set --query __kogito_comp_do_file_comp) |
||||
|
end |
||||
|
|
||||
|
# Remove any pre-existing completions for the program since we will be handling all of them |
||||
|
# TODO this cleanup is not sufficient. Fish completions are only loaded once the user triggers |
||||
|
# them, so the below deletion will not work as it is run too early. What else can we do? |
||||
|
complete -c kogito -e |
||||
|
|
||||
|
# The order in which the below two lines are defined is very important so that __kogito_prepare_completions |
||||
|
# is called first. It is __kogito_prepare_completions that sets up the __kogito_comp_do_file_comp variable. |
||||
|
# |
||||
|
# This completion will be run second as complete commands are added FILO. |
||||
|
# It triggers file completion choices when __kogito_comp_do_file_comp is set. |
||||
|
complete -c kogito -n 'set --query __kogito_comp_do_file_comp' |
||||
|
|
||||
|
# This completion will be run first as complete commands are added FILO. |
||||
|
# The call to __kogito_prepare_completions will setup both __kogito_comp_results abd __kogito_comp_do_file_comp. |
||||
|
# It provides the program's completion choices. |
||||
|
complete -c kogito -n '__kogito_prepare_completions' -f -a '$__kogito_comp_results' |
||||
|
|
@ -0,0 +1,4 @@ |
|||||
|
function maven-test-method |
||||
|
# mvn "-Dtest=$argv[1]#*$argv[2]*" clean test |
||||
|
mvn "-Dtest=$argv[1]#*$argv[2]*" test |
||||
|
end |
@ -0,0 +1,10 @@ |
|||||
|
function vpn-red-hat |
||||
|
if test $argv[1] = 'up' |
||||
|
sudo systemctl start NetworkManager.service |
||||
|
and sleep 3 |
||||
|
and nmcli con up id "1 - Red Hat Global VPN" --ask |
||||
|
else if test $argv[1] = 'down' |
||||
|
nmcli con down id "1 - Red Hat Global VPN" |
||||
|
and sudo systemctl stop NetworkManager.service |
||||
|
end |
||||
|
end |
@ -1,3 +1,5 @@ |
|||||
sub-auto=fuzzy |
sub-auto=fuzzy |
||||
|
# volume=25 |
||||
|
volume=75 |
||||
ytdl-format=best |
ytdl-format=best |
||||
ytdl-raw-options=sub-format=en,write-srt= |
ytdl-raw-options=sub-format=en,write-srt= |
Write
Preview
Loading…
Cancel
Save
Reference in new issue