diff options
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/X/_x_extension | 17 | ||||
-rw-r--r-- | Completion/X/_x_window | 19 | ||||
-rw-r--r-- | Completion/X/_xutils | 136 |
3 files changed, 172 insertions, 0 deletions
diff --git a/Completion/X/_x_extension b/Completion/X/_x_extension new file mode 100644 index 000000000..967938e28 --- /dev/null +++ b/Completion/X/_x_extension @@ -0,0 +1,17 @@ +#autoload + +local expl + +(( $+_xe_cache )) || _xe_cache=( "${(@)${(@f)$(xdpyinfo)}[(r)number of extensions:*,-1][2,(r)default screen number:*][1,-2]//[ ]}" ) + +_description expl 'X extension' + +if [[ "$1" = -a ]]; then + shift + + compadd "$@" "$expl[@]" -M 'm:{a-z}={A-Z} r:|-=* r:|=*' - all "$_xe_cache[@]" +else + [[ "$1" = - ]] && shift + + compadd "$@" "$expl[@]" -M 'm:{a-z}={A-Z} r:|-=* r:|=*' - "$_xe_cache[@]" +fi diff --git a/Completion/X/_x_window b/Completion/X/_x_window new file mode 100644 index 000000000..118c7f131 --- /dev/null +++ b/Completion/X/_x_window @@ -0,0 +1,19 @@ +#autoload + +setopt localoptions extendedglob + +local list expl + +list=( "${(@)${(M@)${(@f)$(xwininfo -root -tree)}:#[ ]#0x[0-9a-f]# \"*}##[ ]#}" ) + +if [[ "$1" = -n ]]; then + shift + + _description expl 'window name' + compadd "$@" "$expl[@]" -d list - "${(@)${(@)list#*\"}%%\"*}" +else + [[ "$1" = - ]] && shift + + _description expl 'window ID' + compadd "$@" "$expl[@]" -d list - "${(@)list%% *}" +fi diff --git a/Completion/X/_xutils b/Completion/X/_xutils new file mode 100644 index 000000000..1818b447f --- /dev/null +++ b/Completion/X/_xutils @@ -0,0 +1,136 @@ +#compdef xdpyinfo xwininfo xkill xfontsel xfd xev xhost xon xsetroot xwd xwud xrdb + +case "$words[1]" in +xdpyinfo) + _x_arguments \ + -queryExtensions \ + '-ext:extension: _x_extension -a' + ;; +xwininfo) + _x_arguments \ + -{help,int,stats,bits,events,size,wm,shape,frame,all,english,metric} \ + '(-id -name)-root' \ + '(-id -root)-name:name: _x_window -n' \ + '(-name -root)-id:id: _x_window' + ;; +xkill) + _x_arguments \ + -frame \ + '(-id)-all' \ + '(-all)-id:window: _x_window' \ + '-button:selection button:(any 1 2 3 4 5)' + ;; +xfontsel) + _xt_arguments \ + -{print,noscaled} \ + '-pattern:font pattern:_x_font' \ + '-sample:sample text:' \ + '-sample16:16-bit sample text:' + ;; +xfd) + _xt_arguments \ + '-fn:font: _x_font' \ + -{box,center} \ + '-start:first character number:' \ + '-bc:box border color:_x_color' \ + '-rows:number of rows:' \ + '-columns:number of columns:' + ;; +xev) + _x_arguments \ + '-bw:border width:' \ + '-bs:type of backing store:(NotUseful WhenMapped Always)' \ + '-id:id:_x_window' \ + '-s[use save-under]' \ + '-name:window name:' \ + '-rv' + ;; +xhost) + local expl type ret=1 + + if compset -P '-'; then + _description expl 'disallow access' + compadd "$expl[@]" -M 'm:{a-z}={A-Z} r:|[:.]=* r:|=*' - \ + "${${(@M)${(@f)$(xhost)}[2,-1]:#LOCAL:*}#INET:}" + else + compset -P + + + if [[ "$PREFIX" = *:* ]]; then + type="${(L)PREFIX%%:*}" + compset -P '*:' + + case "$type" in + inet) _hosts && ret=0;; + dnet) _message 'DECnet host';; + nis) _message 'Secure RPC network name';; + krb) _message 'Kerberos V5 principal';; + esac + else + _description expl 'name family' + compadd -S: - inet dnet nis krb && ret=0 + _hosts && ret=0 + fi + return ret + fi + ;; +xon) + _arguments \ + -{access,debug,nols} \ + '-name:window name:' \ + '-screen:screen number:' \ + '-user:remote user name:_users' \ + ':remote host:_hosts' \ + '*:command::command:_normal' + ;; +xsetroot) + _x_arguments \ + -{help,def,gray,grey,rv} \ + '-cursor:cursor file:_files -g \*.\(\#i\)\(xbm\|curs\(\|or\)\):mask file:_files -g \*.\(\#i\)\(xbm\|curs\(\|or\)\|mask\)' \ + '-cursor_name:cursor name:_x_cursor' \ + '-bitmap:bitmap file:_files -g \*.\(\#i\)xbm' \ + '-mod:x grid distance (1-16): :y grid distance (1-16):' \ + '-fg:foreground color:_x_color' \ + '-bg:background color:_x_color' \ + '-solid:screen solid color:_x_color' \ + '-name:root window name:' + ;; +xwd) + _x_arguments \ + -{debug,help,nobdrs,xy,frame,root,icmap,screen,silent} \ + '-out:output file:_files' \ + '-add:pixel change value:' \ + '-id:id: _x_window' \ + '-name:name: _x_window -n' + ;; +xwud) + _x_arguments \ + -{help,new,noclick,raw,rv,scale} \ + '-bg:background color:_x_color' \ + '-fg:foreground color:_x_color' \ + '-in:input file:_files -g \*.\(\#i\)xwd' \ + '-plane:image plane to display:' \ + '-std:standard colormap:(best default gray red blue green)' \ + '-vis:visual class:(StaticGray GrayScale StaticColor PseudoColor DirectColor TrueColor)' + ;; +xrdb) + _x_arguments \ + -{help,quiet,symbols,retain} \ + '(-all -screen -screens)-global' \ + '(-global -screen -screens)-all' \ + '(-global -all -screens)-screen' \ + '(-global -all -screen)-screens' \ + '-n[only display on stdout]' \ + '(-nocpp)-cpp:preprocessor program:_files -g \*\(\*\)' \ + '(-cpp)-nocpp' \ + '(-load -override -merge -remove)-query' \ + '(-query -override -merge -remove)-load' \ + '(-query -load -merge -remove)-override' \ + '(-query -load -override -remove)-merge' \ + '(-query -load -override -merge)-remove' \ + '-edit:output file:_files' \ + '-backup:backup extension:' \ + '*-D-:symbol to define:' \ + '*-U-:symbol to undefine:' \ + '*-I-:include directory:_files -/' + ;; +esac |