xgamma: New completion
This commit is contained in:
parent
0c06290764
commit
e81223ac46
@ -188,6 +188,7 @@ bashcomp_DATA = abook \
|
||||
wol \
|
||||
wtf \
|
||||
wvdial \
|
||||
xgamma \
|
||||
xhost \
|
||||
xm \
|
||||
xmllint \
|
||||
|
65
completions/xgamma
Normal file
65
completions/xgamma
Normal file
@ -0,0 +1,65 @@
|
||||
# bash completion for xgamma(1)
|
||||
|
||||
have xgamma || return
|
||||
|
||||
_xgamma()
|
||||
{
|
||||
local cur prev words cword
|
||||
_init_completion -n : || return
|
||||
|
||||
case "$prev" in
|
||||
-screen)
|
||||
local screens=$(xrandr --query 2>/dev/null | \
|
||||
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 | sed -n \
|
||||
-e '/^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 dislpay completion for remote hosts
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$cur" == -* ]]; then
|
||||
COMPREPLY=( $( compgen -W '$( _parse_help "$1" -help )' -- "$cur" ) )
|
||||
[[ $COMPREPLY == *= ]] && compopt -o nospace
|
||||
[[ $COMPREPLY ]] && return
|
||||
fi
|
||||
} && complete -F _xgamma xgamma
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# sh-basic-offset: 4
|
||||
# sh-indent-comment: t
|
||||
# indent-tabs-mode: nil
|
||||
# End:
|
||||
# ex: ts=4 sw=4 et filetype=sh
|
1
test/completion/xgamma.exp
Normal file
1
test/completion/xgamma.exp
Normal file
@ -0,0 +1 @@
|
||||
assert_source_completions xgamma
|
21
test/lib/completions/xgamma.exp
Normal file
21
test/lib/completions/xgamma.exp
Normal file
@ -0,0 +1,21 @@
|
||||
proc setup {} {
|
||||
save_env
|
||||
}
|
||||
|
||||
|
||||
proc teardown {} {
|
||||
assert_env_unmodified
|
||||
}
|
||||
|
||||
|
||||
setup
|
||||
|
||||
|
||||
set test "-gam<TAB> should complete \"-gamma\""
|
||||
assert_complete "-gamma" "xgamma -gam" $test
|
||||
|
||||
|
||||
sync_after_int
|
||||
|
||||
|
||||
teardown
|
Loading…
x
Reference in New Issue
Block a user