summaryrefslogtreecommitdiffstats
path: root/shell/completions/gnome-control-center.in
diff options
context:
space:
mode:
Diffstat (limited to 'shell/completions/gnome-control-center.in')
-rw-r--r--shell/completions/gnome-control-center.in51
1 files changed, 51 insertions, 0 deletions
diff --git a/shell/completions/gnome-control-center.in b/shell/completions/gnome-control-center.in
new file mode 100644
index 0000000..51ce4fd
--- /dev/null
+++ b/shell/completions/gnome-control-center.in
@@ -0,0 +1,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