summaryrefslogtreecommitdiff
path: root/etc/completions/_feh
blob: a0c0373328cf212be6a9b912d530b889a3cc9a5d (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
#compdef feh
## completion for feh 1.3.4.dfsg.1-1, based on feh(1)
## Daniel Friesel <derf@derf.homelinux.org>
## https://derf.homelinux.org/~derf/dotfiles/completion/_feh

typeset -a arguments
typeset -A argument_pairs argument_postfix
typeset arg expl lstate

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+'
)

argument_postfix=(
	'help'        '[Show help]'
	'version'     '[Show version information]'
	'verbose'     '[Be verbose]'
	'quiet'       '[Suppress non-fatal errors]'
	'theme'       '[Load named options from config]:theme:->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:->button'
	'zoom-button' '[Button to zoom image]:button:->button'
	'pan-button'  '[Ctrl+Button to pan image]:button:->button'
	'menu-button' '[Button to activate menu]:button:->button'
	'no-menu-ctrl-mask' '[Show Menu without pressing ctrl]'
	'rotate-button' '[Ctrl+Button to rotate image]:button:->button'
	'no-rotate-ctrl-mask' '[Rotate without pressing ctrl]'
	'blur-button' '[Ctrl+Button tu blur image]:button:->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'
)

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]: :->background'
	'--menu-border[Set menu background border]:integer: '
	'--no-pan-ctrl-mask[Pan without pressing ctrl]'
	'--xinerama[Toggle xinerama support]'
	'--screen-clip[Toggle window clipping]'
	'--hide-pointer[Hide mouse pointer in fullscreen mode]'
	'-o[montage mode: Output file]:file:_files'
	"-O[montage mode: Output file, don't display montage]:file:_files"
	'*--fontpath[index mode: directory to search for fonts]:directory:_path_files -/'
	'--title-font[index mode: title font]:font: '
	'*: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]}
}

_arguments -s $arguments

while [[ -n $state ]]; do
	lstate=$state
	state=''
	case $lstate in
		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
		;;
		button)
			_wanted button expl 'button' \
			compadd 1 2 3
		;;
		background)
			_alternative \
			'file:file:_files' \
			'mode:mode:(trans)'
		;;
	esac
done