summaryrefslogtreecommitdiff
path: root/etc/completions/_feh
blob: a48b9b088b86b2025ee537e01335a4d1736b066f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
#compdef feh
## completion for feh 1.3.4.dfsg.1-1, based on feh(1)
## Copyright (C) 2008, 2009 by Daniel Friesel <derf@derf.homelinux.org>
## License: WTFPL <http://sam.zoy.org/wtfpl>

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'
	'next-button' '1+'
	'zoom-button' '2+'
	'pan-button'  '3+'
	'menu-button' '4+'
	'no-menu-ctrl-mask' '5'
	'rotate-button' '6+'
	'no-rotate-ctrl-mask' '7'
	'blur-button' '8+'
	'no-blur-ctrl-mask' '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'
)

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 unlaodable 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]"
	'next-button' '[Button for next image]:button:_feh_button'
	'zoom-button' '[Button to zoom image]:button:_feh_button'
	'pan-button'  '[Ctrl+Button to pan image]:button:_feh_button'
	'menu-button' '[Button to activate menu]:button:_feh_button'
	'no-menu-ctrl-mask' '[Show Menu without pressing ctrl]'
	'rotate-button' '[Ctrl+Button to rotate image]:button:_feh_button'
	'no-rotate-ctrl-mask' '[Rotate without pressing ctrl]'
	'blur-button' '[Ctrl+Button tu blur image]:button:_feh_button'
	'no-blur-ctrl-mask' '[Blur without pressing ctrl]'
	'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 heihgt]: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"
)

arguments=(
	'--rcfile[Specify config file]:file:_files'
	'--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 scaled desktop background, preserving aspect]:file:_files'
	'--menu-style[Style descriptor for menu text]:file:_files'
	'--menu-bg[Background image in menus]: :_feh_background'
	'--menu-border[Set menu background border]:integer: '
	'--no-pan-ctrl-mask[Pan without pressing ctrl]'
	'--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 -/'
	'--title-font[index mode: title font]:font: '
	'--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]'
	'--title[slideshow mode: Set window title]:title: '
	'*: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 1 2 3
}

function _feh_background {
	_alternative \
	'file:file:_files' \
	'mode:mode:(trans)'
}

_arguments -s $arguments