summaryrefslogtreecommitdiffstats
path: root/completions/xgamma
diff options
context:
space:
mode:
Diffstat (limited to 'completions/xgamma')
-rw-r--r--completions/xgamma61
1 files changed, 61 insertions, 0 deletions
diff --git a/completions/xgamma b/completions/xgamma
new file mode 100644
index 0000000..8d77ba3
--- /dev/null
+++ b/completions/xgamma
@@ -0,0 +1,61 @@
+# bash completion for xgamma(1) -*- shell-script -*-
+
+_xgamma()
+{
+ local cur prev words cword
+ _init_completion -n : || return
+
+ case "$prev" in
+ -screen)
+ local screens=$(xrandr --query 2>/dev/null | command sed -n \
+ '/^Screen /s|^Screen \{1,\}\(.*\):.*$|\1|p' 2>/dev/null)
+ COMPREPLY=($(compgen -W "$screens" -- "$cur"))
+ return
+ ;;
+ -gamma | -rgamma | -ggamma | -bgamma)
+ # expect f.f
+ if [[ $cur && $cur != *.* ]]; then
+ COMPREPLY=(.)
+ fi
+ COMPREPLY+=($(compgen -W "{0..9}"))
+ compopt -o nospace
+ return
+ ;;
+ -display)
+ # expect hostname:displaynumber.screennumber
+ if [[ $cur == :* && $cur != :*.* ]]; then
+ # FIXME: where to get local display numbers?
+ local display=${cur#:}
+ COMPREPLY=($(compgen -W "${display:-0}."))
+ compopt -o nospace
+ elif [[ $cur == :*.* ]]; then
+ # local screen numbers
+ local t screens=$(xrandr --query 2>/dev/null | command sed -ne \
+ '/^Screen /s|^Screen \{1,\}\(.*\):.*$|\1|p' 2>/dev/null)
+ t="${cur#:}"
+ COMPREPLY=($(compgen -P "${t%.*}." -W "$screens" -- \
+ "${cur##*.}"))
+ elif [[ $cur != *:* ]]; then
+ # complete hostnames
+ _known_hosts_real -c -- "$cur"
+ if [[ ! $cur ]]; then
+ COMPREPLY+=(:)
+ fi
+ compopt -o nospace
+ fi
+ # no display completion for remote hosts
+ return
+ ;;
+ esac
+
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_help "$1" -help)' -- "$cur"))
+ if [[ ${COMPREPLY-} ]]; then
+ [[ $COMPREPLY == *= ]] && compopt -o nospace
+ return
+ fi
+ fi
+} &&
+ complete -F _xgamma xgamma
+
+# ex: filetype=sh