#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})'"