mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 18:10:56 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			197 lines
		
	
	
	
		
			6.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			197 lines
		
	
	
	
		
			6.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef feh
 | |
| ## completion for feh 1.6, based on feh(1)
 | |
| 
 | |
| typeset -a arguments
 | |
| typeset -A argument_pairs argument_postfix
 | |
| typeset arg
 | |
| 
 | |
| argument_pairs=(
 | |
| 	'help'        'h'
 | |
| 	'version'     'v'
 | |
| 	'verbose'     'V'
 | |
| 	'quiet'       'q'
 | |
| 	'theme'       'T+'
 | |
| 	'recursive'   'r'
 | |
| 	'randomize'   'z'
 | |
| 	'filelist'    'f+'
 | |
| 	'preload'     'p'
 | |
| 	'full-screen' 'F'
 | |
| 	'geometry'    'g+'
 | |
| 	'auto-zoom'   'Z'
 | |
| 	'multiwindow' 'w'
 | |
| 	'borderless'  'x'
 | |
| 	'draw-filename' 'd'
 | |
| 	'slideshow-delay' 'D+'
 | |
| 	'reload'      'R+'
 | |
| 	'keep-http'   'k'
 | |
| 	'builtin'     'Q'
 | |
| 	'list'        'l'
 | |
| 	'customlist'  'L+'
 | |
| 	'loadable'    'U'
 | |
| 	'unloadable'  'u'
 | |
| 	'sort'        'S+'
 | |
| 	'reverse'     'n'
 | |
| 	'action'      'A+'
 | |
| 	'montage'     'm'
 | |
| 	'collage'     'c'
 | |
| 	'index'       'i'
 | |
| 	'fullindex'   'I'
 | |
| 	'thumbnails'  't'
 | |
| 	'menu-font'   'M+'
 | |
| 	'no-menus'    'N'
 | |
| 	'reload-button' '0'
 | |
| 	'menu-button' '3+'
 | |
| 	'prev-button' '4+'
 | |
| 	'next-button' '5+'
 | |
| 	'rotate-button' '8+'
 | |
| 	'blur-button' '9+'
 | |
| 	'ignore-aspect' 'X'
 | |
| 	'stretch'     's'
 | |
| 	'thumb-width' 'y+'
 | |
| 	'thumb-height' 'E+'
 | |
| 	'limit-width' 'W+'
 | |
| 	'limit-height' 'H+'
 | |
| 	'bg'          'b+'
 | |
| 	'alpha'       'a+'
 | |
| 	'font'        'e+'
 | |
| 	'scale-down'  '.'
 | |
| 	'output-dir'  'j+'
 | |
| 	'wget-timestamp' 'G'
 | |
| 	'fontpath'    'C+'
 | |
| 	'image-bg'    'B+'
 | |
| 	'output'      'o'
 | |
| 	'output-only' 'O'
 | |
| 	'rcfile'      '_'
 | |
| 	'thumb-title' '~'
 | |
| 	'title'       '^'
 | |
| 	'start-at'    '|'
 | |
| 	'title-font'  '@'
 | |
| )
 | |
| 
 | |
| argument_postfix=(
 | |
| 	'help'        '[show help]'
 | |
| 	'version'     '[show version information]'
 | |
| 	'verbose'     '[be verbose]'
 | |
| 	'quiet'       '[suppress non-fatal errors]'
 | |
| 	'theme'       '[load named options from config]:theme:_feh_theme'
 | |
| 	'recursive'   '[recurse into subdirectories]'
 | |
| 	'randomize'   '[randomize file list before displaying]'
 | |
| 	'filelist'    '[read file list from this file]:file:_files'
 | |
| 	'preload'     '[eliminate unloadable images before displaying]'
 | |
| 	'full-screen' '[make the window fullscreen]'
 | |
| 	'geometry'    '[limit window size]:geometry: '
 | |
| 	'auto-zoom'   '[zoom picture to screen size]'
 | |
| 	'multiwindow' '[multiple windows, one image per window]'
 | |
| 	'borderless'  '[borderless windows]'
 | |
| 	'draw-filename' '[show filename in images]'
 | |
| 	'reload'      '[time delay for reloading]:time: '
 | |
| 	'keep-http'   "[don't delete cached files]"
 | |
| 	'builtin'     '[use builtin http client]'
 | |
| 	'list'        '[list images, their size, etc.]'
 | |
| 	'customlist'  '[format list output]:format: '
 | |
| 	'loadable'    '[print loadable images]'
 | |
| 	'unloadable'  '[print unloadable images]'
 | |
| 	'sort'        '[sort images]:sort type:(name filename width height pixels size format)'
 | |
| 	'reverse'     '[reverse sort order]'
 | |
| 	'action'      '[action to perform on each image]:shell: '
 | |
| 	'montage'     '[enable montage mode]'
 | |
| 	'collage'     '[enable collage mode]'
 | |
| 	'index'       '[enable index mode]'
 | |
| 	'fullindex'   '[enable verbose index mode]'
 | |
| 	'thumbnails'  '[enable interactive index mode]'
 | |
| 	'menu-font'   '[set font in menus]:font: '
 | |
| 	'no-menus'    "[don't load or show any menus]"
 | |
| 	'reload-button' '[button to reload image]:button:_feh_button'
 | |
| 	'pan-button'  '[button to pan image]:button:_feh_button'
 | |
| 	'zoom-button' '[button to zoom image]:button:_feh_button'
 | |
| 	'menu-button' '[button to activate menu]:button:_feh_button'
 | |
| 	'prev-button' '[button to go to previous image]:button:_feh_button'
 | |
| 	'next-button' '[button to go to next image]:button:_feh_button'
 | |
| 	'rotate-button' '[Ctrl+Button to rotate image]:button:_feh_button'
 | |
| 	'blur-button' '[Ctrl+Button tu blur image]:button:_feh_button'
 | |
| 	'ignore-aspect' "[montage mode: Don't preserve aspect ratio]"
 | |
| 	'stretch'     '[montage mode: Enlarge images to fit thumbnail size]'
 | |
| 	'thumb-width' '[montage mode: Thumbnail width]:pixels: '
 | |
| 	'thumb-height' '[montage mode: Thumbnail height]:pixels: '
 | |
| 	'limit-width' '[montage mode: Limit montage width]:pixels: '
 | |
| 	'limit-height' '[montage mode: Limit montage height]:pixels: '
 | |
| 	'bg'          '[montage mode: Background image]:file:_files'
 | |
| 	'alpha'       '[montage mode: Thumbnail transparency level]:integer: '
 | |
| 	'font'        '[index mode: Thumbnail info font]:font: '
 | |
| 	'slideshow-delay' '[slide change delay]:seconds'
 | |
| 	'scale-down'  '[scale down images which are too big]'
 | |
| 	'output-dir'  '[save files to DIR (with -k)]:directory:_files -/'
 | |
| 	'wget-timestamp' '[add no timestamp ("?123") to URLs]'
 | |
| 	'fontpath'    '[add paths to font path]:font path:_files -/'
 | |
| 	'image-bg'    '[set transparent image background]:background:(white black default)'
 | |
| 	'output'      '[montage mode: Output file]:file:_files'
 | |
| 	'output-only' "[montage mode: Output file, don't display montage]:file: files"
 | |
| 	'rcfile'      '[specify config file]:file:_files'
 | |
| 	'thumb-title' '[window title in thumbnail mode]:format string'
 | |
| 	'title'       '[window title in slideshow mode]:format string'
 | |
| 	'start-at'    '[start slideshow at]:file:_files'
 | |
| 	'title-font'  '[title font for index mode]:font'
 | |
| )
 | |
| 
 | |
| arguments=(
 | |
| 	'--zoom[zoom images]:percent: '
 | |
| 	'--caption-path[where to look for image captions]:relative directory: '
 | |
| 	--action{1..9}':shell: '
 | |
| 	'--bg-tile[set tiled desktop background]:file:_files'
 | |
| 	'--bg-center[set centered desktop background]:file:_files'
 | |
| 	'--bg-scale[set scaled desktop background]:file:_files'
 | |
| 	'--bg-seamless[set desktop background with seamless borders]:file:_files'
 | |
| 	'--bg-fill[set scaled desktop background, preserving aspect ratio]:file:_files'
 | |
| 	'--menu-style[style descriptor for menu text]:file:_files'
 | |
| 	'--menu-border[set menu background border]:integer: '
 | |
| 	'--menu-ctrl-mask[use Ctrl+Button to display menu]'
 | |
| 	'--no-rotate-ctrl-mask[don'\''t require Ctrl for the rotate button]'
 | |
| 	'--no-blur-ctrl-mask[don'\''t require Ctrl for the blur button]'
 | |
| 	'--no-xinerama[disable xinerama support]'
 | |
| 	'--screen-clip[toggle window clipping]'
 | |
| 	'--hide-pointer[hide mouse pointer in fullscreen mode]'
 | |
| 	'*--fontpath[index mode: directory to search for fonts]:directory:_path_files -/'
 | |
| 	'--index-name[show image name in index/thumbnail mode]:bool:(0 1)'
 | |
| 	'--index-size[show image size in index/thumbnail mode]:bool:(0 1)'
 | |
| 	'--index-dim[show image dimensions in index/thumbnail mode]:bool:(0 1)'
 | |
| 	'--no-jump-on-resort[stay at current image after resorting the filelist]'
 | |
| 	'--cycle-once[quit after one loop through the slideshow]'
 | |
| 	'--draw-actions[draw defined actions]'
 | |
| 	'--cache-thumbnails[enable thumbnail caching]'
 | |
| 	'--menu-bg[background image in menus]: :_feh_background'
 | |
| 	'--thumb-redraw[set thumbnail image redraw frequency]:digit'
 | |
| 	'*:file:_files'
 | |
| )
 | |
| 
 | |
| for arg in ${(k)argument_pairs}; {
 | |
| 	arguments+='(--'${arg}')-'${argument_pairs[$arg]}${argument_postfix[$arg]}
 | |
|  	arguments+='(-'${argument_pairs[$arg]}[1]')--'${arg}${argument_postfix[$arg]}
 | |
| }
 | |
| 
 | |
| function _feh_theme {
 | |
| 	if [[ -r ~/.fehrc ]]; then
 | |
| 		typeset -a themes tmp
 | |
| 		typeset theme IFS=$'\n'
 | |
| 		for theme in $(grep "\w" ~/.fehrc | grep -v "^#"); do
 | |
| 			tmp=(${(s: :)theme})
 | |
| 			theme=${tmp[1]}
 | |
| 			shift tmp
 | |
| 			themes+=${theme}:${(j: :)tmp}
 | |
| 		done
 | |
| 		_describe 'theme' themes
 | |
| 	fi
 | |
| }
 | |
| 
 | |
| function _feh_button {
 | |
| 	typeset expl
 | |
| 	_wanted button expl button \
 | |
| 	compadd {0..5}
 | |
| }
 | |
| 
 | |
| function _feh_background {
 | |
| 	_alternative \
 | |
| 	'file:file:_files' \
 | |
| 	'mode:mode:(trans)'
 | |
| }
 | |
| 
 | |
| _arguments -s ${arguments}
 |