mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-03 10:21:46 +02:00
30987: only call xrandr when necessary and use _call_program
This commit is contained in:
parent
0969fb91fa
commit
27c5a0d774
2 changed files with 34 additions and 23 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-01-20 Oliver Kiddle <opk@zsh.org>
|
||||
|
||||
* 30987: Completion/X/Command/_xrandr: only call xrandr when
|
||||
necessary and use _call_program
|
||||
|
||||
2013-01-14 Peter Stephenson <p.stephenson@samsung.com>
|
||||
|
||||
* 30960: Alexey Bezhan: Completion/Unix/Command/_django:
|
||||
|
@ -450,5 +455,5 @@
|
|||
|
||||
*****************************************************
|
||||
* This is used by the shell to define $ZSH_PATCHLEVEL
|
||||
* $Revision: 1.5786 $
|
||||
* $Revision: 1.5787 $
|
||||
*****************************************************
|
||||
|
|
|
@ -1,13 +1,9 @@
|
|||
#compdef xrandr
|
||||
local context state line
|
||||
|
||||
local curcontext="$curcontext" state line expl
|
||||
typeset -A opt_args
|
||||
local outputs modes expl
|
||||
|
||||
# User configurable. TODO -- styles?
|
||||
outputs=($(xrandr|sed -ne 's/^\([^[[:space:]]\+]*\) connected .*$/\1/p'))
|
||||
modes=($(xrandr|sed -ne 's/^[[:space:]]\+\([[:digit:]]\+x[[:digit:]]\+\).*$/\1/p'|sort -nr|uniq))
|
||||
|
||||
_arguments \
|
||||
_arguments -C \
|
||||
'(-d -display)'{-d,-display}':X display:_x_display' \
|
||||
'-help[display help]' \
|
||||
'(-o --orientation)'{-o,--orientation}':rotation:(normal inverted left right 0 1 2 3)' \
|
||||
|
@ -25,18 +21,18 @@ _arguments \
|
|||
'--fb:size:' \
|
||||
'--fbmm:size:' \
|
||||
'--dpi:dpi:' \
|
||||
"*--output:output to reconfigure:($outputs)" \
|
||||
"*--output:output to reconfigure:->outputs" \
|
||||
'*--auto' \
|
||||
"*--mode:mode:($modes)" \
|
||||
"*--mode:mode:->modes" \
|
||||
'*--preferred' \
|
||||
'*--pos:position:' \
|
||||
'*--reflect:axes:(normal x y xy)' \
|
||||
'*--rotate:rotation:(normal inverted left right)' \
|
||||
"*--left-of:relative position to:($outputs)" \
|
||||
"*--right-of:relative position to:($outputs)" \
|
||||
"*--above:relative position to:($outputs)" \
|
||||
"*--below:relative position to:($outputs)" \
|
||||
"*--same-as:relative position to:($outputs)" \
|
||||
"*--left-of:relative position to:->outputs" \
|
||||
"*--right-of:relative position to:->outputs" \
|
||||
"*--above:relative position to:->outputs" \
|
||||
"*--below:relative position to:->outputs" \
|
||||
"*--same-as:relative position to:->outputs" \
|
||||
'*--set:property:(Backlight scaling\ mode):value:->value' \
|
||||
'*--scale:output scaling:' \
|
||||
'*--transform:transformation matrix:' \
|
||||
|
@ -48,15 +44,25 @@ _arguments \
|
|||
'--noprimary' \
|
||||
'*--newmode:name: :clock MHz: :hdisp: :hsync-start: :hsync-end: :htotal: :vdisp: :vsync-start: :vsync-end: :vtotal:' \
|
||||
'*--rmmode:Mode name:' \
|
||||
"*--addmode:output:($outputs):name:" \
|
||||
"*--delmode:output:($outputs):name:" \
|
||||
"*--addmode:output:->outputs:name" \
|
||||
"*--delmode:output:->outputs:name" \
|
||||
&& return 0
|
||||
|
||||
if [[ $state == value ]]; then
|
||||
case $state in
|
||||
value)
|
||||
case $words[CURRENT-1] in
|
||||
(scaling* mode)
|
||||
_description value expl "output property 'scaling mode'"
|
||||
compadd "$@" "$expl[@]" None Full Center Full\ aspect && return 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
outputs)
|
||||
_wanted outputs expl output compadd \
|
||||
${(uo)${(M)${(f)"$(_call_program outputs xrandr)"}:#* connected*}%% *} && return 0
|
||||
;;
|
||||
modes)
|
||||
_wanted modes expl mode compadd \
|
||||
${(Mun)$(_call_program modes xrandr):#[0-9]##x[0-9]##} && return 0
|
||||
;;
|
||||
esac
|
||||
|
|
Loading…
Reference in a new issue