#compdef xli xloadimage xsetbg xview
local rc ipath extension filter type args
if rc=( ${(f)"$($words[1] -path)"} ); then
# xli
filter=( .Z )
args=(
'-cache[force caching of entire input]'
"-delete[enable deleting images with 'x' key]"
'-dispgamma[specify gamma correction]'
'-fillscreen[use whole screen, zooming image]'
'-focus[take keyboard focus]'
'-path[display image path and suffixes]'
-dumpcore
'*-iscale[scale image]:scale factor'
'*-c'{,olor}'dither[dither image]'
'*-expand[expand image to 24-bit]'
'*-xpm[specify xpm color map]:color context key:((m\:mono g4\:4\ level\ gray g\:gray c\:color))'
)
else
# xloadimage
rc=( ${(f)"$($words[1] -configuration)"} )
filter=( ${${(Q)rc[4,-1]%% -*}# } )
type=( ${(f)"$($words[1] -supported)"} )
args=(
'-configuration[display image path, suffixes and filters]'
'-dump[dump image into file]:image type:( '${(F)${(M)type:#*Yes*}%% *}' ):filename:_files'
-slideshow
'*-type[force type of image]:type name:( '${(F)type[3,-1]%% *}' )'
'*-shrink[shrink image to fit display]'
'*-tile[tile image to fill display]'
'*-global[following option applies to all images]'
)
fi
ipath=( . ${=${(M)rc:#*path:*}#*:} )
extension=( ${=${(M)rc:#*extensions:*}#*:} )
# set default file extensions if there are none
(( $#extension )) || extension=(
.gif .jpg .jpeg .png .rle .csun .msun .sun .face
.xbm .bm .fbm .pcx .ppm .pgm .pbm .tga .xpm
)
# all options are valid after -help so no exclusion lists below
_x_arguments "$args[@]" \
'-default[set root background to default]' \
'-fit[use default visual and colormap]' \
'-fullscreen[use whole screen, surrounding image with border]' \
"-goto[specify image to display at end]:image name:_files -W ipath -g '*(#i)(${(j:|:)extension})(|${(j:|:)filters})(-.)'" \
'(*)-help[display information on options]' \
'-identity[identify supplied images instead of displaying]' \
'-install[forcibly install image colormap on focus]' \
'-list[list images]' \
'-onroot[display to root window]' \
'-path[display image path and suffixes]' \
'-pixmap[force the use of a pixmap as backing-store]' \
'-private[force use of a private colormap]' \
'-quiet[quiet operation]' \
'-supported[list supported image types]' \
'-verbose[verbose operation]' \
'-version[display version info]' \
'-view[view image in window]' \
'-visual[force use of a specific visual]:visual:_x_visual' \
'-windowid[set background pixmap of specific window]:window id:_x_window' \
-fork -debug \
'*-border[specify background color]:background color:_x_color' \
'*-brighten[brighten/darken image]:percentage multiplier' \
'*-colors[specify maximum colors in image]:colors' \
'*-delay[delay before advancing to next image]:seconds' \
'*-dither[dither color image to mono]' \
'*-gamma[specify gamma of display image was intended for]:gamma' \
'*-gr'{a,e}'y[convert image to grayscale]' \
'*-idelay[specify delay for this image]' \
'*-smooth[smooth a color image]' \
'*-xzoom[zoom X axis of image]:percentage' \
'*-yzoon[zoom Y axis of image]:percentage' \
'*-zoom:percentage' \
'*-newoptions[reset options]' \
'*-at[specify coordinates to load next image at]' \
'*-background[specify background color for next image]:color:_x_color' \
'*-center[center next image on base image]' \
'*-clip:X,Y,W,H' \
'*-foreground[specify foreground color for next image]:color:_x_color' \
'*-halftone[force halftone dithering]' \
'*-invert[invert a monochrome image]' \
'*-merge[merge image onto the base image]' \
"*-name[specify image name]:picture file:_files -W ipath -g '*(#i)(${(j:|:)extension})(|${(j:|:)filters})(-.)'" \
'*-normalize' \
'*-rotate[rotate image clockwise]:degrees of rotation:(90 180 270)' \
"*:picture file:_files -W ipath -g '*(#i)(${(j:|:)extension})(|${(j:|:)filter})(-.)'"
Copyright 2K16 - 2K18 Indonesian Hacker Rulez