8036ae2bd1
Warp the cursor to the center of the focused view if the cursor is not in the bounding box of that view already. This helps the user to keep track of their cursor when they mostly use the keyboard and the cursor becomes hidden most of the time, also helps trackpad/trackpoint users.
119 lines
2.9 KiB
Plaintext
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 on-focus-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
|