mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-21 22:46:00 +01:00
hyprpm, hyprctl: update shell completions
This commit is contained in:
parent
11dfb8397b
commit
83d88fa564
8 changed files with 471 additions and 407 deletions
|
@ -1,17 +1,17 @@
|
||||||
_hyprctl_cmd_2 () {
|
_hyprctl_cmd_1 () {
|
||||||
hyprctl monitors | awk '/Monitor/{ print $2 }'
|
hyprctl monitors | awk '/Monitor/{ print $2 }'
|
||||||
}
|
}
|
||||||
|
|
||||||
_hyprctl_cmd_3 () {
|
_hyprctl_cmd_3 () {
|
||||||
hyprpm list | awk '/Plugin/{ print $4 }'
|
hyprctl clients | awk '/class/{print $2}'
|
||||||
|
}
|
||||||
|
|
||||||
|
_hyprctl_cmd_2 () {
|
||||||
|
hyprctl devices | sed -n '/Keyboard at/{n; s/^\s\+//; p}'
|
||||||
}
|
}
|
||||||
|
|
||||||
_hyprctl_cmd_0 () {
|
_hyprctl_cmd_0 () {
|
||||||
hyprctl clients | awk '/class/{ print $2 }'
|
hyprpm list | awk '/Plugin/{print $4}'
|
||||||
}
|
|
||||||
|
|
||||||
_hyprctl_cmd_1 () {
|
|
||||||
hyprctl devices | sed -n '/Keyboard at/{n; s/^\s\+//; p}'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_hyprctl () {
|
_hyprctl () {
|
||||||
|
@ -23,25 +23,25 @@ _hyprctl () {
|
||||||
local words cword
|
local words cword
|
||||||
_get_comp_words_by_ref -n "$COMP_WORDBREAKS" words cword
|
_get_comp_words_by_ref -n "$COMP_WORDBREAKS" words cword
|
||||||
|
|
||||||
local -a literals=("cyclenext" "globalshortcuts" "cursorpos" "bordersize" "renameworkspace" "animationstyle" "focuswindow" "0" "auto" "swapnext" "forceallowsinput" "moveactive" "activebordercolor" "alphafullscreen" "wayland" "layers" "minsize" "monitors" "1" "kill" "settiled" "3" "focusmonitor" "swapwindow" "moveoutofgroup" "notify" "movecursor" "setcursor" "seterror" "movecurrentworkspacetomonitor" "4" "nomaxsize" "forcenoanims" "setprop" "-i" "-q" "togglefloating" "workspacerules" "movetoworkspace" "disable" "setignoregrouplock" "workspaces" "movegroupwindow" "closewindow" "0" "--instance" "binds" "movewindow" "splitratio" "alpha" "denywindowfromgroup" "workspace" "configerrors" "togglegroup" "getoption" "forceopaque" "keepaspectratio" "killactive" "pass" "decorations" "devices" "focuscurrentorlast" "submap" "global" "alphafullscreenoverride" "forcerendererreload" "movewindowpixel" "headless" "version" "dpms" "resizeactive" "moveintogroup" "5" "alphaoverride" "setfloating" "rollinglog" "::=" "rounding" "layouts" "moveworkspacetomonitor" "exec" "alphainactiveoverride" "alterzorder" "fakefullscreen" "nofocus" "keyword" "forcenoborder" "forcenodim" "--quiet" "pin" "output" "forcenoblur" "togglespecialworkspace" "fullscreen" "toggleopaque" "focusworkspaceoncurrentmonitor" "next" "changegroupactive" "-j" "instances" "execr" "exit" "clients" "all" "--batch" "dismissnotify" "inactivebordercolor" "switchxkblayout" "movetoworkspacesilent" "tagwindow" "movewindoworgroup" "-r" "movefocus" "focusurgentorlast" "remove" "activeworkspace" "dispatch" "create" "centerwindow" "2" "hyprpaper" "-1" "reload" "alphainactive" "systeminfo" "plugin" "dimaround" "activewindow" "swapactiveworkspaces" "splash" "sendshortcut" "maxsize" "lockactivegroup" "windowdancecompat" "forceopaqueoverriden" "lockgroups" "movecursortocorner" "x11" "prev" "1" "resizewindowpixel" "forcenoshadow")
|
declare -a literals=(resizeactive 2 changegroupactive -r moveintogroup forceallowsinput 4 ::= systeminfo all layouts setprop animationstyle switchxkblayout create denywindowfromgroup headless activebordercolor exec setcursor wayland focusurgentorlast workspacerules movecurrentworkspacetomonitor movetoworkspacesilent hyprpaper alpha inactivebordercolor movegroupwindow movecursortocorner movewindowpixel prev movewindow globalshortcuts clients dimaround setignoregrouplock splash execr monitors 0 forcenoborder -q animations 1 nomaxsize splitratio moveactive pass swapnext devices layers rounding lockactivegroup 5 moveworkspacetomonitor -f -i --quiet forcenodim pin 0 1 forceopaque forcenoshadow setfloating minsize alphaoverride sendshortcut workspaces cyclenext alterzorder togglegroup lockgroups bordersize dpms focuscurrentorlast -1 --batch notify remove instances 1 3 moveoutofgroup killactive 2 movetoworkspace movecursor configerrors closewindow swapwindow tagwindow forcerendererreload centerwindow auto focuswindow seterror nofocus alphafullscreen binds version -h togglespecialworkspace fullscreen windowdancecompat 0 keyword toggleopaque 3 --instance togglefloating renameworkspace alphafullscreenoverride activeworkspace x11 kill forceopaqueoverriden output global dispatch reload forcenoblur -j event --help disable -1 activewindow keepaspectratio dismissnotify focusmonitor movefocus plugin exit workspace fullscreenstate getoption alphainactiveoverride alphainactive decorations settiled config-only descriptions resizewindowpixel fakefullscreen rollinglog swapactiveworkspaces submap next movewindoworgroup cursorpos forcenoanims focusworkspaceoncurrentmonitor maxsize)
|
||||||
|
|
||||||
declare -A literal_transitions
|
declare -A literal_transitions
|
||||||
literal_transitions[0]="([105]=1 [75]=2 [33]=3 [35]=4 [1]=2 [2]=2 [78]=2 [107]=5 [37]=2 [111]=4 [41]=2 [46]=2 [115]=2 [85]=6 [116]=8 [52]=2 [88]=4 [54]=2 [90]=9 [120]=2 [122]=2 [124]=2 [15]=2 [59]=10 [60]=2 [17]=11 [125]=12 [19]=2 [127]=2 [129]=2 [25]=13 [68]=2 [98]=4 [99]=2 [27]=2 [28]=14 [102]=2 [104]=4)"
|
literal_transitions[0]="([120]=14 [43]=2 [125]=21 [81]=2 [3]=21 [51]=2 [50]=2 [128]=2 [89]=2 [58]=21 [8]=2 [10]=2 [11]=3 [130]=4 [13]=5 [97]=6 [101]=2 [102]=21 [133]=7 [100]=2 [137]=2 [22]=2 [19]=2 [140]=8 [25]=2 [143]=2 [107]=9 [146]=10 [69]=2 [33]=2 [34]=2 [78]=21 [114]=2 [37]=2 [151]=2 [116]=2 [121]=13 [123]=21 [39]=11 [42]=21 [79]=15 [118]=12)"
|
||||||
literal_transitions[3]="([73]=17 [13]=2 [32]=17 [55]=17 [56]=17 [91]=17 [106]=2 [123]=2 [77]=1 [16]=2 [126]=17 [3]=1 [5]=2 [64]=17 [131]=2 [133]=17 [81]=17 [134]=17 [84]=17 [31]=17 [49]=2 [12]=2 [86]=17 [10]=17 [87]=17 [141]=17)"
|
literal_transitions[1]="([81]=2 [51]=2 [50]=2 [128]=2 [8]=2 [89]=2 [10]=2 [11]=3 [130]=4 [13]=5 [97]=6 [101]=2 [133]=7 [100]=2 [22]=2 [19]=2 [137]=2 [140]=8 [25]=2 [143]=2 [107]=9 [146]=10 [69]=2 [33]=2 [34]=2 [114]=2 [37]=2 [151]=2 [116]=2 [39]=11 [118]=12 [121]=13 [120]=14 [79]=15 [43]=2)"
|
||||||
literal_transitions[7]="([105]=1 [75]=2 [33]=3 [1]=2 [2]=2 [78]=2 [107]=5 [37]=2 [41]=2 [46]=2 [115]=2 [85]=6 [116]=8 [52]=2 [54]=2 [90]=9 [120]=2 [122]=2 [124]=2 [15]=2 [59]=10 [60]=2 [17]=11 [125]=12 [19]=2 [127]=2 [129]=2 [25]=13 [68]=2 [99]=2 [27]=2 [28]=14 [102]=2)"
|
literal_transitions[3]="([139]=2 [63]=16 [64]=16 [45]=16 [105]=16 [27]=2 [26]=2 [52]=4 [5]=16 [66]=2 [67]=16 [129]=16 [113]=16 [12]=2 [74]=4 [99]=2 [35]=16 [152]=16 [98]=16 [59]=16 [117]=16 [41]=16 [17]=2 [138]=16 [154]=2 [122]=16)"
|
||||||
literal_transitions[8]="([101]=2 [130]=2 [132]=2 [0]=2 [74]=2 [36]=2 [108]=2 [109]=2 [38]=2 [110]=2 [4]=2 [79]=2 [40]=2 [80]=2 [113]=2 [6]=2 [42]=2 [43]=2 [82]=2 [83]=2 [47]=2 [48]=2 [9]=2 [50]=2 [51]=2 [53]=2 [11]=2 [112]=2 [89]=2 [118]=2 [57]=2 [92]=2 [58]=2 [93]=2 [94]=2 [61]=2 [62]=2 [128]=2 [95]=2 [63]=2 [20]=2 [97]=2 [22]=2 [23]=2 [65]=2 [66]=2 [135]=2 [136]=2 [24]=2 [26]=2 [69]=2 [100]=2 [70]=2 [140]=2 [29]=2 [71]=2)"
|
literal_transitions[6]="([126]=2)"
|
||||||
literal_transitions[9]="([117]=20 [114]=16)"
|
literal_transitions[10]="([56]=2)"
|
||||||
literal_transitions[11]="([103]=2)"
|
literal_transitions[11]="([9]=2)"
|
||||||
literal_transitions[13]="([21]=1 [119]=1 [30]=1 [139]=1 [121]=1 [44]=1 [72]=1)"
|
literal_transitions[12]="([14]=19 [80]=22)"
|
||||||
literal_transitions[14]="([39]=2)"
|
literal_transitions[13]="([142]=2)"
|
||||||
literal_transitions[15]="([138]=2 [96]=2)"
|
literal_transitions[14]="([0]=2 [84]=2 [2]=2 [85]=2 [4]=2 [87]=2 [88]=2 [90]=2 [91]=2 [92]=2 [93]=2 [94]=2 [96]=2 [15]=2 [18]=2 [103]=2 [21]=2 [104]=2 [23]=2 [24]=2 [28]=2 [29]=2 [30]=2 [108]=2 [111]=2 [32]=2 [112]=2 [36]=2 [38]=2 [119]=2 [124]=2 [46]=2 [47]=2 [48]=2 [49]=2 [53]=2 [55]=2 [131]=2 [132]=2 [134]=2 [135]=2 [60]=2 [136]=20 [141]=2 [65]=2 [144]=2 [145]=2 [68]=2 [147]=2 [70]=2 [71]=2 [72]=2 [73]=2 [148]=2 [75]=2 [76]=2 [150]=2 [153]=2)"
|
||||||
literal_transitions[17]="([18]=2 [7]=2)"
|
literal_transitions[15]="([86]=4 [6]=4 [109]=4 [61]=4 [77]=4 [54]=4 [62]=4)"
|
||||||
literal_transitions[18]="([76]=19)"
|
literal_transitions[16]="([40]=2 [44]=2)"
|
||||||
literal_transitions[19]="([34]=4 [45]=4)"
|
literal_transitions[17]="([7]=23)"
|
||||||
literal_transitions[20]="([8]=2 [67]=2 [14]=2 [137]=2)"
|
literal_transitions[18]="([31]=2 [149]=2)"
|
||||||
|
literal_transitions[19]="([95]=2 [16]=2 [115]=2 [20]=2)"
|
||||||
declare -A match_anything_transitions
|
literal_transitions[20]="([106]=2 [82]=2 [127]=2 [1]=2 [83]=2)"
|
||||||
match_anything_transitions=([1]=2 [0]=7 [6]=2 [15]=2 [10]=2 [5]=15 [14]=18 [7]=7 [2]=18 [16]=2 [12]=2 [11]=18)
|
literal_transitions[23]="([57]=21 [110]=21)"
|
||||||
|
declare -A match_anything_transitions=([6]=17 [7]=2 [0]=1 [22]=2 [5]=18 [4]=2 [2]=17 [18]=2 [11]=17 [8]=2 [9]=2 [13]=17 [10]=17 [1]=1)
|
||||||
declare -A subword_transitions
|
declare -A subword_transitions
|
||||||
|
|
||||||
local state=0
|
local state=0
|
||||||
|
@ -79,21 +79,9 @@ _hyprctl () {
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
local -a matches=()
|
||||||
|
|
||||||
local prefix="${words[$cword]}"
|
local prefix="${words[$cword]}"
|
||||||
|
|
||||||
local shortest_suffix="$word"
|
|
||||||
for ((i=0; i < ${#COMP_WORDBREAKS}; i++)); do
|
|
||||||
local char="${COMP_WORDBREAKS:$i:1}"
|
|
||||||
local candidate="${word##*$char}"
|
|
||||||
if [[ ${#candidate} -lt ${#shortest_suffix} ]]; then
|
|
||||||
shortest_suffix=$candidate
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
local superfluous_prefix=""
|
|
||||||
if [[ "$shortest_suffix" != "$word" ]]; then
|
|
||||||
local superfluous_prefix=${word%$shortest_suffix}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -v "literal_transitions[$state]" ]]; then
|
if [[ -v "literal_transitions[$state]" ]]; then
|
||||||
local state_transitions_initializer=${literal_transitions[$state]}
|
local state_transitions_initializer=${literal_transitions[$state]}
|
||||||
declare -A state_transitions
|
declare -A state_transitions
|
||||||
|
@ -102,25 +90,38 @@ _hyprctl () {
|
||||||
for literal_id in "${!state_transitions[@]}"; do
|
for literal_id in "${!state_transitions[@]}"; do
|
||||||
local literal="${literals[$literal_id]}"
|
local literal="${literals[$literal_id]}"
|
||||||
if [[ $literal = "${prefix}"* ]]; then
|
if [[ $literal = "${prefix}"* ]]; then
|
||||||
local completion=${literal#"$superfluous_prefix"}
|
matches+=("$literal ")
|
||||||
COMPREPLY+=("$completion ")
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
declare -A commands
|
declare -A commands
|
||||||
commands=([5]=1 [16]=2 [12]=3 [10]=0)
|
commands=([7]=0 [22]=1 [8]=3 [5]=2)
|
||||||
if [[ -v "commands[$state]" ]]; then
|
if [[ -v "commands[$state]" ]]; then
|
||||||
local command_id=${commands[$state]}
|
local command_id=${commands[$state]}
|
||||||
local completions=()
|
local completions=()
|
||||||
mapfile -t completions < <(_hyprctl_cmd_${command_id} "$prefix" | cut -f1)
|
readarray -t completions < <(_hyprctl_cmd_${command_id} "$prefix" | cut -f1)
|
||||||
for item in "${completions[@]}"; do
|
for item in "${completions[@]}"; do
|
||||||
if [[ $item = "${prefix}"* ]]; then
|
if [[ $item = "${prefix}"* ]]; then
|
||||||
COMPREPLY+=("$item")
|
matches+=("$item")
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
local shortest_suffix="$prefix"
|
||||||
|
for ((i=0; i < ${#COMP_WORDBREAKS}; i++)); do
|
||||||
|
local char="${COMP_WORDBREAKS:$i:1}"
|
||||||
|
local candidate=${prefix##*$char}
|
||||||
|
if [[ ${#candidate} -lt ${#shortest_suffix} ]]; then
|
||||||
|
shortest_suffix=$candidate
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
local superfluous_prefix=""
|
||||||
|
if [[ "$shortest_suffix" != "$prefix" ]]; then
|
||||||
|
local superfluous_prefix=${prefix%$shortest_suffix}
|
||||||
|
fi
|
||||||
|
COMPREPLY=("${matches[@]#$superfluous_prefix}")
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
function _hyprctl_3
|
function _hyprctl_2
|
||||||
set 1 $argv[1]
|
set 1 $argv[1]
|
||||||
hyprctl monitors | awk '/Monitor/{ print $2 }'
|
hyprctl monitors | awk '/Monitor/{ print $2 }'
|
||||||
end
|
end
|
||||||
|
|
||||||
function _hyprctl_4
|
function _hyprctl_4
|
||||||
set 1 $argv[1]
|
set 1 $argv[1]
|
||||||
hyprpm list | awk '/Plugin/{ print $4 }'
|
hyprctl clients | awk '/class/{print $2}'
|
||||||
|
end
|
||||||
|
|
||||||
|
function _hyprctl_3
|
||||||
|
set 1 $argv[1]
|
||||||
|
hyprctl devices | sed -n '/Keyboard at/{n; s/^\s\+//; p}'
|
||||||
end
|
end
|
||||||
|
|
||||||
function _hyprctl_1
|
function _hyprctl_1
|
||||||
set 1 $argv[1]
|
set 1 $argv[1]
|
||||||
hyprctl clients | awk '/class/{ print $2 }'
|
hyprpm list | awk '/Plugin/{print $4}'
|
||||||
end
|
|
||||||
|
|
||||||
function _hyprctl_2
|
|
||||||
set 1 $argv[1]
|
|
||||||
hyprctl devices | sed -n '/Keyboard at/{n; s/^\s\+//; p}'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function _hyprctl
|
function _hyprctl
|
||||||
|
@ -29,145 +29,160 @@ function _hyprctl
|
||||||
set COMP_CWORD (count $COMP_WORDS)
|
set COMP_CWORD (count $COMP_WORDS)
|
||||||
end
|
end
|
||||||
|
|
||||||
set --local literals "cyclenext" "globalshortcuts" "cursorpos" "bordersize" "renameworkspace" "animationstyle" "focuswindow" "0" "auto" "swapnext" "forceallowsinput" "moveactive" "activebordercolor" "alphafullscreen" "wayland" "layers" "minsize" "monitors" "1" "kill" "settiled" "3" "focusmonitor" "swapwindow" "moveoutofgroup" "notify" "movecursor" "setcursor" "seterror" "movecurrentworkspacetomonitor" "4" "nomaxsize" "forcenoanims" "setprop" "-i" "-q" "togglefloating" "workspacerules" "movetoworkspace" "disable" "setignoregrouplock" "workspaces" "movegroupwindow" "closewindow" "0" "--instance" "binds" "movewindow" "splitratio" "alpha" "denywindowfromgroup" "workspace" "configerrors" "togglegroup" "getoption" "forceopaque" "keepaspectratio" "killactive" "pass" "decorations" "devices" "focuscurrentorlast" "submap" "global" "alphafullscreenoverride" "forcerendererreload" "movewindowpixel" "headless" "version" "dpms" "resizeactive" "moveintogroup" "5" "alphaoverride" "setfloating" "rollinglog" "::=" "rounding" "layouts" "moveworkspacetomonitor" "exec" "alphainactiveoverride" "alterzorder" "fakefullscreen" "nofocus" "keyword" "forcenoborder" "forcenodim" "--quiet" "pin" "output" "forcenoblur" "togglespecialworkspace" "fullscreen" "toggleopaque" "focusworkspaceoncurrentmonitor" "next" "changegroupactive" "-j" "instances" "execr" "exit" "clients" "all" "--batch" "dismissnotify" "inactivebordercolor" "switchxkblayout" "movetoworkspacesilent" "tagwindow" "movewindoworgroup" "-r" "movefocus" "focusurgentorlast" "remove" "activeworkspace" "dispatch" "create" "centerwindow" "2" "hyprpaper" "-1" "reload" "alphainactive" "systeminfo" "plugin" "dimaround" "activewindow" "swapactiveworkspaces" "splash" "sendshortcut" "maxsize" "lockactivegroup" "windowdancecompat" "forceopaqueoverriden" "lockgroups" "movecursortocorner" "x11" "prev" "1" "resizewindowpixel" "forcenoshadow"
|
set literals "resizeactive" "2" "changegroupactive" "-r" "moveintogroup" "forceallowsinput" "4" "::=" "systeminfo" "all" "layouts" "setprop" "animationstyle" "switchxkblayout" "create" "denywindowfromgroup" "headless" "activebordercolor" "exec" "setcursor" "wayland" "focusurgentorlast" "workspacerules" "movecurrentworkspacetomonitor" "movetoworkspacesilent" "hyprpaper" "alpha" "inactivebordercolor" "movegroupwindow" "movecursortocorner" "movewindowpixel" "prev" "movewindow" "globalshortcuts" "clients" "dimaround" "setignoregrouplock" "splash" "execr" "monitors" "0" "forcenoborder" "-q" "animations" "1" "nomaxsize" "splitratio" "moveactive" "pass" "swapnext" "devices" "layers" "rounding" "lockactivegroup" "5" "moveworkspacetomonitor" "-f" "-i" "--quiet" "forcenodim" "pin" "0" "1" "forceopaque" "forcenoshadow" "setfloating" "minsize" "alphaoverride" "sendshortcut" "workspaces" "cyclenext" "alterzorder" "togglegroup" "lockgroups" "bordersize" "dpms" "focuscurrentorlast" "-1" "--batch" "notify" "remove" "instances" "1" "3" "moveoutofgroup" "killactive" "2" "movetoworkspace" "movecursor" "configerrors" "closewindow" "swapwindow" "tagwindow" "forcerendererreload" "centerwindow" "auto" "focuswindow" "seterror" "nofocus" "alphafullscreen" "binds" "version" "-h" "togglespecialworkspace" "fullscreen" "windowdancecompat" "0" "keyword" "toggleopaque" "3" "--instance" "togglefloating" "renameworkspace" "alphafullscreenoverride" "activeworkspace" "x11" "kill" "forceopaqueoverriden" "output" "global" "dispatch" "reload" "forcenoblur" "-j" "event" "--help" "disable" "-1" "activewindow" "keepaspectratio" "dismissnotify" "focusmonitor" "movefocus" "plugin" "exit" "workspace" "fullscreenstate" "getoption" "alphainactiveoverride" "alphainactive" "decorations" "settiled" "config-only" "descriptions" "resizewindowpixel" "fakefullscreen" "rollinglog" "swapactiveworkspaces" "submap" "next" "movewindoworgroup" "cursorpos" "forcenoanims" "focusworkspaceoncurrentmonitor" "maxsize"
|
||||||
|
|
||||||
set --local descriptions
|
set descriptions
|
||||||
set descriptions[1] "Focus the next window on a workspace"
|
set descriptions[1] "Resize the active window"
|
||||||
set descriptions[3] "Get the current cursor pos in global layout coordinates"
|
set descriptions[2] "Fullscreen"
|
||||||
set descriptions[5] "Rename a workspace"
|
set descriptions[3] "Switch to the next window in a group"
|
||||||
set descriptions[7] "Focus the first window matching"
|
set descriptions[4] "Refresh state after issuing the command"
|
||||||
set descriptions[10] "Swap the focused window with the next window"
|
set descriptions[5] "Move the active window into a group"
|
||||||
set descriptions[12] "Move the active window"
|
set descriptions[7] "CONFUSED"
|
||||||
set descriptions[16] "List the layers"
|
set descriptions[9] "Print system info"
|
||||||
set descriptions[18] "List active outputs with their properties"
|
set descriptions[11] "List all layouts available (including plugin ones)"
|
||||||
set descriptions[20] "Get into a kill mode, where you can kill an app by clicking on it"
|
set descriptions[12] "Set a property of a window"
|
||||||
set descriptions[21] "Set the current window's floating state to false"
|
set descriptions[14] "Set the xkb layout index for a keyboard"
|
||||||
set descriptions[22] "ERROR"
|
set descriptions[16] "Prohibit the active window from becoming or being inserted into group"
|
||||||
set descriptions[23] "Focus a monitor"
|
set descriptions[19] "Execute a shell command"
|
||||||
set descriptions[24] "Swap the active window with another window"
|
set descriptions[20] "Set the cursor theme and reloads the cursor manager"
|
||||||
set descriptions[25] "Move the active window out of a group"
|
set descriptions[22] "Focus the urgent window or the last window"
|
||||||
set descriptions[26] "Send a notification using the built-in Hyprland notification system"
|
set descriptions[23] "Get the list of defined workspace rules"
|
||||||
set descriptions[27] "Move the cursor to a specified position"
|
set descriptions[24] "Move the active workspace to a monitor"
|
||||||
set descriptions[28] "Set the cursor theme and reloads the cursor manager"
|
set descriptions[25] "Move window doesnt switch to the workspace"
|
||||||
set descriptions[29] "Set the hyprctl error string"
|
set descriptions[26] "Interact with hyprpaper if present"
|
||||||
set descriptions[30] "Move the active workspace to a monitor"
|
set descriptions[29] "Swap the active window with the next or previous in a group"
|
||||||
set descriptions[31] "CONFUSED"
|
set descriptions[30] "Move the cursor to the corner of the active window"
|
||||||
set descriptions[34] "Set a property of a window"
|
set descriptions[31] "Move a selected window"
|
||||||
set descriptions[35] "Specify the Hyprland instance"
|
set descriptions[33] "Move the active window in a direction or to a monitor"
|
||||||
set descriptions[36] "Disable output"
|
set descriptions[34] "Lists all global shortcuts"
|
||||||
set descriptions[37] "Toggle the current window's floating state"
|
set descriptions[35] "List all windows with their properties"
|
||||||
set descriptions[38] "Get the list of defined workspace rules"
|
set descriptions[37] "Temporarily enable or disable binds:ignore_group_lock"
|
||||||
set descriptions[39] "Move the focused window to a workspace"
|
set descriptions[38] "Print the current random splash"
|
||||||
set descriptions[41] "Temporarily enable or disable binds:ignore_group_lock"
|
set descriptions[39] "Execute a raw shell command"
|
||||||
set descriptions[42] "List all workspaces with their properties"
|
set descriptions[40] "List active outputs with their properties"
|
||||||
set descriptions[43] "Swap the active window with the next or previous in a group"
|
set descriptions[43] "Disable output"
|
||||||
set descriptions[44] "Close a specified window"
|
set descriptions[44] "Gets the current config info about animations and beziers"
|
||||||
set descriptions[45] "WARNING"
|
set descriptions[47] "Change the split ratio"
|
||||||
set descriptions[46] "Specify the Hyprland instance"
|
set descriptions[48] "Move the active window"
|
||||||
set descriptions[47] "List all registered binds"
|
set descriptions[49] "Pass the key to a specified window"
|
||||||
set descriptions[48] "Move the active window in a direction or to a monitor"
|
set descriptions[50] "Swap the focused window with the next window"
|
||||||
set descriptions[49] "Change the split ratio"
|
set descriptions[51] "List all connected keyboards and mice"
|
||||||
set descriptions[51] "Prohibit the active window from becoming or being inserted into group"
|
set descriptions[52] "List the layers"
|
||||||
set descriptions[52] "Change the workspace"
|
set descriptions[54] "Lock the focused group"
|
||||||
set descriptions[53] "List all current config parsing errors"
|
set descriptions[55] "OK"
|
||||||
set descriptions[54] "Toggle the current active window into a group"
|
set descriptions[56] "Move a workspace to a monitor"
|
||||||
set descriptions[55] "Get the config option status (values)"
|
set descriptions[58] "Specify the Hyprland instance"
|
||||||
set descriptions[58] "Close the active window"
|
set descriptions[59] "Disable output"
|
||||||
set descriptions[59] "Pass the key to a specified window"
|
set descriptions[61] "Pin a window"
|
||||||
set descriptions[60] "List all decorations and their info"
|
set descriptions[62] "WARNING"
|
||||||
set descriptions[61] "List all connected keyboards and mice"
|
set descriptions[63] "INFO"
|
||||||
set descriptions[62] "Switch focus from current to previously focused window"
|
set descriptions[66] "Set the current window's floating state to true"
|
||||||
set descriptions[63] "Change the current mapping group"
|
set descriptions[69] "On shortcut X sends shortcut Y to a specified window"
|
||||||
set descriptions[64] "Execute a Global Shortcut using the GlobalShortcuts portal"
|
set descriptions[70] "List all workspaces with their properties"
|
||||||
set descriptions[66] "Force the renderer to reload all resources and outputs"
|
set descriptions[71] "Focus the next window on a workspace"
|
||||||
set descriptions[67] "Move a selected window"
|
set descriptions[72] "Modify the window stack order of the active or specified window"
|
||||||
set descriptions[69] "Print the Hyprland version: flags, commit and branch of build"
|
set descriptions[73] "Toggle the current active window into a group"
|
||||||
set descriptions[70] "Set all monitors' DPMS status"
|
set descriptions[74] "Lock the groups"
|
||||||
set descriptions[71] "Resize the active window"
|
set descriptions[76] "Set all monitors' DPMS status"
|
||||||
set descriptions[72] "Move the active window into a group"
|
set descriptions[77] "Switch focus from current to previously focused window"
|
||||||
set descriptions[73] "OK"
|
set descriptions[78] "No Icon"
|
||||||
set descriptions[75] "Set the current window's floating state to true"
|
set descriptions[79] "Execute a batch of commands separated by ;"
|
||||||
set descriptions[76] "Print tail of the log"
|
set descriptions[80] "Send a notification using the built-in Hyprland notification system"
|
||||||
set descriptions[79] "List all layouts available (including plugin ones)"
|
set descriptions[82] "List all running Hyprland instances and their info"
|
||||||
set descriptions[80] "Move a workspace to a monitor"
|
set descriptions[83] "Maximize no fullscreen"
|
||||||
set descriptions[81] "Execute a shell command"
|
set descriptions[84] "Maximize and fullscreen"
|
||||||
set descriptions[83] "Modify the window stack order of the active or specified window"
|
set descriptions[85] "Move the active window out of a group"
|
||||||
set descriptions[84] "Toggle the focused window's internal fullscreen state"
|
set descriptions[86] "Close the active window"
|
||||||
set descriptions[86] "Issue a keyword to call a config keyword dynamically"
|
set descriptions[87] "HINT"
|
||||||
set descriptions[89] "Disable output"
|
set descriptions[88] "Move the focused window to a workspace"
|
||||||
set descriptions[90] "Pin a window"
|
set descriptions[89] "Move the cursor to a specified position"
|
||||||
set descriptions[91] "Allows adding/removing fake outputs to a specific backend"
|
set descriptions[90] "List all current config parsing errors"
|
||||||
set descriptions[93] "Toggle a special workspace on/off"
|
set descriptions[91] "Close a specified window"
|
||||||
set descriptions[94] "Toggle the focused window's fullscreen state"
|
set descriptions[92] "Swap the active window with another window"
|
||||||
set descriptions[95] "Toggle the current window to always be opaque"
|
set descriptions[93] "Apply a tag to the window"
|
||||||
set descriptions[96] "Focus the requested workspace"
|
set descriptions[94] "Force the renderer to reload all resources and outputs"
|
||||||
set descriptions[98] "Switch to the next window in a group"
|
set descriptions[95] "Center the active window"
|
||||||
set descriptions[99] "Output in JSON format"
|
set descriptions[97] "Focus the first window matching"
|
||||||
set descriptions[100] "List all running Hyprland instances and their info"
|
set descriptions[98] "Set the hyprctl error string"
|
||||||
set descriptions[101] "Execute a raw shell command"
|
set descriptions[101] "List all registered binds"
|
||||||
set descriptions[102] "Exit the compositor with no questions asked"
|
set descriptions[102] "Print the Hyprland version: flags, commit and branch of build"
|
||||||
set descriptions[103] "List all windows with their properties"
|
set descriptions[103] "Prints the help message"
|
||||||
set descriptions[105] "Execute a batch of commands separated by ;"
|
set descriptions[104] "Toggle a special workspace on/off"
|
||||||
set descriptions[106] "Dismiss all or up to amount of notifications"
|
set descriptions[105] "Toggle the focused window's fullscreen state"
|
||||||
set descriptions[108] "Set the xkb layout index for a keyboard"
|
set descriptions[107] "None"
|
||||||
set descriptions[109] "Move window doesnt switch to the workspace"
|
set descriptions[108] "Issue a keyword to call a config keyword dynamically"
|
||||||
set descriptions[110] "Apply a tag to the window"
|
set descriptions[109] "Toggle the current window to always be opaque"
|
||||||
set descriptions[111] "Behave as moveintogroup"
|
set descriptions[110] "ERROR"
|
||||||
set descriptions[112] "Refresh state after issuing the command"
|
set descriptions[111] "Specify the Hyprland instance"
|
||||||
set descriptions[113] "Move the focus in a direction"
|
set descriptions[112] "Toggle the current window's floating state"
|
||||||
set descriptions[114] "Focus the urgent window or the last window"
|
set descriptions[113] "Rename a workspace"
|
||||||
set descriptions[116] "Get the active workspace name and its properties"
|
set descriptions[115] "Get the active workspace name and its properties"
|
||||||
set descriptions[117] "Issue a dispatch to call a keybind dispatcher with an arg"
|
set descriptions[117] "Get into a kill mode, where you can kill an app by clicking on it"
|
||||||
set descriptions[119] "Center the active window"
|
set descriptions[119] "Allows adding/removing fake outputs to a specific backend"
|
||||||
set descriptions[120] "HINT"
|
set descriptions[120] "Execute a Global Shortcut using the GlobalShortcuts portal"
|
||||||
set descriptions[121] "Interact with hyprpaper if present"
|
set descriptions[121] "Issue a dispatch to call a keybind dispatcher with an arg"
|
||||||
set descriptions[122] "No Icon"
|
set descriptions[122] "Force reload the config"
|
||||||
set descriptions[123] "Force reload the config"
|
set descriptions[124] "Output in JSON format"
|
||||||
set descriptions[125] "Print system info"
|
set descriptions[125] "Emits a custom event to socket2"
|
||||||
set descriptions[126] "Interact with a plugin"
|
set descriptions[126] "Prints the help message"
|
||||||
set descriptions[128] "Get the active window name and its properties"
|
set descriptions[128] "Current"
|
||||||
set descriptions[129] "Swap the active workspaces between two monitors"
|
set descriptions[129] "Get the active window name and its properties"
|
||||||
set descriptions[130] "Print the current random splash"
|
set descriptions[131] "Dismiss all or up to amount of notifications"
|
||||||
set descriptions[131] "On shortcut X sends shortcut Y to a specified window"
|
set descriptions[132] "Focus a monitor"
|
||||||
set descriptions[133] "Lock the focused group"
|
set descriptions[133] "Move the focus in a direction"
|
||||||
set descriptions[136] "Lock the groups"
|
set descriptions[134] "Interact with a plugin"
|
||||||
set descriptions[137] "Move the cursor to the corner of the active window"
|
set descriptions[135] "Exit the compositor with no questions asked"
|
||||||
set descriptions[140] "INFO"
|
set descriptions[136] "Change the workspace"
|
||||||
set descriptions[141] "Resize a selected window"
|
set descriptions[137] "Sets the focused window’s fullscreen mode and the one sent to the client"
|
||||||
|
set descriptions[138] "Get the config option status (values)"
|
||||||
|
set descriptions[141] "List all decorations and their info"
|
||||||
|
set descriptions[142] "Set the current window's floating state to false"
|
||||||
|
set descriptions[144] "Return a parsable JSON with all the config options, descriptions, value types and ranges"
|
||||||
|
set descriptions[145] "Resize a selected window"
|
||||||
|
set descriptions[146] "Toggle the focused window's internal fullscreen state"
|
||||||
|
set descriptions[147] "Print tail of the log"
|
||||||
|
set descriptions[148] "Swap the active workspaces between two monitors"
|
||||||
|
set descriptions[149] "Change the current mapping group"
|
||||||
|
set descriptions[151] "Behave as moveintogroup"
|
||||||
|
set descriptions[152] "Get the current cursor pos in global layout coordinates"
|
||||||
|
set descriptions[154] "Focus the requested workspace"
|
||||||
|
|
||||||
set --local literal_transitions
|
set literal_transitions
|
||||||
set literal_transitions[1] "set inputs 106 76 34 36 2 3 79 108 38 112 42 47 116 86 117 53 89 55 91 121 123 125 16 60 61 18 126 20 128 130 26 69 99 100 28 29 103 105; set tos 2 3 4 5 3 3 3 6 3 5 3 3 3 7 9 3 5 3 10 3 3 3 3 11 3 12 13 3 3 3 14 3 5 3 3 15 3 5"
|
set literal_transitions[1] "set inputs 121 44 126 82 4 52 51 129 90 59 9 11 12 131 14 98 102 103 134 101 138 23 20 141 26 144 108 147 70 34 35 79 115 38 152 117 122 124 40 43 80 119; set tos 15 3 22 3 22 3 3 3 3 22 3 3 4 5 6 7 3 22 8 3 3 3 3 9 3 3 10 11 3 3 3 22 3 3 3 3 14 22 12 22 16 13"
|
||||||
set literal_transitions[4] "set inputs 74 14 33 56 57 92 107 124 78 17 127 4 6 65 132 134 82 135 85 32 50 13 87 11 88 142; set tos 18 3 18 18 18 18 3 3 2 3 18 2 3 18 3 18 18 18 18 18 3 3 18 18 18 18"
|
set literal_transitions[2] "set inputs 82 52 51 129 9 90 11 12 131 14 98 102 134 101 23 20 138 141 26 144 108 147 70 34 35 115 38 152 117 40 119 122 121 80 44; set tos 3 3 3 3 3 3 3 4 5 6 7 3 8 3 3 3 3 9 3 3 10 11 3 3 3 3 3 3 3 12 13 14 15 16 3"
|
||||||
set literal_transitions[8] "set inputs 106 76 34 2 3 79 108 38 42 47 116 86 117 53 55 91 121 123 125 16 60 61 18 126 20 128 130 26 69 100 28 29 103; set tos 2 3 4 3 3 3 6 3 3 3 3 7 9 3 3 10 3 3 3 3 11 3 12 13 3 3 3 14 3 3 3 15 3"
|
set literal_transitions[4] "set inputs 140 64 65 46 106 28 27 53 6 67 68 130 114 13 75 100 36 153 99 60 118 42 18 139 155 123; set tos 3 17 17 17 17 3 3 5 17 3 17 17 17 3 5 3 17 17 17 17 17 17 3 17 3 17"
|
||||||
set literal_transitions[9] "set inputs 102 131 133 1 75 37 109 110 39 111 5 80 41 81 114 7 43 44 83 84 48 49 10 51 52 54 12 113 90 119 58 93 59 94 95 62 63 129 96 64 21 98 23 24 66 67 136 137 25 27 70 101 71 141 30 72; set tos 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3"
|
set literal_transitions[7] "set inputs 127; set tos 3"
|
||||||
set literal_transitions[10] "set inputs 118 115; set tos 21 17"
|
set literal_transitions[11] "set inputs 57; set tos 3"
|
||||||
set literal_transitions[12] "set inputs 104; set tos 3"
|
set literal_transitions[12] "set inputs 10; set tos 3"
|
||||||
set literal_transitions[14] "set inputs 22 120 31 140 122 45 73; set tos 2 2 2 2 2 2 2"
|
set literal_transitions[13] "set inputs 15 81; set tos 20 23"
|
||||||
set literal_transitions[15] "set inputs 40; set tos 3"
|
set literal_transitions[14] "set inputs 143; set tos 3"
|
||||||
set literal_transitions[16] "set inputs 139 97; set tos 3 3"
|
set literal_transitions[15] "set inputs 1 85 3 86 5 88 89 91 92 93 94 95 97 16 19 104 22 105 24 25 29 30 31 109 112 33 113 37 39 120 125 47 48 49 50 54 56 132 133 135 136 61 137 142 66 145 146 69 148 71 72 73 74 149 76 77 151 154; set tos 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 21 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3"
|
||||||
set literal_transitions[18] "set inputs 19 8; set tos 3 3"
|
set literal_transitions[16] "set inputs 87 7 110 62 78 55 63; set tos 5 5 5 5 5 5 5"
|
||||||
set literal_transitions[19] "set inputs 77; set tos 20"
|
set literal_transitions[17] "set inputs 41 45; set tos 3 3"
|
||||||
set literal_transitions[20] "set inputs 35 46; set tos 5 5"
|
set literal_transitions[18] "set inputs 8; set tos 24"
|
||||||
set literal_transitions[21] "set inputs 9 68 15 138; set tos 3 3 3 3"
|
set literal_transitions[19] "set inputs 32 150; set tos 3 3"
|
||||||
|
set literal_transitions[20] "set inputs 96 17 116 21; set tos 3 3 3 3"
|
||||||
|
set literal_transitions[21] "set inputs 107 83 128 2 84; set tos 3 3 3 3 3"
|
||||||
|
set literal_transitions[24] "set inputs 58 111; set tos 22 22"
|
||||||
|
|
||||||
set --local match_anything_transitions_from 2 1 7 16 11 6 15 8 3 17 13 12
|
set match_anything_transitions_from 7 8 1 23 6 5 3 19 12 9 10 14 11 2
|
||||||
set --local match_anything_transitions_to 3 8 3 3 3 16 19 8 19 3 3 19
|
set match_anything_transitions_to 18 3 2 3 19 3 18 3 18 3 3 18 18 2
|
||||||
|
|
||||||
set --local state 1
|
set state 1
|
||||||
set --local word_index 2
|
set word_index 2
|
||||||
while test $word_index -lt $COMP_CWORD
|
while test $word_index -lt $COMP_CWORD
|
||||||
set --local -- word $COMP_WORDS[$word_index]
|
set -- word $COMP_WORDS[$word_index]
|
||||||
|
|
||||||
if set --query literal_transitions[$state] && test -n $literal_transitions[$state]
|
if set --query literal_transitions[$state] && test -n $literal_transitions[$state]
|
||||||
set --local --erase inputs
|
set --erase inputs
|
||||||
set --local --erase tos
|
set --erase tos
|
||||||
eval $literal_transitions[$state]
|
eval $literal_transitions[$state]
|
||||||
|
|
||||||
if contains -- $word $literals
|
if contains -- $word $literals
|
||||||
set --local literal_matched 0
|
set literal_matched 0
|
||||||
for literal_id in (seq 1 (count $literals))
|
for literal_id in (seq 1 (count $literals))
|
||||||
if test $literals[$literal_id] = $word
|
if test $literals[$literal_id] = $word
|
||||||
set --local index (contains --index -- $literal_id $inputs)
|
set index (contains --index -- $literal_id $inputs)
|
||||||
set state $tos[$index]
|
set state $tos[$index]
|
||||||
set word_index (math $word_index + 1)
|
set word_index (math $word_index + 1)
|
||||||
set literal_matched 1
|
set literal_matched 1
|
||||||
|
@ -181,7 +196,7 @@ function _hyprctl
|
||||||
end
|
end
|
||||||
|
|
||||||
if set --query match_anything_transitions_from[$state] && test -n $match_anything_transitions_from[$state]
|
if set --query match_anything_transitions_from[$state] && test -n $match_anything_transitions_from[$state]
|
||||||
set --local index (contains --index -- $state $match_anything_transitions_from)
|
set index (contains --index -- $state $match_anything_transitions_from)
|
||||||
set state $match_anything_transitions_to[$index]
|
set state $match_anything_transitions_to[$index]
|
||||||
set word_index (math $word_index + 1)
|
set word_index (math $word_index + 1)
|
||||||
continue
|
continue
|
||||||
|
@ -191,8 +206,8 @@ function _hyprctl
|
||||||
end
|
end
|
||||||
|
|
||||||
if set --query literal_transitions[$state] && test -n $literal_transitions[$state]
|
if set --query literal_transitions[$state] && test -n $literal_transitions[$state]
|
||||||
set --local --erase inputs
|
set --erase inputs
|
||||||
set --local --erase tos
|
set --erase tos
|
||||||
eval $literal_transitions[$state]
|
eval $literal_transitions[$state]
|
||||||
for literal_id in $inputs
|
for literal_id in $inputs
|
||||||
if test -n $descriptions[$literal_id]
|
if test -n $descriptions[$literal_id]
|
||||||
|
@ -203,14 +218,14 @@ function _hyprctl
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
set command_states 6 17 13 11
|
set command_states 8 23 9 6
|
||||||
set command_ids 2 3 4 1
|
set command_ids 1 2 4 3
|
||||||
if contains $state $command_states
|
if contains $state $command_states
|
||||||
set --local index (contains --index $state $command_states)
|
set index (contains --index $state $command_states)
|
||||||
set --local function_id $command_ids[$index]
|
set function_id $command_ids[$index]
|
||||||
set --local function_name _hyprctl_$function_id
|
set function_name _hyprctl_$function_id
|
||||||
set --local --erase inputs
|
set --erase inputs
|
||||||
set --local --erase tos
|
set --erase tos
|
||||||
$function_name "$COMP_WORDS[$COMP_CWORD]"
|
$function_name "$COMP_WORDS[$COMP_CWORD]"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,14 @@
|
||||||
# Repo: https://github.com/adaszko/complgen
|
# Repo: https://github.com/adaszko/complgen
|
||||||
# Generate completion scripts: "complgen aot --bash-script hyprctl.bash --fish-script hyprctl.fish --zsh-script hyprctl.zsh ./hyprctl.usage"
|
# Generate completion scripts: "complgen aot --bash-script hyprctl.bash --fish-script hyprctl.fish --zsh-script hyprctl.zsh ./hyprctl.usage"
|
||||||
|
|
||||||
hyprctl [<OPTIONS>]... <ARGUMENTS>
|
hyprctl [<OPTIONS>]... <ARGUMENTS>
|
||||||
|
|
||||||
<OPTIONS> ::= (-i | --instance) "Specify the Hyprland instance"
|
<OPTIONS> ::= (-i | --instance) "Specify the Hyprland instance"
|
||||||
| (-j) "Output in JSON format"
|
| (-j) "Output in JSON format"
|
||||||
| (-r) "Refresh state after issuing the command"
|
| (-r) "Refresh state after issuing the command"
|
||||||
| (--batch) "Execute a batch of commands separated by ;"
|
| (--batch) "Execute a batch of commands separated by ;"
|
||||||
| (-q | --quiet) "Disable output"
|
| (-q | --quiet) "Disable output"
|
||||||
|
| (-h | --help) "Prints the help message"
|
||||||
;
|
;
|
||||||
|
|
||||||
<WINDOWS> ::= {{{ hyprctl clients | awk '/class/{print $2}' }}};
|
<WINDOWS> ::= {{{ hyprctl clients | awk '/class/{print $2}' }}};
|
||||||
|
@ -59,16 +60,18 @@ hyprctl [<OPTIONS>]... <ARGUMENTS>
|
||||||
|
|
||||||
<ARGUMENTS> ::= (activewindow) "Get the active window name and its properties"
|
<ARGUMENTS> ::= (activewindow) "Get the active window name and its properties"
|
||||||
| (activeworkspace) "Get the active workspace name and its properties"
|
| (activeworkspace) "Get the active workspace name and its properties"
|
||||||
|
| (animations) "Gets the current config info about animations and beziers"
|
||||||
| (binds) "List all registered binds"
|
| (binds) "List all registered binds"
|
||||||
| (clients) "List all windows with their properties"
|
| (clients) "List all windows with their properties"
|
||||||
| (configerrors) "List all current config parsing errors"
|
| (configerrors) "List all current config parsing errors"
|
||||||
| (cursorpos) "Get the current cursor pos in global layout coordinates"
|
| (cursorpos) "Get the current cursor pos in global layout coordinates"
|
||||||
| (decorations <WINDOWS>) "List all decorations and their info"
|
| (decorations <WINDOWS>) "List all decorations and their info"
|
||||||
|
| (descriptions) "Return a parsable JSON with all the config options, descriptions, value types and ranges"
|
||||||
| (devices) "List all connected keyboards and mice"
|
| (devices) "List all connected keyboards and mice"
|
||||||
| (dismissnotify <NUM>) "Dismiss all or up to amount of notifications"
|
| (dismissnotify <NUM>) "Dismiss all or up to amount of notifications"
|
||||||
| (dispatch <DISPATCHERS>) "Issue a dispatch to call a keybind dispatcher with an arg"
|
| (dispatch <DISPATCHERS>) "Issue a dispatch to call a keybind dispatcher with an arg"
|
||||||
| (getoption) "Get the config option status (values)"
|
| (getoption) "Get the config option status (values)"
|
||||||
| (globalshortcuts) ""
|
| (globalshortcuts) "Lists all global shortcuts"
|
||||||
| (hyprpaper) "Interact with hyprpaper if present"
|
| (hyprpaper) "Interact with hyprpaper if present"
|
||||||
| (instances) "List all running Hyprland instances and their info"
|
| (instances) "List all running Hyprland instances and their info"
|
||||||
| (keyword <KEYWORDS>) "Issue a keyword to call a config keyword dynamically"
|
| (keyword <KEYWORDS>) "Issue a keyword to call a config keyword dynamically"
|
||||||
|
@ -79,8 +82,8 @@ hyprctl [<OPTIONS>]... <ARGUMENTS>
|
||||||
| (notify <NOTIFICATION_TYPES> <NUM>) "Send a notification using the built-in Hyprland notification system"
|
| (notify <NOTIFICATION_TYPES> <NUM>) "Send a notification using the built-in Hyprland notification system"
|
||||||
| (output (create (wayland | x11 | headless | auto) | remove <MONITORS>)) "Allows adding/removing fake outputs to a specific backend"
|
| (output (create (wayland | x11 | headless | auto) | remove <MONITORS>)) "Allows adding/removing fake outputs to a specific backend"
|
||||||
| (plugin <AVAILABLE_PLUGINS>) "Interact with a plugin"
|
| (plugin <AVAILABLE_PLUGINS>) "Interact with a plugin"
|
||||||
| (reload) "Force reload the config"
|
| (reload [config-only]) "Force reload the config"
|
||||||
| (rollinglog) "Print tail of the log"
|
| (rollinglog [-f]) "Print tail of the log"
|
||||||
| (setcursor) "Set the cursor theme and reloads the cursor manager"
|
| (setcursor) "Set the cursor theme and reloads the cursor manager"
|
||||||
| (seterror [disable]) "Set the hyprctl error string"
|
| (seterror [disable]) "Set the hyprctl error string"
|
||||||
| (setprop <PROPS>) "Set a property of a window"
|
| (setprop <PROPS>) "Set a property of a window"
|
||||||
|
@ -92,6 +95,13 @@ hyprctl [<OPTIONS>]... <ARGUMENTS>
|
||||||
| (workspaces) "List all workspaces with their properties"
|
| (workspaces) "List all workspaces with their properties"
|
||||||
;
|
;
|
||||||
|
|
||||||
|
<WINDOW_STATE> ::= (-1) "Current"
|
||||||
|
| (0) "None"
|
||||||
|
| (1) "Maximize no fullscreen"
|
||||||
|
| (2) "Fullscreen"
|
||||||
|
| (3) "Maximize and fullscreen"
|
||||||
|
;
|
||||||
|
|
||||||
<DISPATCHERS> ::= (exec) "Execute a shell command"
|
<DISPATCHERS> ::= (exec) "Execute a shell command"
|
||||||
| (execr) "Execute a raw shell command"
|
| (execr) "Execute a raw shell command"
|
||||||
| (pass) "Pass the key to a specified window"
|
| (pass) "Pass the key to a specified window"
|
||||||
|
@ -106,6 +116,7 @@ hyprctl [<OPTIONS>]... <ARGUMENTS>
|
||||||
| (settiled) "Set the current window's floating state to false"
|
| (settiled) "Set the current window's floating state to false"
|
||||||
| (fullscreen) "Toggle the focused window's fullscreen state"
|
| (fullscreen) "Toggle the focused window's fullscreen state"
|
||||||
| (fakefullscreen) "Toggle the focused window's internal fullscreen state"
|
| (fakefullscreen) "Toggle the focused window's internal fullscreen state"
|
||||||
|
| (fullscreenstate <WINDOW_STATE>) "Sets the focused window’s fullscreen mode and the one sent to the client"
|
||||||
| (dpms) "Set all monitors' DPMS status"
|
| (dpms) "Set all monitors' DPMS status"
|
||||||
| (pin) "Pin a window"
|
| (pin) "Pin a window"
|
||||||
| (movefocus) "Move the focus in a direction"
|
| (movefocus) "Move the focus in a direction"
|
||||||
|
@ -148,4 +159,5 @@ hyprctl [<OPTIONS>]... <ARGUMENTS>
|
||||||
| (setignoregrouplock) "Temporarily enable or disable binds:ignore_group_lock"
|
| (setignoregrouplock) "Temporarily enable or disable binds:ignore_group_lock"
|
||||||
| (global) "Execute a Global Shortcut using the GlobalShortcuts portal"
|
| (global) "Execute a Global Shortcut using the GlobalShortcuts portal"
|
||||||
| (submap) "Change the current mapping group"
|
| (submap) "Change the current mapping group"
|
||||||
|
| (event) "Emits a custom event to socket2"
|
||||||
;
|
;
|
||||||
|
|
|
@ -1,145 +1,160 @@
|
||||||
#compdef hyprctl
|
#compdef hyprctl
|
||||||
|
|
||||||
_hyprctl_cmd_2 () {
|
_hyprctl_cmd_1 () {
|
||||||
hyprctl monitors | awk '/Monitor/{ print $2 }'
|
hyprctl monitors | awk '/Monitor/{ print $2 }'
|
||||||
}
|
}
|
||||||
|
|
||||||
_hyprctl_cmd_3 () {
|
_hyprctl_cmd_3 () {
|
||||||
hyprpm list | awk '/Plugin/{ print $4 }'
|
hyprctl clients | awk '/class/{print $2}'
|
||||||
}
|
}
|
||||||
|
|
||||||
_hyprctl_cmd_0 () {
|
_hyprctl_cmd_2 () {
|
||||||
hyprctl clients | awk '/class/{ print $2 }'
|
|
||||||
}
|
|
||||||
|
|
||||||
_hyprctl_cmd_1 () {
|
|
||||||
hyprctl devices | sed -n '/Keyboard at/{n; s/^\s\+//; p}'
|
hyprctl devices | sed -n '/Keyboard at/{n; s/^\s\+//; p}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_hyprctl_cmd_0 () {
|
||||||
|
hyprpm list | awk '/Plugin/{print $4}'
|
||||||
|
}
|
||||||
|
|
||||||
_hyprctl () {
|
_hyprctl () {
|
||||||
local -a literals=("cyclenext" "globalshortcuts" "cursorpos" "bordersize" "renameworkspace" "animationstyle" "focuswindow" "0" "auto" "swapnext" "forceallowsinput" "moveactive" "activebordercolor" "alphafullscreen" "wayland" "layers" "minsize" "monitors" "1" "kill" "settiled" "3" "focusmonitor" "swapwindow" "moveoutofgroup" "notify" "movecursor" "setcursor" "seterror" "movecurrentworkspacetomonitor" "4" "nomaxsize" "forcenoanims" "setprop" "-i" "-q" "togglefloating" "workspacerules" "movetoworkspace" "disable" "setignoregrouplock" "workspaces" "movegroupwindow" "closewindow" "0" "--instance" "binds" "movewindow" "splitratio" "alpha" "denywindowfromgroup" "workspace" "configerrors" "togglegroup" "getoption" "forceopaque" "keepaspectratio" "killactive" "pass" "decorations" "devices" "focuscurrentorlast" "submap" "global" "alphafullscreenoverride" "forcerendererreload" "movewindowpixel" "headless" "version" "dpms" "resizeactive" "moveintogroup" "5" "alphaoverride" "setfloating" "rollinglog" "::=" "rounding" "layouts" "moveworkspacetomonitor" "exec" "alphainactiveoverride" "alterzorder" "fakefullscreen" "nofocus" "keyword" "forcenoborder" "forcenodim" "--quiet" "pin" "output" "forcenoblur" "togglespecialworkspace" "fullscreen" "toggleopaque" "focusworkspaceoncurrentmonitor" "next" "changegroupactive" "-j" "instances" "execr" "exit" "clients" "all" "--batch" "dismissnotify" "inactivebordercolor" "switchxkblayout" "movetoworkspacesilent" "tagwindow" "movewindoworgroup" "-r" "movefocus" "focusurgentorlast" "remove" "activeworkspace" "dispatch" "create" "centerwindow" "2" "hyprpaper" "-1" "reload" "alphainactive" "systeminfo" "plugin" "dimaround" "activewindow" "swapactiveworkspaces" "splash" "sendshortcut" "maxsize" "lockactivegroup" "windowdancecompat" "forceopaqueoverriden" "lockgroups" "movecursortocorner" "x11" "prev" "1" "resizewindowpixel" "forcenoshadow")
|
local -a literals=("resizeactive" "2" "changegroupactive" "-r" "moveintogroup" "forceallowsinput" "4" "::=" "systeminfo" "all" "layouts" "setprop" "animationstyle" "switchxkblayout" "create" "denywindowfromgroup" "headless" "activebordercolor" "exec" "setcursor" "wayland" "focusurgentorlast" "workspacerules" "movecurrentworkspacetomonitor" "movetoworkspacesilent" "hyprpaper" "alpha" "inactivebordercolor" "movegroupwindow" "movecursortocorner" "movewindowpixel" "prev" "movewindow" "globalshortcuts" "clients" "dimaround" "setignoregrouplock" "splash" "execr" "monitors" "0" "forcenoborder" "-q" "animations" "1" "nomaxsize" "splitratio" "moveactive" "pass" "swapnext" "devices" "layers" "rounding" "lockactivegroup" "5" "moveworkspacetomonitor" "-f" "-i" "--quiet" "forcenodim" "pin" "0" "1" "forceopaque" "forcenoshadow" "setfloating" "minsize" "alphaoverride" "sendshortcut" "workspaces" "cyclenext" "alterzorder" "togglegroup" "lockgroups" "bordersize" "dpms" "focuscurrentorlast" "-1" "--batch" "notify" "remove" "instances" "1" "3" "moveoutofgroup" "killactive" "2" "movetoworkspace" "movecursor" "configerrors" "closewindow" "swapwindow" "tagwindow" "forcerendererreload" "centerwindow" "auto" "focuswindow" "seterror" "nofocus" "alphafullscreen" "binds" "version" "-h" "togglespecialworkspace" "fullscreen" "windowdancecompat" "0" "keyword" "toggleopaque" "3" "--instance" "togglefloating" "renameworkspace" "alphafullscreenoverride" "activeworkspace" "x11" "kill" "forceopaqueoverriden" "output" "global" "dispatch" "reload" "forcenoblur" "-j" "event" "--help" "disable" "-1" "activewindow" "keepaspectratio" "dismissnotify" "focusmonitor" "movefocus" "plugin" "exit" "workspace" "fullscreenstate" "getoption" "alphainactiveoverride" "alphainactive" "decorations" "settiled" "config-only" "descriptions" "resizewindowpixel" "fakefullscreen" "rollinglog" "swapactiveworkspaces" "submap" "next" "movewindoworgroup" "cursorpos" "forcenoanims" "focusworkspaceoncurrentmonitor" "maxsize")
|
||||||
|
|
||||||
local -A descriptions
|
local -A descriptions
|
||||||
descriptions[1]="Focus the next window on a workspace"
|
descriptions[1]="Resize the active window"
|
||||||
descriptions[3]="Get the current cursor pos in global layout coordinates"
|
descriptions[2]="Fullscreen"
|
||||||
descriptions[5]="Rename a workspace"
|
descriptions[3]="Switch to the next window in a group"
|
||||||
descriptions[7]="Focus the first window matching"
|
descriptions[4]="Refresh state after issuing the command"
|
||||||
descriptions[10]="Swap the focused window with the next window"
|
descriptions[5]="Move the active window into a group"
|
||||||
descriptions[12]="Move the active window"
|
descriptions[7]="CONFUSED"
|
||||||
descriptions[16]="List the layers"
|
descriptions[9]="Print system info"
|
||||||
descriptions[18]="List active outputs with their properties"
|
descriptions[11]="List all layouts available (including plugin ones)"
|
||||||
descriptions[20]="Get into a kill mode, where you can kill an app by clicking on it"
|
descriptions[12]="Set a property of a window"
|
||||||
descriptions[21]="Set the current window's floating state to false"
|
descriptions[14]="Set the xkb layout index for a keyboard"
|
||||||
descriptions[22]="ERROR"
|
descriptions[16]="Prohibit the active window from becoming or being inserted into group"
|
||||||
descriptions[23]="Focus a monitor"
|
descriptions[19]="Execute a shell command"
|
||||||
descriptions[24]="Swap the active window with another window"
|
descriptions[20]="Set the cursor theme and reloads the cursor manager"
|
||||||
descriptions[25]="Move the active window out of a group"
|
descriptions[22]="Focus the urgent window or the last window"
|
||||||
descriptions[26]="Send a notification using the built-in Hyprland notification system"
|
descriptions[23]="Get the list of defined workspace rules"
|
||||||
descriptions[27]="Move the cursor to a specified position"
|
descriptions[24]="Move the active workspace to a monitor"
|
||||||
descriptions[28]="Set the cursor theme and reloads the cursor manager"
|
descriptions[25]="Move window doesnt switch to the workspace"
|
||||||
descriptions[29]="Set the hyprctl error string"
|
descriptions[26]="Interact with hyprpaper if present"
|
||||||
descriptions[30]="Move the active workspace to a monitor"
|
descriptions[29]="Swap the active window with the next or previous in a group"
|
||||||
descriptions[31]="CONFUSED"
|
descriptions[30]="Move the cursor to the corner of the active window"
|
||||||
descriptions[34]="Set a property of a window"
|
descriptions[31]="Move a selected window"
|
||||||
descriptions[35]="Specify the Hyprland instance"
|
descriptions[33]="Move the active window in a direction or to a monitor"
|
||||||
descriptions[36]="Disable output"
|
descriptions[34]="Lists all global shortcuts"
|
||||||
descriptions[37]="Toggle the current window's floating state"
|
descriptions[35]="List all windows with their properties"
|
||||||
descriptions[38]="Get the list of defined workspace rules"
|
descriptions[37]="Temporarily enable or disable binds:ignore_group_lock"
|
||||||
descriptions[39]="Move the focused window to a workspace"
|
descriptions[38]="Print the current random splash"
|
||||||
descriptions[41]="Temporarily enable or disable binds:ignore_group_lock"
|
descriptions[39]="Execute a raw shell command"
|
||||||
descriptions[42]="List all workspaces with their properties"
|
descriptions[40]="List active outputs with their properties"
|
||||||
descriptions[43]="Swap the active window with the next or previous in a group"
|
descriptions[43]="Disable output"
|
||||||
descriptions[44]="Close a specified window"
|
descriptions[44]="Gets the current config info about animations and beziers"
|
||||||
descriptions[45]="WARNING"
|
descriptions[47]="Change the split ratio"
|
||||||
descriptions[46]="Specify the Hyprland instance"
|
descriptions[48]="Move the active window"
|
||||||
descriptions[47]="List all registered binds"
|
descriptions[49]="Pass the key to a specified window"
|
||||||
descriptions[48]="Move the active window in a direction or to a monitor"
|
descriptions[50]="Swap the focused window with the next window"
|
||||||
descriptions[49]="Change the split ratio"
|
descriptions[51]="List all connected keyboards and mice"
|
||||||
descriptions[51]="Prohibit the active window from becoming or being inserted into group"
|
descriptions[52]="List the layers"
|
||||||
descriptions[52]="Change the workspace"
|
descriptions[54]="Lock the focused group"
|
||||||
descriptions[53]="List all current config parsing errors"
|
descriptions[55]="OK"
|
||||||
descriptions[54]="Toggle the current active window into a group"
|
descriptions[56]="Move a workspace to a monitor"
|
||||||
descriptions[55]="Get the config option status (values)"
|
descriptions[58]="Specify the Hyprland instance"
|
||||||
descriptions[58]="Close the active window"
|
descriptions[59]="Disable output"
|
||||||
descriptions[59]="Pass the key to a specified window"
|
descriptions[61]="Pin a window"
|
||||||
descriptions[60]="List all decorations and their info"
|
descriptions[62]="WARNING"
|
||||||
descriptions[61]="List all connected keyboards and mice"
|
descriptions[63]="INFO"
|
||||||
descriptions[62]="Switch focus from current to previously focused window"
|
descriptions[66]="Set the current window's floating state to true"
|
||||||
descriptions[63]="Change the current mapping group"
|
descriptions[69]="On shortcut X sends shortcut Y to a specified window"
|
||||||
descriptions[64]="Execute a Global Shortcut using the GlobalShortcuts portal"
|
descriptions[70]="List all workspaces with their properties"
|
||||||
descriptions[66]="Force the renderer to reload all resources and outputs"
|
descriptions[71]="Focus the next window on a workspace"
|
||||||
descriptions[67]="Move a selected window"
|
descriptions[72]="Modify the window stack order of the active or specified window"
|
||||||
descriptions[69]="Print the Hyprland version: flags, commit and branch of build"
|
descriptions[73]="Toggle the current active window into a group"
|
||||||
descriptions[70]="Set all monitors' DPMS status"
|
descriptions[74]="Lock the groups"
|
||||||
descriptions[71]="Resize the active window"
|
descriptions[76]="Set all monitors' DPMS status"
|
||||||
descriptions[72]="Move the active window into a group"
|
descriptions[77]="Switch focus from current to previously focused window"
|
||||||
descriptions[73]="OK"
|
descriptions[78]="No Icon"
|
||||||
descriptions[75]="Set the current window's floating state to true"
|
descriptions[79]="Execute a batch of commands separated by ;"
|
||||||
descriptions[76]="Print tail of the log"
|
descriptions[80]="Send a notification using the built-in Hyprland notification system"
|
||||||
descriptions[79]="List all layouts available (including plugin ones)"
|
descriptions[82]="List all running Hyprland instances and their info"
|
||||||
descriptions[80]="Move a workspace to a monitor"
|
descriptions[83]="Maximize no fullscreen"
|
||||||
descriptions[81]="Execute a shell command"
|
descriptions[84]="Maximize and fullscreen"
|
||||||
descriptions[83]="Modify the window stack order of the active or specified window"
|
descriptions[85]="Move the active window out of a group"
|
||||||
descriptions[84]="Toggle the focused window's internal fullscreen state"
|
descriptions[86]="Close the active window"
|
||||||
descriptions[86]="Issue a keyword to call a config keyword dynamically"
|
descriptions[87]="HINT"
|
||||||
descriptions[89]="Disable output"
|
descriptions[88]="Move the focused window to a workspace"
|
||||||
descriptions[90]="Pin a window"
|
descriptions[89]="Move the cursor to a specified position"
|
||||||
descriptions[91]="Allows adding/removing fake outputs to a specific backend"
|
descriptions[90]="List all current config parsing errors"
|
||||||
descriptions[93]="Toggle a special workspace on/off"
|
descriptions[91]="Close a specified window"
|
||||||
descriptions[94]="Toggle the focused window's fullscreen state"
|
descriptions[92]="Swap the active window with another window"
|
||||||
descriptions[95]="Toggle the current window to always be opaque"
|
descriptions[93]="Apply a tag to the window"
|
||||||
descriptions[96]="Focus the requested workspace"
|
descriptions[94]="Force the renderer to reload all resources and outputs"
|
||||||
descriptions[98]="Switch to the next window in a group"
|
descriptions[95]="Center the active window"
|
||||||
descriptions[99]="Output in JSON format"
|
descriptions[97]="Focus the first window matching"
|
||||||
descriptions[100]="List all running Hyprland instances and their info"
|
descriptions[98]="Set the hyprctl error string"
|
||||||
descriptions[101]="Execute a raw shell command"
|
descriptions[101]="List all registered binds"
|
||||||
descriptions[102]="Exit the compositor with no questions asked"
|
descriptions[102]="Print the Hyprland version: flags, commit and branch of build"
|
||||||
descriptions[103]="List all windows with their properties"
|
descriptions[103]="Prints the help message"
|
||||||
descriptions[105]="Execute a batch of commands separated by ;"
|
descriptions[104]="Toggle a special workspace on/off"
|
||||||
descriptions[106]="Dismiss all or up to amount of notifications"
|
descriptions[105]="Toggle the focused window's fullscreen state"
|
||||||
descriptions[108]="Set the xkb layout index for a keyboard"
|
descriptions[107]="None"
|
||||||
descriptions[109]="Move window doesnt switch to the workspace"
|
descriptions[108]="Issue a keyword to call a config keyword dynamically"
|
||||||
descriptions[110]="Apply a tag to the window"
|
descriptions[109]="Toggle the current window to always be opaque"
|
||||||
descriptions[111]="Behave as moveintogroup"
|
descriptions[110]="ERROR"
|
||||||
descriptions[112]="Refresh state after issuing the command"
|
descriptions[111]="Specify the Hyprland instance"
|
||||||
descriptions[113]="Move the focus in a direction"
|
descriptions[112]="Toggle the current window's floating state"
|
||||||
descriptions[114]="Focus the urgent window or the last window"
|
descriptions[113]="Rename a workspace"
|
||||||
descriptions[116]="Get the active workspace name and its properties"
|
descriptions[115]="Get the active workspace name and its properties"
|
||||||
descriptions[117]="Issue a dispatch to call a keybind dispatcher with an arg"
|
descriptions[117]="Get into a kill mode, where you can kill an app by clicking on it"
|
||||||
descriptions[119]="Center the active window"
|
descriptions[119]="Allows adding/removing fake outputs to a specific backend"
|
||||||
descriptions[120]="HINT"
|
descriptions[120]="Execute a Global Shortcut using the GlobalShortcuts portal"
|
||||||
descriptions[121]="Interact with hyprpaper if present"
|
descriptions[121]="Issue a dispatch to call a keybind dispatcher with an arg"
|
||||||
descriptions[122]="No Icon"
|
descriptions[122]="Force reload the config"
|
||||||
descriptions[123]="Force reload the config"
|
descriptions[124]="Output in JSON format"
|
||||||
descriptions[125]="Print system info"
|
descriptions[125]="Emits a custom event to socket2"
|
||||||
descriptions[126]="Interact with a plugin"
|
descriptions[126]="Prints the help message"
|
||||||
descriptions[128]="Get the active window name and its properties"
|
descriptions[128]="Current"
|
||||||
descriptions[129]="Swap the active workspaces between two monitors"
|
descriptions[129]="Get the active window name and its properties"
|
||||||
descriptions[130]="Print the current random splash"
|
descriptions[131]="Dismiss all or up to amount of notifications"
|
||||||
descriptions[131]="On shortcut X sends shortcut Y to a specified window"
|
descriptions[132]="Focus a monitor"
|
||||||
descriptions[133]="Lock the focused group"
|
descriptions[133]="Move the focus in a direction"
|
||||||
descriptions[136]="Lock the groups"
|
descriptions[134]="Interact with a plugin"
|
||||||
descriptions[137]="Move the cursor to the corner of the active window"
|
descriptions[135]="Exit the compositor with no questions asked"
|
||||||
descriptions[140]="INFO"
|
descriptions[136]="Change the workspace"
|
||||||
descriptions[141]="Resize a selected window"
|
descriptions[137]="Sets the focused window’s fullscreen mode and the one sent to the client"
|
||||||
|
descriptions[138]="Get the config option status (values)"
|
||||||
|
descriptions[141]="List all decorations and their info"
|
||||||
|
descriptions[142]="Set the current window's floating state to false"
|
||||||
|
descriptions[144]="Return a parsable JSON with all the config options, descriptions, value types and ranges"
|
||||||
|
descriptions[145]="Resize a selected window"
|
||||||
|
descriptions[146]="Toggle the focused window's internal fullscreen state"
|
||||||
|
descriptions[147]="Print tail of the log"
|
||||||
|
descriptions[148]="Swap the active workspaces between two monitors"
|
||||||
|
descriptions[149]="Change the current mapping group"
|
||||||
|
descriptions[151]="Behave as moveintogroup"
|
||||||
|
descriptions[152]="Get the current cursor pos in global layout coordinates"
|
||||||
|
descriptions[154]="Focus the requested workspace"
|
||||||
|
|
||||||
local -A literal_transitions
|
local -A literal_transitions
|
||||||
literal_transitions[1]="([106]=2 [76]=3 [34]=4 [36]=5 [2]=3 [3]=3 [79]=3 [108]=6 [38]=3 [112]=5 [42]=3 [47]=3 [116]=3 [86]=7 [117]=9 [53]=3 [89]=5 [55]=3 [91]=10 [121]=3 [123]=3 [125]=3 [16]=3 [60]=11 [61]=3 [18]=12 [126]=13 [20]=3 [128]=3 [130]=3 [26]=14 [69]=3 [99]=5 [100]=3 [28]=3 [29]=15 [103]=3 [105]=5)"
|
literal_transitions[1]="([121]=15 [44]=3 [126]=22 [82]=3 [4]=22 [52]=3 [51]=3 [129]=3 [90]=3 [59]=22 [9]=3 [11]=3 [12]=4 [131]=5 [14]=6 [98]=7 [102]=3 [103]=22 [134]=8 [101]=3 [138]=3 [23]=3 [20]=3 [141]=9 [26]=3 [144]=3 [108]=10 [147]=11 [70]=3 [34]=3 [35]=3 [79]=22 [115]=3 [38]=3 [152]=3 [117]=3 [122]=14 [124]=22 [40]=12 [43]=22 [80]=16 [119]=13)"
|
||||||
literal_transitions[4]="([74]=18 [14]=3 [33]=18 [56]=18 [57]=18 [92]=18 [107]=3 [124]=3 [78]=2 [17]=3 [127]=18 [4]=2 [6]=3 [65]=18 [132]=3 [134]=18 [82]=18 [135]=18 [85]=18 [32]=18 [50]=3 [13]=3 [87]=18 [11]=18 [88]=18 [142]=18)"
|
literal_transitions[2]="([82]=3 [52]=3 [51]=3 [129]=3 [9]=3 [90]=3 [11]=3 [12]=4 [131]=5 [14]=6 [98]=7 [102]=3 [134]=8 [101]=3 [23]=3 [20]=3 [138]=3 [141]=9 [26]=3 [144]=3 [108]=10 [147]=11 [70]=3 [34]=3 [35]=3 [115]=3 [38]=3 [152]=3 [117]=3 [40]=12 [119]=13 [122]=14 [121]=15 [80]=16 [44]=3)"
|
||||||
literal_transitions[8]="([106]=2 [76]=3 [34]=4 [2]=3 [3]=3 [79]=3 [108]=6 [38]=3 [42]=3 [47]=3 [116]=3 [86]=7 [117]=9 [53]=3 [55]=3 [91]=10 [121]=3 [123]=3 [125]=3 [16]=3 [60]=11 [61]=3 [18]=12 [126]=13 [20]=3 [128]=3 [130]=3 [26]=14 [69]=3 [100]=3 [28]=3 [29]=15 [103]=3)"
|
literal_transitions[4]="([140]=3 [64]=17 [65]=17 [46]=17 [106]=17 [28]=3 [27]=3 [53]=5 [6]=17 [67]=3 [68]=17 [130]=17 [114]=17 [13]=3 [75]=5 [100]=3 [36]=17 [153]=17 [99]=17 [60]=17 [118]=17 [42]=17 [18]=3 [139]=17 [155]=3 [123]=17)"
|
||||||
literal_transitions[9]="([102]=3 [131]=3 [133]=3 [1]=3 [75]=3 [37]=3 [109]=3 [110]=3 [39]=3 [111]=3 [5]=3 [80]=3 [41]=3 [81]=3 [114]=3 [7]=3 [43]=3 [44]=3 [83]=3 [84]=3 [48]=3 [49]=3 [10]=3 [51]=3 [52]=3 [54]=3 [12]=3 [113]=3 [90]=3 [119]=3 [58]=3 [93]=3 [59]=3 [94]=3 [95]=3 [62]=3 [63]=3 [129]=3 [96]=3 [64]=3 [21]=3 [98]=3 [23]=3 [24]=3 [66]=3 [67]=3 [136]=3 [137]=3 [25]=3 [27]=3 [70]=3 [101]=3 [71]=3 [141]=3 [30]=3 [72]=3)"
|
literal_transitions[7]="([127]=3)"
|
||||||
literal_transitions[10]="([118]=21 [115]=17)"
|
literal_transitions[11]="([57]=3)"
|
||||||
literal_transitions[12]="([104]=3)"
|
literal_transitions[12]="([10]=3)"
|
||||||
literal_transitions[14]="([22]=2 [120]=2 [31]=2 [140]=2 [122]=2 [45]=2 [73]=2)"
|
literal_transitions[13]="([15]=20 [81]=23)"
|
||||||
literal_transitions[15]="([40]=3)"
|
literal_transitions[14]="([143]=3)"
|
||||||
literal_transitions[16]="([139]=3 [97]=3)"
|
literal_transitions[15]="([1]=3 [85]=3 [3]=3 [86]=3 [5]=3 [88]=3 [89]=3 [91]=3 [92]=3 [93]=3 [94]=3 [95]=3 [97]=3 [16]=3 [19]=3 [104]=3 [22]=3 [105]=3 [24]=3 [25]=3 [29]=3 [30]=3 [31]=3 [109]=3 [112]=3 [33]=3 [113]=3 [37]=3 [39]=3 [120]=3 [125]=3 [47]=3 [48]=3 [49]=3 [50]=3 [54]=3 [56]=3 [132]=3 [133]=3 [135]=3 [136]=3 [61]=3 [137]=21 [142]=3 [66]=3 [145]=3 [146]=3 [69]=3 [148]=3 [71]=3 [72]=3 [73]=3 [74]=3 [149]=3 [76]=3 [77]=3 [151]=3 [154]=3)"
|
||||||
literal_transitions[18]="([19]=3 [8]=3)"
|
literal_transitions[16]="([87]=5 [7]=5 [110]=5 [62]=5 [78]=5 [55]=5 [63]=5)"
|
||||||
literal_transitions[19]="([77]=20)"
|
literal_transitions[17]="([41]=3 [45]=3)"
|
||||||
literal_transitions[20]="([35]=5 [46]=5)"
|
literal_transitions[18]="([8]=24)"
|
||||||
literal_transitions[21]="([9]=3 [68]=3 [15]=3 [138]=3)"
|
literal_transitions[19]="([32]=3 [150]=3)"
|
||||||
|
literal_transitions[20]="([96]=3 [17]=3 [116]=3 [21]=3)"
|
||||||
|
literal_transitions[21]="([107]=3 [83]=3 [128]=3 [2]=3 [84]=3)"
|
||||||
|
literal_transitions[24]="([58]=22 [111]=22)"
|
||||||
|
|
||||||
local -A match_anything_transitions
|
local -A match_anything_transitions
|
||||||
match_anything_transitions=([2]=3 [1]=8 [7]=3 [16]=3 [11]=3 [6]=16 [15]=19 [8]=8 [3]=19 [17]=3 [13]=3 [12]=19)
|
match_anything_transitions=([7]=18 [8]=3 [1]=2 [23]=3 [6]=19 [5]=3 [3]=18 [19]=3 [12]=18 [9]=3 [10]=3 [14]=18 [11]=18 [2]=2)
|
||||||
|
|
||||||
declare -A subword_transitions
|
declare -A subword_transitions
|
||||||
|
|
||||||
|
@ -199,7 +214,7 @@ _hyprctl () {
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
local -A commands=([6]=1 [17]=2 [13]=3 [11]=0)
|
local -A commands=([8]=0 [23]=1 [9]=3 [6]=2)
|
||||||
|
|
||||||
if [[ -v "commands[$state]" ]]; then
|
if [[ -v "commands[$state]" ]]; then
|
||||||
local command_id=${commands[$state]}
|
local command_id=${commands[$state]}
|
||||||
|
@ -252,4 +267,8 @@ _hyprctl () {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
compdef _hyprctl hyprctl
|
if [[ $ZSH_EVAL_CONTEXT =~ :file$ ]]; then
|
||||||
|
compdef _hyprctl hyprctl
|
||||||
|
else
|
||||||
|
_hyprctl
|
||||||
|
fi
|
||||||
|
|
|
@ -2,6 +2,10 @@ _hyprpm_cmd_0 () {
|
||||||
hyprpm list | awk '/Plugin/{print $4}'
|
hyprpm list | awk '/Plugin/{print $4}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_hyprpm_cmd_1 () {
|
||||||
|
hyprpm list | awk '/Repository/{print $4}' | sed 's/:$//'
|
||||||
|
}
|
||||||
|
|
||||||
_hyprpm () {
|
_hyprpm () {
|
||||||
if [[ $(type -t _get_comp_words_by_ref) != function ]]; then
|
if [[ $(type -t _get_comp_words_by_ref) != function ]]; then
|
||||||
echo _get_comp_words_by_ref: function not defined. Make sure the bash-completions system package is installed
|
echo _get_comp_words_by_ref: function not defined. Make sure the bash-completions system package is installed
|
||||||
|
@ -11,16 +15,13 @@ _hyprpm () {
|
||||||
local words cword
|
local words cword
|
||||||
_get_comp_words_by_ref -n "$COMP_WORDBREAKS" words cword
|
_get_comp_words_by_ref -n "$COMP_WORDBREAKS" words cword
|
||||||
|
|
||||||
local -a literals=("-n" "::=" "list" "disable" "--help" "update" "add" "--verbose" "-v" "--force" "remove" "enable" "--notify" "-h" "reload" "-f")
|
declare -a literals=(--no-shallow -n ::= disable list --help update add --verbose -v --force -s remove enable --notify -h reload -f)
|
||||||
|
|
||||||
declare -A literal_transitions
|
declare -A literal_transitions
|
||||||
literal_transitions[0]="([9]=6 [2]=2 [7]=6 [8]=6 [4]=6 [10]=2 [11]=3 [5]=2 [13]=6 [3]=3 [14]=2 [15]=6 [6]=2)"
|
literal_transitions[0]="([0]=7 [3]=3 [4]=4 [8]=7 [9]=7 [6]=4 [7]=4 [11]=7 [5]=7 [10]=7 [12]=2 [13]=3 [15]=7 [16]=4 [17]=7)"
|
||||||
literal_transitions[1]="([10]=2 [11]=3 [3]=3 [2]=2 [14]=2 [5]=2 [6]=2)"
|
literal_transitions[1]="([12]=2 [13]=3 [3]=3 [4]=4 [16]=4 [6]=4 [7]=4)"
|
||||||
literal_transitions[4]="([1]=5)"
|
literal_transitions[5]="([2]=6)"
|
||||||
literal_transitions[5]="([0]=6 [12]=6)"
|
literal_transitions[6]="([1]=7 [14]=7)"
|
||||||
|
declare -A match_anything_transitions=([1]=1 [4]=5 [3]=4 [2]=4 [0]=1)
|
||||||
declare -A match_anything_transitions
|
|
||||||
match_anything_transitions=([3]=2 [2]=4 [0]=1 [1]=1)
|
|
||||||
declare -A subword_transitions
|
declare -A subword_transitions
|
||||||
|
|
||||||
local state=0
|
local state=0
|
||||||
|
@ -58,21 +59,9 @@ _hyprpm () {
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
local -a matches=()
|
||||||
|
|
||||||
local prefix="${words[$cword]}"
|
local prefix="${words[$cword]}"
|
||||||
|
|
||||||
local shortest_suffix="$word"
|
|
||||||
for ((i=0; i < ${#COMP_WORDBREAKS}; i++)); do
|
|
||||||
local char="${COMP_WORDBREAKS:$i:1}"
|
|
||||||
local candidate="${word##*$char}"
|
|
||||||
if [[ ${#candidate} -lt ${#shortest_suffix} ]]; then
|
|
||||||
shortest_suffix=$candidate
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
local superfluous_prefix=""
|
|
||||||
if [[ "$shortest_suffix" != "$word" ]]; then
|
|
||||||
local superfluous_prefix=${word%$shortest_suffix}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -v "literal_transitions[$state]" ]]; then
|
if [[ -v "literal_transitions[$state]" ]]; then
|
||||||
local state_transitions_initializer=${literal_transitions[$state]}
|
local state_transitions_initializer=${literal_transitions[$state]}
|
||||||
declare -A state_transitions
|
declare -A state_transitions
|
||||||
|
@ -81,25 +70,38 @@ _hyprpm () {
|
||||||
for literal_id in "${!state_transitions[@]}"; do
|
for literal_id in "${!state_transitions[@]}"; do
|
||||||
local literal="${literals[$literal_id]}"
|
local literal="${literals[$literal_id]}"
|
||||||
if [[ $literal = "${prefix}"* ]]; then
|
if [[ $literal = "${prefix}"* ]]; then
|
||||||
local completion=${literal#"$superfluous_prefix"}
|
matches+=("$literal ")
|
||||||
COMPREPLY+=("$completion ")
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
declare -A commands
|
declare -A commands
|
||||||
commands=([3]=0)
|
commands=([3]=0 [2]=1)
|
||||||
if [[ -v "commands[$state]" ]]; then
|
if [[ -v "commands[$state]" ]]; then
|
||||||
local command_id=${commands[$state]}
|
local command_id=${commands[$state]}
|
||||||
local completions=()
|
local completions=()
|
||||||
mapfile -t completions < <(_hyprpm_cmd_${command_id} "$prefix" | cut -f1)
|
readarray -t completions < <(_hyprpm_cmd_${command_id} "$prefix" | cut -f1)
|
||||||
for item in "${completions[@]}"; do
|
for item in "${completions[@]}"; do
|
||||||
if [[ $item = "${prefix}"* ]]; then
|
if [[ $item = "${prefix}"* ]]; then
|
||||||
COMPREPLY+=("$item")
|
matches+=("$item")
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
local shortest_suffix="$prefix"
|
||||||
|
for ((i=0; i < ${#COMP_WORDBREAKS}; i++)); do
|
||||||
|
local char="${COMP_WORDBREAKS:$i:1}"
|
||||||
|
local candidate=${prefix##*$char}
|
||||||
|
if [[ ${#candidate} -lt ${#shortest_suffix} ]]; then
|
||||||
|
shortest_suffix=$candidate
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
local superfluous_prefix=""
|
||||||
|
if [[ "$shortest_suffix" != "$prefix" ]]; then
|
||||||
|
local superfluous_prefix=${prefix%$shortest_suffix}
|
||||||
|
fi
|
||||||
|
COMPREPLY=("${matches[@]#$superfluous_prefix}")
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,11 @@ function _hyprpm_1
|
||||||
hyprpm list | awk '/Plugin/{print $4}'
|
hyprpm list | awk '/Plugin/{print $4}'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function _hyprpm_2
|
||||||
|
set 1 $argv[1]
|
||||||
|
hyprpm list | awk '/Repository/{print $4}' | sed 's/:$//'
|
||||||
|
end
|
||||||
|
|
||||||
function _hyprpm
|
function _hyprpm
|
||||||
set COMP_LINE (commandline --cut-at-cursor)
|
set COMP_LINE (commandline --cut-at-cursor)
|
||||||
|
|
||||||
|
@ -14,49 +19,51 @@ function _hyprpm
|
||||||
set COMP_CWORD (count $COMP_WORDS)
|
set COMP_CWORD (count $COMP_WORDS)
|
||||||
end
|
end
|
||||||
|
|
||||||
set --local literals "-n" "::=" "list" "disable" "--help" "update" "add" "--verbose" "-v" "--force" "remove" "enable" "--notify" "-h" "reload" "-f"
|
set literals "--no-shallow" "-n" "::=" "disable" "list" "--help" "update" "add" "--verbose" "-v" "--force" "-s" "remove" "enable" "--notify" "-h" "reload" "-f"
|
||||||
|
|
||||||
set --local descriptions
|
set descriptions
|
||||||
set descriptions[1] "Send a hyprland notification for important events (e.g. load fail)"
|
set descriptions[1] "Disable shallow cloning of Hyprland sources"
|
||||||
set descriptions[3] "List all installed plugins"
|
set descriptions[2] "Send a hyprland notification for important events (e.g. load fail)"
|
||||||
set descriptions[4] "Unload a plugin"
|
set descriptions[4] "Unload a plugin"
|
||||||
set descriptions[5] "Show help menu"
|
set descriptions[5] "List all installed plugins"
|
||||||
set descriptions[6] "Check and update all plugins if needed"
|
set descriptions[6] "Show help menu"
|
||||||
set descriptions[7] "Install a new plugin repository from git"
|
set descriptions[7] "Check and update all plugins if needed"
|
||||||
set descriptions[8] "Enable too much loggin"
|
set descriptions[8] "Install a new plugin repository from git"
|
||||||
set descriptions[9] "Enable too much loggin"
|
set descriptions[9] "Enable too much loggin"
|
||||||
set descriptions[10] "Force an operation ignoring checks (e.g. update -f)"
|
set descriptions[10] "Enable too much loggin"
|
||||||
set descriptions[11] "Remove a plugin repository"
|
set descriptions[11] "Force an operation ignoring checks (e.g. update -f)"
|
||||||
set descriptions[12] "Load a plugin"
|
set descriptions[12] "Disable shallow cloning of Hyprland sources"
|
||||||
set descriptions[13] "Send a hyprland notification for important events (e.g. load fail)"
|
set descriptions[13] "Remove a plugin repository"
|
||||||
set descriptions[14] "Show help menu"
|
set descriptions[14] "Load a plugin"
|
||||||
set descriptions[15] "Reload all plugins"
|
set descriptions[15] "Send a hyprland notification for important events (e.g. load fail)"
|
||||||
set descriptions[16] "Force an operation ignoring checks (e.g. update -f)"
|
set descriptions[16] "Show help menu"
|
||||||
|
set descriptions[17] "Reload all plugins"
|
||||||
|
set descriptions[18] "Force an operation ignoring checks (e.g. update -f)"
|
||||||
|
|
||||||
set --local literal_transitions
|
set literal_transitions
|
||||||
set literal_transitions[1] "set inputs 10 3 8 9 5 11 12 6 14 4 15 16 7; set tos 7 3 7 7 7 3 4 3 7 4 3 7 3"
|
set literal_transitions[1] "set inputs 1 4 5 9 10 7 8 12 6 11 13 14 16 17 18; set tos 8 4 5 8 8 5 5 8 8 8 3 4 8 5 8"
|
||||||
set literal_transitions[2] "set inputs 11 12 4 3 15 6 7; set tos 3 4 4 3 3 3 3"
|
set literal_transitions[2] "set inputs 13 14 4 5 17 7 8; set tos 3 4 4 5 5 5 5"
|
||||||
set literal_transitions[5] "set inputs 2; set tos 6"
|
set literal_transitions[6] "set inputs 3; set tos 7"
|
||||||
set literal_transitions[6] "set inputs 1 13; set tos 7 7"
|
set literal_transitions[7] "set inputs 2 15; set tos 8 8"
|
||||||
|
|
||||||
set --local match_anything_transitions_from 4 3 1 2
|
set match_anything_transitions_from 2 5 4 3 1
|
||||||
set --local match_anything_transitions_to 3 5 2 2
|
set match_anything_transitions_to 2 6 5 5 2
|
||||||
|
|
||||||
set --local state 1
|
set state 1
|
||||||
set --local word_index 2
|
set word_index 2
|
||||||
while test $word_index -lt $COMP_CWORD
|
while test $word_index -lt $COMP_CWORD
|
||||||
set --local -- word $COMP_WORDS[$word_index]
|
set -- word $COMP_WORDS[$word_index]
|
||||||
|
|
||||||
if set --query literal_transitions[$state] && test -n $literal_transitions[$state]
|
if set --query literal_transitions[$state] && test -n $literal_transitions[$state]
|
||||||
set --local --erase inputs
|
set --erase inputs
|
||||||
set --local --erase tos
|
set --erase tos
|
||||||
eval $literal_transitions[$state]
|
eval $literal_transitions[$state]
|
||||||
|
|
||||||
if contains -- $word $literals
|
if contains -- $word $literals
|
||||||
set --local literal_matched 0
|
set literal_matched 0
|
||||||
for literal_id in (seq 1 (count $literals))
|
for literal_id in (seq 1 (count $literals))
|
||||||
if test $literals[$literal_id] = $word
|
if test $literals[$literal_id] = $word
|
||||||
set --local index (contains --index -- $literal_id $inputs)
|
set index (contains --index -- $literal_id $inputs)
|
||||||
set state $tos[$index]
|
set state $tos[$index]
|
||||||
set word_index (math $word_index + 1)
|
set word_index (math $word_index + 1)
|
||||||
set literal_matched 1
|
set literal_matched 1
|
||||||
|
@ -70,7 +77,7 @@ function _hyprpm
|
||||||
end
|
end
|
||||||
|
|
||||||
if set --query match_anything_transitions_from[$state] && test -n $match_anything_transitions_from[$state]
|
if set --query match_anything_transitions_from[$state] && test -n $match_anything_transitions_from[$state]
|
||||||
set --local index (contains --index -- $state $match_anything_transitions_from)
|
set index (contains --index -- $state $match_anything_transitions_from)
|
||||||
set state $match_anything_transitions_to[$index]
|
set state $match_anything_transitions_to[$index]
|
||||||
set word_index (math $word_index + 1)
|
set word_index (math $word_index + 1)
|
||||||
continue
|
continue
|
||||||
|
@ -80,8 +87,8 @@ function _hyprpm
|
||||||
end
|
end
|
||||||
|
|
||||||
if set --query literal_transitions[$state] && test -n $literal_transitions[$state]
|
if set --query literal_transitions[$state] && test -n $literal_transitions[$state]
|
||||||
set --local --erase inputs
|
set --erase inputs
|
||||||
set --local --erase tos
|
set --erase tos
|
||||||
eval $literal_transitions[$state]
|
eval $literal_transitions[$state]
|
||||||
for literal_id in $inputs
|
for literal_id in $inputs
|
||||||
if test -n $descriptions[$literal_id]
|
if test -n $descriptions[$literal_id]
|
||||||
|
@ -92,14 +99,14 @@ function _hyprpm
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
set command_states 4
|
set command_states 4 3
|
||||||
set command_ids 1
|
set command_ids 1 2
|
||||||
if contains $state $command_states
|
if contains $state $command_states
|
||||||
set --local index (contains --index $state $command_states)
|
set index (contains --index $state $command_states)
|
||||||
set --local function_id $command_ids[$index]
|
set function_id $command_ids[$index]
|
||||||
set --local function_name _hyprpm_$function_id
|
set function_name _hyprpm_$function_id
|
||||||
set --local --erase inputs
|
set --erase inputs
|
||||||
set --local --erase tos
|
set --erase tos
|
||||||
$function_name "$COMP_WORDS[$COMP_CWORD]"
|
$function_name "$COMP_WORDS[$COMP_CWORD]"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -5,10 +5,11 @@ hyprpm [<FLAGS>]... <ARGUMENT>
|
||||||
| (--help | -h) "Show help menu"
|
| (--help | -h) "Show help menu"
|
||||||
| (--verbose | -v) "Enable too much loggin"
|
| (--verbose | -v) "Enable too much loggin"
|
||||||
| (--force | -f) "Force an operation ignoring checks (e.g. update -f)"
|
| (--force | -f) "Force an operation ignoring checks (e.g. update -f)"
|
||||||
|
| (--no-shallow | -s) "Disable shallow cloning of Hyprland sources"
|
||||||
;
|
;
|
||||||
|
|
||||||
<ARGUMENT> ::= (add) "Install a new plugin repository from git"
|
<ARGUMENT> ::= (add) "Install a new plugin repository from git"
|
||||||
| (remove) "Remove a plugin repository"
|
| (remove <PLUGIN_REPOS>) "Remove a plugin repository"
|
||||||
| (update) "Check and update all plugins if needed"
|
| (update) "Check and update all plugins if needed"
|
||||||
| (list) "List all installed plugins"
|
| (list) "List all installed plugins"
|
||||||
| (enable <PLUGINS>) "Load a plugin"
|
| (enable <PLUGINS>) "Load a plugin"
|
||||||
|
@ -17,3 +18,4 @@ hyprpm [<FLAGS>]... <ARGUMENT>
|
||||||
;
|
;
|
||||||
|
|
||||||
<PLUGINS> ::= {{{ hyprpm list | awk '/Plugin/{print $4}' }}};
|
<PLUGINS> ::= {{{ hyprpm list | awk '/Plugin/{print $4}' }}};
|
||||||
|
<PLUGIN_REPOS> ::= {{{ hyprpm list | awk '/Repository/{print $4}' | sed 's/:$//' }}};
|
||||||
|
|
|
@ -4,34 +4,40 @@ _hyprpm_cmd_0 () {
|
||||||
hyprpm list | awk '/Plugin/{print $4}'
|
hyprpm list | awk '/Plugin/{print $4}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_hyprpm_cmd_1 () {
|
||||||
|
hyprpm list | awk '/Repository/{print $4}' | sed 's/:$//'
|
||||||
|
}
|
||||||
|
|
||||||
_hyprpm () {
|
_hyprpm () {
|
||||||
local -a literals=("-n" "::=" "list" "disable" "--help" "update" "add" "--verbose" "-v" "--force" "remove" "enable" "--notify" "-h" "reload" "-f")
|
local -a literals=("--no-shallow" "-n" "::=" "disable" "list" "--help" "update" "add" "--verbose" "-v" "--force" "-s" "remove" "enable" "--notify" "-h" "reload" "-f")
|
||||||
|
|
||||||
local -A descriptions
|
local -A descriptions
|
||||||
descriptions[1]="Send a hyprland notification for important events (e.g. load fail)"
|
descriptions[1]="Disable shallow cloning of Hyprland sources"
|
||||||
descriptions[3]="List all installed plugins"
|
descriptions[2]="Send a hyprland notification for important events (e.g. load fail)"
|
||||||
descriptions[4]="Unload a plugin"
|
descriptions[4]="Unload a plugin"
|
||||||
descriptions[5]="Show help menu"
|
descriptions[5]="List all installed plugins"
|
||||||
descriptions[6]="Check and update all plugins if needed"
|
descriptions[6]="Show help menu"
|
||||||
descriptions[7]="Install a new plugin repository from git"
|
descriptions[7]="Check and update all plugins if needed"
|
||||||
descriptions[8]="Enable too much loggin"
|
descriptions[8]="Install a new plugin repository from git"
|
||||||
descriptions[9]="Enable too much loggin"
|
descriptions[9]="Enable too much loggin"
|
||||||
descriptions[10]="Force an operation ignoring checks (e.g. update -f)"
|
descriptions[10]="Enable too much loggin"
|
||||||
descriptions[11]="Remove a plugin repository"
|
descriptions[11]="Force an operation ignoring checks (e.g. update -f)"
|
||||||
descriptions[12]="Load a plugin"
|
descriptions[12]="Disable shallow cloning of Hyprland sources"
|
||||||
descriptions[13]="Send a hyprland notification for important events (e.g. load fail)"
|
descriptions[13]="Remove a plugin repository"
|
||||||
descriptions[14]="Show help menu"
|
descriptions[14]="Load a plugin"
|
||||||
descriptions[15]="Reload all plugins"
|
descriptions[15]="Send a hyprland notification for important events (e.g. load fail)"
|
||||||
descriptions[16]="Force an operation ignoring checks (e.g. update -f)"
|
descriptions[16]="Show help menu"
|
||||||
|
descriptions[17]="Reload all plugins"
|
||||||
|
descriptions[18]="Force an operation ignoring checks (e.g. update -f)"
|
||||||
|
|
||||||
local -A literal_transitions
|
local -A literal_transitions
|
||||||
literal_transitions[1]="([10]=7 [3]=3 [8]=7 [9]=7 [5]=7 [11]=3 [12]=4 [6]=3 [14]=7 [4]=4 [15]=3 [16]=7 [7]=3)"
|
literal_transitions[1]="([1]=8 [4]=4 [5]=5 [9]=8 [10]=8 [7]=5 [8]=5 [12]=8 [6]=8 [11]=8 [13]=3 [14]=4 [16]=8 [17]=5 [18]=8)"
|
||||||
literal_transitions[2]="([11]=3 [12]=4 [4]=4 [3]=3 [15]=3 [6]=3 [7]=3)"
|
literal_transitions[2]="([13]=3 [14]=4 [4]=4 [5]=5 [17]=5 [7]=5 [8]=5)"
|
||||||
literal_transitions[5]="([2]=6)"
|
literal_transitions[6]="([3]=7)"
|
||||||
literal_transitions[6]="([1]=7 [13]=7)"
|
literal_transitions[7]="([2]=8 [15]=8)"
|
||||||
|
|
||||||
local -A match_anything_transitions
|
local -A match_anything_transitions
|
||||||
match_anything_transitions=([4]=3 [3]=5 [1]=2 [2]=2)
|
match_anything_transitions=([2]=2 [5]=6 [4]=5 [3]=5 [1]=2)
|
||||||
|
|
||||||
declare -A subword_transitions
|
declare -A subword_transitions
|
||||||
|
|
||||||
|
@ -91,7 +97,7 @@ _hyprpm () {
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
local -A commands=([4]=0)
|
local -A commands=([4]=0 [3]=1)
|
||||||
|
|
||||||
if [[ -v "commands[$state]" ]]; then
|
if [[ -v "commands[$state]" ]]; then
|
||||||
local command_id=${commands[$state]}
|
local command_id=${commands[$state]}
|
||||||
|
|
Loading…
Reference in a new issue