Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
_xset
- X-seq: zsh-workers 10885
- From: Tanaka Akira <akr@xxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: _xset
- Date: 21 Apr 2000 05:04:39 +0900
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
This is a completion function for xset.
--- /dev/null Wed May 6 05:32:27 1998
+++ Completion/X/_xset Fri Apr 21 05:00:54 2000
@@ -0,0 +1,197 @@
+#compdef xset
+
+local word=$'[^\0]#\0'
+local nul=$'\0'
+
+local guard='-_xset_guard ${match[1]%?}'
+
+_xset_guard () {
+ local opt="$1" o
+ (( no[$opt]-- ))
+ for o in ${=eo[$opt]}; do
+ no[$o]=0
+ done
+ :
+}
+
+_xset_compopts () {
+ local expl
+ local opt tmp
+
+ tmp=()
+ for opt in ${(k)no[(R)*~0]}
+ do
+ if (( $+desc[$opt] )); then
+ tmp=("$tmp[@]" "$opt:$desc[$opt]")
+ else
+ tmp=("$tmp[@]" "$opt")
+ fi
+ done
+ _describe -o options tmp -- ||
+ _describe -o options allopts --
+}
+
+_xset_compfpadd () {
+ _wanted directories expl directory _files -/
+}
+
+_xset_compfpdel () {
+ _wanted directories expl directory compadd - ${(s:,:)${"$(xset q)"##*
+Font Path:
+ #}%%
+*}
+}
+
+_regex_arguments _xset_parse \
+ "/$word/" \
+ \( "/-d(isplay|)$nul/" "$guard" "/$word/" ":_x_display" \
+ \| "/-c$nul/" "$guard" \
+ \| "/c$nul/" "$guard" \
+ \( "/(on|off)$nul/" ':_wanted values expl click compadd on off' \
+ \| "/[0-9]##$nul/" ':_message volume' \
+ \| \) \
+ \| "/-b$nul/" "$guard" \
+ \| "/b$nul/" "$guard" \
+ \( "/(on|off)$nul/" ':_wanted values expl bell compadd on off' \
+ \| "/[0-9]##$nul/" ':_message volume' \
+ \( "/[0-9]##$nul/" ':_message pitch' \
+ \( "/[0-9]##$nul/" ':_message duration' \
+ \| \) \
+ \| \) \
+ \| \) \
+ \| "/bc$nul/" "$guard" \
+ \| "/-bc$nul/" "$guard" \
+ \| "/fp$nul/" "$guard" "/$word/" ':_wanted values expl "font path" compadd default rehash' \
+ \| "/(fp[+=]|[+]fp)$nul/" "$guard" "/$word/" ':compset -P "*,"; _xset_compfpadd' \
+ \| "/(fp-|-fp)$nul/" "$guard" "/$word/" ':compset -P "*,"; _xset_compfpdel' \
+ \| "/-led$nul/" "$guard" \
+ \( "/[0-9]##$nul/" ':_message integer' \
+ \| \) \
+ \| "/led$nul/" "$guard" \
+ \( "/(on|off)$nul/" ':_wanted values expl led compadd on off' \
+ \| "/[0-9]##$nul/" ':_message integer' \
+ \| \) \
+ \| "/m(ouse|)$nul/" "$guard" \
+ \( "/default$nul/" ':_wanted values expl "mouse parameter" compadd default' \
+ \| "/[0-9]##(/[0-9]##|)$nul/" ':_message accel_mult/accel_div' \
+ \( "/[0-9]##$nul/" ':_message threshold' \
+ \| \) \
+ \| \) \
+ \| "/[-+]dpms$nul/" "$guard" \
+ \| "/dpms$nul/" "$guard" \
+ \( "/[0-9]##$nul/" ':_message "standby timeout"' \
+ \( "/[0-9]##$nul/" ':_message "suspend timeout"' \
+ \( "/[0-9]##$nul/" ':_message "off timeout"' \
+ \| \) \
+ \| \) \
+ \| "/(on|standby|suspend|off)$nul/" ':_wanted values expl DPMS compadd on standby suspend off' \
+ \) \
+ \| "/s$nul/" "$guard" \
+ \( "/(blank|noblank|expose|noexpose|default|on|activate|reset)$nul/" \
+ ':_wanted values expl "screen saver" compadd blank noblank expose noexpose default on activate reset off' \
+ \| "/off$nul/" \( "/off$nul/" ':compadd off' \| \) \
+ \| "/[0-9]##$nul/" ':_message length' \
+ \( "/[0-9]##$nul/" ':_message period' \
+ \| \) \
+ \| \) \
+ \| "/-r$nul/" "$guard" \
+ \( "/[0-9]##$nul/" ':_message keycode' \
+ \| \) \
+ \| "/r$nul/" "$guard" \
+ \( "/(on|off)$nul/" ':_wanted values expl autorepeat compadd on off' \
+ \| "/[0-9]##$nul/" ':_message keycode' \
+ \| \) \
+ \| "/p$nul/" "$guard" \
+ "/[0-9]##$nul/" ':_message pixel' \
+ "/$word/" ':_x_color' \
+ \| "/(-|)k$nul/" "$guard" \
+ \| "/(-|)q$nul/" "$guard" \
+ \| "/[]/" ':_xset_compopts' \
+ \) \#
+
+_xset () {
+ local expl allopts
+ typeset -A desc no eo
+
+ desc=(
+ b 'specify bell parameters'
+ -b 'disable bell'
+ bc 'enable bug compatibility'
+ -bc 'disable bug compatibility'
+ c 'control key click'
+ -c 'disable key click'
+ -dpms 'disable DPMS'
+ +dpms 'enable DPMS'
+ dpms 'specify DPMS parameter'
+ fp\= 'set font path'
+ fp 'control font path'
+ -fp 'remove font path elements'
+ fp- 'remove font path elements'
+ +fp 'prepend font path elements'
+ fp+ 'append font path elements'
+ led 'control keyboard LEDs'
+ -led 'turn off all LEDs'
+ m 'specify mouse parameters'
+ mouse 'specify mouse parameters'
+ p 'specify pixel color values'
+ r 'enable autorepeat'
+ -r 'disable autorepeat'
+ s 'specify screen saver parameters'
+ q 'query current information'
+ k 'enable lock'
+ -k 'disable lock'
+ -display 'display'
+ )
+
+ no=(
+ -display 1 -d 0
+ -c 1 c 1
+ -b 1 b 1
+ -bc 1 bc 1
+ fp 1 fp= 1 +fp 1 fp+ 1 -fp 1 fp- 1
+ -led 1 led 1
+ mouse 1 m 0
+ +dpms 1 -dpms 1 dpms 1
+ s 1
+ -r 1 r 1
+ p 1
+ -k 1 k 1
+ -q 0 q 1
+ )
+
+ allopts=()
+ for opt in ${(k)no}
+ do
+ if (( $+desc[$opt] )); then
+ allopts=("$allopts[@]" "$opt:$desc[$opt]")
+ else
+ allopts=("$allopts[@]" "$opt")
+ fi
+ done
+
+ eo=(
+ -display '-display -d'
+ -d '-display -d'
+ -c '-c c'
+ c '-c c'
+ -b '-b b'
+ b '-b b'
+ -bc '-bc bc'
+ bc '-bc bc'
+ fp+ 'fp fp='
+ fp- 'fp fp='
+ +fp 'fp fp='
+ -fp 'fp fp='
+ m 'm mouse'
+ mouse 'm mouse'
+ -dpms '+dpms -dpms dpms'
+ +dpms '+dpms -dpms dpms'
+ dpms '+dpms -dpms dpms'
+ -k '-k k'
+ k '-k k'
+ )
+
+ _xset_parse
+}
+
+[[ -o kshautoload ]] || _xset "$@"
--
Tanaka Akira
Messages sorted by:
Reverse Date,
Date,
Thread,
Author