Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bash completion #220

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open

bash completion #220

wants to merge 4 commits into from

Conversation

bschatz
Copy link

@bschatz bschatz commented Mar 29, 2020

device options (-dv -dp -ds -tuk) not finished, yet.

@MatMoul
Copy link
Owner

MatMoul commented Apr 10, 2020

Good idea but don't work very well

@dioni21
Copy link
Contributor

dioni21 commented Sep 12, 2020

Will there be any more work on this?

@bschatz
Copy link
Author

bschatz commented Sep 12, 2020

if somebody finds it useful i could spend a little bit more time here.

@MatMoul
Copy link
Owner

MatMoul commented Sep 14, 2020

this is mine :

#/usr/bin/env bash

_g810-led_completions(){
	local -r devargs="-dv -dp -ds -tuk"
	local -r infoargs="--list-keyboards --print-device --help --help-keys --help-effects --help-samples"
	local -r args="-a -an -g -gn -k -kn -c -fx -p --startup-mode"
	local -r keygroups="logo indicators fkeys modifiers multimedia arrows numeric functions keys"
	local -r startupmode="wave color"
	local -r effects="color breathing cycle waves hwave vwave cwave"
	local -r effecttargets="all keys logo"
	local -r tukopts="1 2 3"
	local -r cur=${COMP_WORDS[COMP_CWORD]}
	
	if [[ ${COMP_CWORD} -eq 1 ]] ; then
		COMPREPLY=($(compgen -W "${infoargs} ${devargs} ${args}" -- ${COMP_WORDS[COMP_CWORD]}))
		return 0
	fi
	
	if [[ ${COMP_CWORD} -gt 1 ]] ; then
		case "${COMP_WORDS[COMP_CWORD-1]}" in
			"-g" | "-gn")
				COMPREPLY=($(compgen -W "${keygroups}" -- ${COMP_WORDS[COMP_CWORD]}))
				return 0
			;;
			"-fx")
				COMPREPLY=($(compgen -W "${effects}" -- ${COMP_WORDS[COMP_CWORD]}))
				return 0
			;;
			"-p")
				_filedir
				return 0
			;;
			"--startup-mode")
				COMPREPLY=($(compgen -W "${startupmode}" -- ${COMP_WORDS[COMP_CWORD]}))
				return 0
			;;
			"-tuk")
				COMPREPLY=($(compgen -W "${tukopts}" -- ${COMP_WORDS[COMP_CWORD]}))
				return 0
			;;
		esac
	fi
	
	if [[ ${COMP_CWORD} -gt 2 ]] ; then
		case "${COMP_WORDS[COMP_CWORD-2]}" in
			"-dv" | "-dp" | "-ds" | "-tuk")
				local curargs="${devargs} ${args}"
				for ((i=0; i<=COMP_CWORD; i++)); do
					case "${COMP_WORDS[i]}" in
						"-dv" | "-dp" | "-ds" | "-tuk") curargs=${curargs//${COMP_WORDS[i]}/};;
					esac
				done
				COMPREPLY=($(compgen -W "${curargs}" -- ${COMP_WORDS[COMP_CWORD]}))
				return 0
			;;
			"-fx")
				COMPREPLY=($(compgen -W "${effecttargets}" -- ${COMP_WORDS[COMP_CWORD]}))
				return 0
			;;
		esac		
	fi
	
	return 0
}

complete -F _g810-led_completions g213-led
complete -F _g810-led_completions g410-led
complete -F _g810-led_completions g413-led
complete -F _g810-led_completions g512-led
complete -F _g810-led_completions g513-led
complete -F _g810-led_completions g610-led
complete -F _g810-led_completions g810-led
complete -F _g810-led_completions g910-led
complete -F _g810-led_completions gpro-led

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants