151 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
function __riverctl_completion ()
 | 
						|
{
 | 
						|
	local rule_actions="float no-float ssd csd tags output position dimensions fullscreen no-fullscreen"
 | 
						|
	if [ "${COMP_CWORD}" -eq 1 ]
 | 
						|
	then
 | 
						|
		OPTS=" \
 | 
						|
			keyboard-group-create \
 | 
						|
			keyboard-group-destroy \
 | 
						|
			keyboard-group-add \
 | 
						|
			keyboard-group-remove \
 | 
						|
			keyboard-layout \
 | 
						|
			keyboard-layout-file \
 | 
						|
			close \
 | 
						|
			exit \
 | 
						|
			focus-output \
 | 
						|
			focus-view \
 | 
						|
			input \
 | 
						|
			list-inputs \
 | 
						|
			list-input-configs \
 | 
						|
			move \
 | 
						|
			resize \
 | 
						|
			rule-add \
 | 
						|
			rule-del \
 | 
						|
			list-rules \
 | 
						|
			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 \
 | 
						|
			default-attach-mode \
 | 
						|
			output-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"|"send-to-output") OPTS="next previous up right down left" ;;
 | 
						|
			"focus-view"|"swap") OPTS="next previous up down left right" ;;
 | 
						|
			"input") OPTS="$(riverctl list-inputs | sed '/configured:/d')" ;;
 | 
						|
			"move"|"snap") OPTS="up down left right" ;;
 | 
						|
			"resize") OPTS="horizontal vertical" ;;
 | 
						|
			"rule-add"|"rule-del") OPTS="-app-id -title $rule_actions" ;;
 | 
						|
			"list-rules") OPTS="float ssd tags output position dimensions fullscreen" ;;
 | 
						|
			"map") OPTS="-release -repeat -layout" ;;
 | 
						|
			"unmap") OPTS="-release" ;;
 | 
						|
			"default-attach-mode"|"output-attach-mode") OPTS="top bottom above below after" ;;
 | 
						|
			"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 \
 | 
						|
				disable-while-trackpointing \
 | 
						|
				middle-emulation \
 | 
						|
				natural-scroll \
 | 
						|
				scroll-factor \
 | 
						|
				left-handed \
 | 
						|
				tap \
 | 
						|
				tap-button-map \
 | 
						|
				scroll-method \
 | 
						|
				scroll-button \
 | 
						|
				map-to-output"
 | 
						|
			COMPREPLY=($(compgen -W "${OPTS}" -- "${COMP_WORDS[3]}"))
 | 
						|
		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
 | 
						|
			COMPREPLY=($(compgen -W "${OPTS}" -- "${COMP_WORDS[4]}"))
 | 
						|
		elif [ "${COMP_WORDS[1]:0:5}" == "rule-" ]
 | 
						|
		then
 | 
						|
			case "${COMP_WORDS[2]}" in
 | 
						|
				"-app-id") OPTS="-title $rule_actions" ;;
 | 
						|
				"-title") OPTS="-app-id $rule_actions" ;;
 | 
						|
				*) return ;;
 | 
						|
			esac
 | 
						|
			COMPREPLY=($(compgen -W "${OPTS}" -- "${COMP_WORDS[4]}"))
 | 
						|
		fi
 | 
						|
	elif [ "${COMP_CWORD}" -eq 6 ]
 | 
						|
	then
 | 
						|
		if [ "${COMP_WORDS[1]:0:5}" == "rule-" ]
 | 
						|
		then
 | 
						|
			case "${COMP_WORDS[4]}" in
 | 
						|
				"-app-id"|"-title") OPTS="$rule_actions" ;;
 | 
						|
				*) return ;;
 | 
						|
			esac
 | 
						|
			COMPREPLY=($(compgen -W "${OPTS}" -- "${COMP_WORDS[6]}"))
 | 
						|
		fi
 | 
						|
	else
 | 
						|
		return
 | 
						|
	fi
 | 
						|
}
 | 
						|
 | 
						|
complete -F __riverctl_completion riverctl
 |