summaryrefslogtreecommitdiffstats
path: root/shell/completions/gnome-control-center.in
blob: 51ce4fda7c1afa16215665a7c5656e502e39d1ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# gnome-control-center tab completion for bash.

_gnome_control_center()
{
	local cur prev command_list i v

	cur=${COMP_WORDS[COMP_CWORD]}
	prev=${COMP_WORDS[COMP_CWORD-1]}

	case "$prev" in
	*)
		if [ $prev = "gnome-control-center" ] ; then
			command_list="--verbose --version"
			command_list="$command_list @PANELS@"
		elif [ $prev = "--verbose" ]; then
			command_list="@PANELS@"
		fi

		for i in --version @PANELS@; do
			if [ $i = $prev ]; then
				case $i in
				keyboard)
					command_list="shortcuts typing"
					;;
				network)
					# FIXME
					# The first 3 commands need an object path like
					# /org/freedesktop/NetworkManager/Devices/1
					command_list="connect-3g connect-8021x-wifi show-device connect-hidden-wifi create-wifi"
					;;
				sound)
					command_list="applications effects hardware input outputs"
					;;
				*)
					command_list=""
					;;
				esac
			fi
		done
		;;
	esac

	for i in $command_list; do
		if [ -z "${i/$cur*}" ]; then
			COMPREPLY=( ${COMPREPLY[@]} $i )
		fi
	done
}

# load the completion
complete -F _gnome_control_center gnome-control-center