river/completions/bash/riverctl
Isaac Freund e35c147cd5
river: refactor keyboard groups implementation
This reduces the impact of keyboard groups on the Keyboard.zig
implementation and otherwise improves consistency with patterns used
elsewhere in rivers code.

There are also two small changes to the riverctl interface:

- keyboard-group-add-keyboard is renamed to keyboard-group-add
- keyboard-group-remove is added to support removing keyboards from a
group.
2022-09-18 15:53:45 +02:00

119 lines
2.9 KiB
Plaintext

function __riverctl_completion ()
{
if [ "${COMP_CWORD}" -eq 1 ]
then
OPTS=" \
keyboard-group-create \
keyboard-group-destroy \
keyboard-group-add \
keyboard-group-remove \
csd-filter-add \
exit \
float-filter-add \
focus-output \
focus-view \
input \
list-inputs \
list-input-configs \
move \
resize \
snap \
send-to-output \
spawn \
swap \
toggle-float \
toggle-fullscreen \
zoom \
default-layout \
output-layout \
send-layout-cmd \
set-focused-tags \
focus-previous-tags \
send-to-previous-tags \
set-view-tags \
toggle-focused-tags \
toggle-view-tags \
spawn-tagmask \
declare-mode \
enter-mode \
map \
map-pointer \
map-switch \
unmap \
unmap-pointer \
unmap-switch \
attach-mode \
background-color \
border-color-focused \
border-color-unfocused \
border-color-urgent \
border-width \
focus-follows-cursor \
hide-cursor \
set-repeat \
set-cursor-warp \
xcursor-theme"
COMPREPLY=($(compgen -W "${OPTS}" -- "${COMP_WORDS[1]}"))
elif [ "${COMP_CWORD}" -eq 2 ]
then
case "${COMP_WORDS[1]}" in
"focus-output"|"focus-view"|"send-to-output"|"swap") OPTS="next previous" ;;
"move"|"snap") OPTS="up down left right" ;;
"resize") OPTS="horizontal vertical" ;;
"map") OPTS="-release -repeat -layout" ;;
"unmap") OPTS="-release" ;;
"attach-mode") OPTS="top bottom" ;;
"focus-follows-cursor") OPTS="disabled normal always" ;;
"set-cursor-warp") OPTS="disabled on-output-change" ;;
"hide-cursor") OPTS="timeout when-typing" ;;
*) return ;;
esac
COMPREPLY=($(compgen -W "${OPTS}" -- "${COMP_WORDS[2]}"))
elif [ "${COMP_CWORD}" -eq 3 ]
then
if [ "${COMP_WORDS[1]}" == "input" ]
then
OPTS="events \
accel-profile \
pointer-accel \
click-method \
drag \
drag-lock \
disable-while-typing \
middle-emulation \
natural-scroll \
left-handed \
tap \
tap-button-map \
scroll-method \
scroll-button"
COMPREPLY=($(compgen -W "${OPTS}" -- "${COMP_WORDS[2]}"))
elif [ "${COMP_WORDS[1]}" == "hide-cursor" ]
then
case "${COMP_WORDS[2]}" in
"when-typing") OPTS="enabled disabled" ;;
*) return ;;
esac
COMPREPLY=($(compgen -W "${OPTS}" -- "${COMP_WORDS[3]}"))
fi
elif [ "${COMP_CWORD}" -eq 4 ]
then
if [ "${COMP_WORDS[1]}" == "input" ]
then
case "${COMP_WORDS[3]}" in
"events") OPTS="enabled disabled disabled-on-external-mouse" ;;
"accel-profile") OPTS="none flat adaptive" ;;
"click-method") OPTS="none button-areas clickfinger" ;;
"drag"|"drag-lock"|"disable-while-typing"|"middle-emulation"|"left-handed"|"tap") OPTS="enabled disabled" ;;
"tap-button-map") OPTS="left-right-middle left-middle-right" ;;
"scroll-method") OPTS="none two-finger edge button" ;;
*) return ;;
esac
fi
else
return
fi
}
complete -F __riverctl_completion riverctl