Blame


1 f5e234d6 2018-05-18 omar.polo .Dd $Mdocdate$
2 f5e234d6 2018-05-18 omar.polo .Dt MYMENU 1
3 f5e234d6 2018-05-18 omar.polo .Os
4 f5e234d6 2018-05-18 omar.polo .Sh NAME
5 f5e234d6 2018-05-18 omar.polo .Nm mymenu
6 f5e234d6 2018-05-18 omar.polo .Nd simple menu for XOrg
7 ae801529 2018-07-13 omar.polo .Sh SYNOPSIS
8 ae801529 2018-07-13 omar.polo .Nm
9 ae801529 2018-07-13 omar.polo .Bk -words
10 0dee1b65 2018-08-13 omar.polo .Op Fl Aamvh
11 54fabaa4 2018-09-16 omar.polo .Op Fl B Ar colors
12 54fabaa4 2018-09-16 omar.polo .Op Fl b Ar borders
13 54fabaa4 2018-09-16 omar.polo .Op Fl C Ar color
14 54fabaa4 2018-09-16 omar.polo .Op Fl c Ar color
15 54fabaa4 2018-09-16 omar.polo .Op Fl d Ar separator
16 54fabaa4 2018-09-16 omar.polo .Op Fl e Ar window
17 54fabaa4 2018-09-16 omar.polo .Op Fl f Ar font
18 844addbb 2018-07-15 omar.polo .Op Fl H Ar height
19 ae801529 2018-07-13 omar.polo .Op Fl l Ar layout
20 54fabaa4 2018-09-16 omar.polo .Op Fl P Ar padding
21 54fabaa4 2018-09-16 omar.polo .Op Fl p Ar prompt
22 ae801529 2018-07-13 omar.polo .Op Fl T Ar color
23 54fabaa4 2018-09-16 omar.polo .Op Fl t Ar color
24 ae801529 2018-07-13 omar.polo .Op Fl S Ar color
25 54fabaa4 2018-09-16 omar.polo .Op Fl s Ar color
26 54fabaa4 2018-09-16 omar.polo .Op Fl W Ar width
27 54fabaa4 2018-09-16 omar.polo .Op Fl x Ar coord
28 54fabaa4 2018-09-16 omar.polo .Op Fl y Ar coord
29 ae801529 2018-07-13 omar.polo .Ek
30 f5e234d6 2018-05-18 omar.polo .Sh DESCRIPTION
31 f5e234d6 2018-05-18 omar.polo The
32 f5e234d6 2018-05-18 omar.polo .Nm
33 f5e234d6 2018-05-18 omar.polo utility a simple graphical menu for XOrg. It read the items from
34 f5e234d6 2018-05-18 omar.polo .Ic stdin
35 f5e234d6 2018-05-18 omar.polo and print the user selection to
36 f5e234d6 2018-05-18 omar.polo .Ic stdout
37 f5e234d6 2018-05-18 omar.polo on exit.
38 ae801529 2018-07-13 omar.polo
39 ae801529 2018-07-13 omar.polo The following options are available and take the maximum precedence
40 ae801529 2018-07-13 omar.polo over the (respective) ones defined in the
41 ae801529 2018-07-13 omar.polo .Sy X Resource Database
42 ae801529 2018-07-13 omar.polo .Bl -tag -width indent-two
43 3518f203 2018-07-21 omar.polo .It Fl A
44 3518f203 2018-07-21 omar.polo The user must chose one of the option (or none) and is not able to
45 3518f203 2018-07-21 omar.polo arbitrary enter text
46 54fabaa4 2018-09-16 omar.polo .It Fl a
47 54fabaa4 2018-09-16 omar.polo The first completion (if any) is always selected. This is like dmenu.
48 ae801529 2018-07-13 omar.polo .It Fl B Ar colors
49 ae801529 2018-07-13 omar.polo Override the borders color. Parsed as MyMenu.border.color.
50 54fabaa4 2018-09-16 omar.polo .It Fl b Ar borders
51 54fabaa4 2018-09-16 omar.polo Override the borders size. Parsed as MyMenu.border.size.
52 ae801529 2018-07-13 omar.polo .It Fl C Ar color
53 3518f203 2018-07-21 omar.polo Override the completion background color. See
54 3518f203 2018-07-21 omar.polo MyMenu.completion.background.
55 54fabaa4 2018-09-16 omar.polo .It Fl c Ar color
56 54fabaa4 2018-09-16 omar.polo Override the completion foreground color. See
57 54fabaa4 2018-09-16 omar.polo MyMenu.completion.foreground.
58 54fabaa4 2018-09-16 omar.polo .It Fl d Ar separator
59 54fabaa4 2018-09-16 omar.polo Define a string to be used as a separator. Only the text after the
60 54fabaa4 2018-09-16 omar.polo separator will be rendered, but the original string will be
61 54fabaa4 2018-09-16 omar.polo returned. Useful to embed custom data on every entry. See the mpd
62 54fabaa4 2018-09-16 omar.polo example for hints on how this can be useful.
63 54fabaa4 2018-09-16 omar.polo .It Fl e Ar windowid
64 54fabaa4 2018-09-16 omar.polo Embed into the given window id.
65 54fabaa4 2018-09-16 omar.polo .It Fl H Ar val
66 54fabaa4 2018-09-16 omar.polo Override the height. Parsed as MyMenu.height.
67 54fabaa4 2018-09-16 omar.polo .It Fl h
68 54fabaa4 2018-09-16 omar.polo Print a small usage message to stderr.
69 54fabaa4 2018-09-16 omar.polo .It Fl f Ar font
70 54fabaa4 2018-09-16 omar.polo Override the font. See MyMenu.font.
71 54fabaa4 2018-09-16 omar.polo .It Fl l Ar layout
72 54fabaa4 2018-09-16 omar.polo Override the layout. Parsed as MyMenu.layout.
73 54fabaa4 2018-09-16 omar.polo .It Fl m
74 54fabaa4 2018-09-16 omar.polo The user can select multiple entry via C-m. Please consult
75 845963e5 2018-09-16 omar.polo .Sx KEYS
76 845963e5 2018-09-16 omar.polo for more info.
77 54fabaa4 2018-09-16 omar.polo .It Fl P Ar padding
78 54fabaa4 2018-09-16 omar.polo Override the padding. See the MyMenu.padding resource.
79 54fabaa4 2018-09-16 omar.polo .It Fl p Ar prompt
80 54fabaa4 2018-09-16 omar.polo Override the prompt
81 ae801529 2018-07-13 omar.polo .It Fl S Ar color
82 3518f203 2018-07-21 omar.polo Override the highlighted completion background color. See
83 3518f203 2018-07-21 omar.polo MyMenu.completion_highlighted.background.
84 54fabaa4 2018-09-16 omar.polo .It Fl s Ar color
85 54fabaa4 2018-09-16 omar.polo Override the highlighted completion foreground color. See
86 54fabaa4 2018-09-16 omar.polo MyMenu.completion_highlighted.foreground.
87 54fabaa4 2018-09-16 omar.polo .It Fl T Ar color
88 54fabaa4 2018-09-16 omar.polo Override the prompt background color. See MyMenu.prompt.background.
89 54fabaa4 2018-09-16 omar.polo .It Fl t Ar color
90 54fabaa4 2018-09-16 omar.polo Override the prompt foreground color. See MyMenu.prompt.foreground.
91 54fabaa4 2018-09-16 omar.polo .It Fl v
92 54fabaa4 2018-09-16 omar.polo Print version and exit.
93 54fabaa4 2018-09-16 omar.polo .It Fl W Ar val
94 54fabaa4 2018-09-16 omar.polo Override the width. Parsed as MyMenu.width.
95 54fabaa4 2018-09-16 omar.polo .It Fl x Ar val
96 54fabaa4 2018-09-16 omar.polo Override the positioning on the X axis, parsed as the resource MyMenu.x
97 54fabaa4 2018-09-16 omar.polo .It Fl y Ar val
98 54fabaa4 2018-09-16 omar.polo Override the positioning on the Y axis, parsed as the resource MyMenu.y
99 8d9debb1 2018-06-07 omar.polo .El
100 f5e234d6 2018-05-18 omar.polo .Sh RESOURCES
101 f5e234d6 2018-05-18 omar.polo .Bl -tag -width Ds
102 f5e234d6 2018-05-18 omar.polo .It MyMenu.font
103 9e94fcbe 2018-05-22 omar.polo The font name to use. By default is set to "fixed" if compiled without
104 9e94fcbe 2018-05-22 omar.polo Xft(3) support, "monospace" otherwise. Without Xft(3) only bitmap font
105 9e94fcbe 2018-05-22 omar.polo are supported.
106 36a15a9f 2018-05-19 omar.polo .It MyMenu.layout
107 36a15a9f 2018-05-19 omar.polo The layout of the menu. The possible values are "horizontal" and
108 36a15a9f 2018-05-19 omar.polo "vertical", with the default being "horizontal". Every other value
109 36a15a9f 2018-05-19 omar.polo than "horizontal" is treated like "vertical", but this is kinda an
110 36a15a9f 2018-05-19 omar.polo implementation detail and not something to be relied on, since in the
111 8758854a 2018-05-20 omar.polo future other layout could be added as well.
112 8758854a 2018-05-20 omar.polo .It Mymenu.prompt
113 8758854a 2018-05-20 omar.polo A string that is rendered before the user input. Default to "$ ".
114 f5e234d6 2018-05-18 omar.polo .It MyMenu.width
115 f5e234d6 2018-05-18 omar.polo The width of the menu. If a numeric value is given (e.g. 400) is
116 f5e234d6 2018-05-18 omar.polo interpreted as pixel, if it ends with a percentage symbol `%'
117 f5e234d6 2018-05-18 omar.polo (e.g. 40%) the relative percentage will be computed (relative to the
118 8758854a 2018-05-20 omar.polo monitor width).
119 f5e234d6 2018-05-18 omar.polo .It MyMenu.height
120 f5e234d6 2018-05-18 omar.polo The height of the menu. Like MyMenu.width if a numeric value is given
121 f5e234d6 2018-05-18 omar.polo is interpreted as pixel, if it ends with a percentage symbol `%' the
122 8758854a 2018-05-20 omar.polo relative percentage will be computed (relative to the monitor height).
123 f5e234d6 2018-05-18 omar.polo .It MyMenu.x
124 f5e234d6 2018-05-18 omar.polo The X coordinate of the topmost left corner of the window. Much like
125 f5e234d6 2018-05-18 omar.polo MyMenu.height and MyMenu.width both a pixel dimension and percentage
126 8e122ff1 2018-07-13 omar.polo could be supplied. In addition to it, some special value can be used.
127 8e122ff1 2018-07-13 omar.polo .Bl -tag
128 8e122ff1 2018-07-13 omar.polo .It start
129 8e122ff1 2018-07-13 omar.polo Alias for 0;
130 8e122ff1 2018-07-13 omar.polo .It middle
131 8e122ff1 2018-07-13 omar.polo Compute the correct value to make sure that mymenu will be
132 8e122ff1 2018-07-13 omar.polo horizontally centered;
133 8e122ff1 2018-07-13 omar.polo .It end
134 8e122ff1 2018-07-13 omar.polo Compute the correct value to make sure that mymenu will be right
135 8e122ff1 2018-07-13 omar.polo aligned.
136 8e122ff1 2018-07-13 omar.polo .El
137 f5e234d6 2018-05-18 omar.polo .It MyMenu.y
138 f5e234d6 2018-05-18 omar.polo The Y coordinate of the topmost left corner of the window. Like the X
139 e5186d6b 2018-05-26 omar.polo coordinate a pixel dimension, percentage dimension or the special
140 8e122ff1 2018-07-13 omar.polo value "start", "middle", "end" could be supplied.
141 e5186d6b 2018-05-26 omar.polo .It MyMenu.padding
142 e5186d6b 2018-05-26 omar.polo Change the padding. In the horizontal layout the padding is the space
143 e5186d6b 2018-05-26 omar.polo between the rectangle of the completion and the text as well as the
144 e5186d6b 2018-05-26 omar.polo space between the prompt and the first completion. In the horizontal
145 e5186d6b 2018-05-26 omar.polo layout the padding is the horizontal spacing between the window edge
146 e5186d6b 2018-05-26 omar.polo and the text as well as the space up and down the text within the
147 e5186d6b 2018-05-26 omar.polo completion. The default value is 10.
148 500ca6c1 2018-07-08 omar.polo .It MyMenu.border.size
149 500ca6c1 2018-07-08 omar.polo A list of number separated by spaces to specify the border of the
150 500ca6c1 2018-07-08 omar.polo window. The field is parsed like some CSS properties (i.e. padding),
151 500ca6c1 2018-07-08 omar.polo that is: if only one value is provided then it'll be used for all
152 500ca6c1 2018-07-08 omar.polo borders; if two value are given than the first will be used for the
153 500ca6c1 2018-07-08 omar.polo top and bottom border and the former for the left and right border;
154 500ca6c1 2018-07-08 omar.polo with three value the first is used for the top border, the second for
155 500ca6c1 2018-07-08 omar.polo the left and right border and the third for the bottom border. If four
156 500ca6c1 2018-07-08 omar.polo value are given, they'll be applied to the respective border
157 500ca6c1 2018-07-08 omar.polo clockwise. Other values will be ignored. The default value is 0.
158 500ca6c1 2018-07-08 omar.polo .It MyMenu.border.color
159 500ca6c1 2018-07-08 omar.polo A list of colors for the borders. This field is parsed like the
160 500ca6c1 2018-07-08 omar.polo MyMenu.border.size. The default value is black.
161 f5e234d6 2018-05-18 omar.polo .It MyMenu.prompt.background
162 8758854a 2018-05-20 omar.polo The background of the prompt.
163 f5e234d6 2018-05-18 omar.polo .It MyMenu.prompt.foreground
164 8758854a 2018-05-20 omar.polo The text color (foreground) of the prompt.
165 f5e234d6 2018-05-18 omar.polo .It MyMenu.completion.background
166 8758854a 2018-05-20 omar.polo The background of the completions.
167 f5e234d6 2018-05-18 omar.polo .It MyMenu.completion.foreground
168 8758854a 2018-05-20 omar.polo The text color of the completions.
169 f5e234d6 2018-05-18 omar.polo .It MyMenu.completion_highlighted.background
170 8758854a 2018-05-20 omar.polo The background of the selected completion.
171 f5e234d6 2018-05-18 omar.polo .It MyMenu.completion_highlighted.foreground
172 8758854a 2018-05-20 omar.polo The foreground of the selected completion.
173 f5e234d6 2018-05-18 omar.polo .El
174 54fabaa4 2018-09-16 omar.polo .Sh COLORS
175 54fabaa4 2018-09-16 omar.polo MyMenu accept colors only in the form of:
176 54fabaa4 2018-09-16 omar.polo .Bl -bullet
177 54fabaa4 2018-09-16 omar.polo .It
178 54fabaa4 2018-09-16 omar.polo #rgb
179 54fabaa4 2018-09-16 omar.polo .It
180 54fabaa4 2018-09-16 omar.polo #rrggbb
181 54fabaa4 2018-09-16 omar.polo .It
182 54fabaa4 2018-09-16 omar.polo #aarrggbb
183 54fabaa4 2018-09-16 omar.polo .El
184 f5e234d6 2018-05-18 omar.polo
185 54fabaa4 2018-09-16 omar.polo The opacity is assumed 0xff (no transparency) if not provided.
186 f5e234d6 2018-05-18 omar.polo .Sh KEYS
187 bee0837c 2018-07-01 omar.polo This is the list of keybinding recognized by
188 bee0837c 2018-07-01 omar.polo .Li Nm Ns .
189 bee0837c 2018-07-01 omar.polo In the following examples, C-c means Control-c.
190 f5e234d6 2018-05-18 omar.polo .Bl -tag -width indent-two
191 f5e234d6 2018-05-18 omar.polo .It Esc
192 f5e234d6 2018-05-18 omar.polo Close the menu without selecting any entry
193 bee0837c 2018-07-01 omar.polo .It C-c
194 bee0837c 2018-07-01 omar.polo The same as Esc
195 f5e234d6 2018-05-18 omar.polo .It Enter
196 f5e234d6 2018-05-18 omar.polo Close the menu and print to stdout what the user typed
197 347d23da 2018-05-19 omar.polo .It C-m
198 0dee1b65 2018-08-13 omar.polo Confirm but keep looping (if enabled), otherwise complete only
199 f5e234d6 2018-05-18 omar.polo .It Tab
200 f5e234d6 2018-05-18 omar.polo Expand the prompt to the next possible completion
201 f5e234d6 2018-05-18 omar.polo .It Shift Tab
202 f5e234d6 2018-05-18 omar.polo Expand the prompt to the previous possible completion
203 8ecd98cc 2018-05-25 omar.polo .It C-n
204 8ecd98cc 2018-05-25 omar.polo The same as Tab
205 8ecd98cc 2018-05-25 omar.polo .It C-p
206 8ecd98cc 2018-05-25 omar.polo The same as Shift-Tab
207 f5e234d6 2018-05-18 omar.polo .It Backspace
208 f5e234d6 2018-05-18 omar.polo Delete the last character
209 347d23da 2018-05-19 omar.polo .It C-h
210 347d23da 2018-05-19 omar.polo The same as Backspace
211 347d23da 2018-05-19 omar.polo .It C-w
212 347d23da 2018-05-19 omar.polo Delete the last word
213 347d23da 2018-05-19 omar.polo .It C-u
214 347d23da 2018-05-19 omar.polo Delete the whole line
215 6254fed8 2018-07-06 omar.polo .It C-i
216 6254fed8 2018-07-06 omar.polo Toggle the ``first selected'' style. Sometimes, especially with the -a
217 6254fed8 2018-07-06 omar.polo option, could be handy to disable that behaviour. Let's say that
218 6254fed8 2018-07-06 omar.polo you've typed ``fire'' and the first completion is ``firefox'' but you
219 6254fed8 2018-07-06 omar.polo really want to choose ``fire''. While you can type some spaces, this
220 6254fed8 2018-07-06 omar.polo keybinding is a more elegant way to change, at runtime, the behaviour
221 6254fed8 2018-07-06 omar.polo of the first completion.
222 f5e234d6 2018-05-18 omar.polo .El
223 3518f203 2018-07-21 omar.polo .Sh EXIT STATUS
224 3518f203 2018-07-21 omar.polo 0 when the user select an entry, 1 when the user press Esc, EX_USAGE
225 3518f203 2018-07-21 omar.polo if used with wrong flags and EX_UNAVAILABLE if the connection to X
226 3518f203 2018-07-21 omar.polo fails.
227 3518f203 2018-07-21 omar.polo .Sh EXAMPLES
228 3518f203 2018-07-21 omar.polo .Bl -bullet -bullet
229 3518f203 2018-07-21 omar.polo .It
230 3518f203 2018-07-21 omar.polo Create a simple menu with a couple of entry
231 3518f203 2018-07-21 omar.polo .Bd -literal -offset indent
232 3518f203 2018-07-21 omar.polo cat <<EOF | $SHELL -c "$(mymenu -p "Exec: ")"
233 3518f203 2018-07-21 omar.polo firefox
234 3518f203 2018-07-21 omar.polo zzz
235 3518f203 2018-07-21 omar.polo xcalc -stipple
236 3518f203 2018-07-21 omar.polo xlock
237 3518f203 2018-07-21 omar.polo gimp
238 3518f203 2018-07-21 omar.polo EOF
239 3518f203 2018-07-21 omar.polo .Ed
240 3518f203 2018-07-21 omar.polo .It
241 3518f203 2018-07-21 omar.polo Select and play a song from the current mpd playlist
242 3518f203 2018-07-21 omar.polo .Bd -literal -offset indent
243 630eb368 2018-09-19 omar.polo fmt="%position% %artist% - %title%"
244 630eb368 2018-09-19 omar.polo if song=$(mpc playlist -f "$fmt" | mymenu -p "Song: " -A -d " "); then
245 630eb368 2018-09-19 omar.polo mpc play $(echo $song | sed "s/ .*$//")
246 3518f203 2018-07-21 omar.polo fi
247 3518f203 2018-07-21 omar.polo .Ed
248 3518f203 2018-07-21 omar.polo .El
249 3518f203 2018-07-21 omar.polo
250 3518f203 2018-07-21 omar.polo .Sh SEE ALSO
251 3518f203 2018-07-21 omar.polo .Xr dmenu 1
252 3518f203 2018-07-21 omar.polo .Xr sysexits 3
253 3518f203 2018-07-21 omar.polo
254 3518f203 2018-07-21 omar.polo .Sh AUTHORS
255 3518f203 2018-07-21 omar.polo .An Omar Polo <omar.polo@europecom.net>
256 3518f203 2018-07-21 omar.polo
257 0dee1b65 2018-08-13 omar.polo .Sh CAVEATS
258 f5e234d6 2018-05-18 omar.polo .Bl -bullet
259 f5e234d6 2018-05-18 omar.polo .It
260 f5e234d6 2018-05-18 omar.polo If, instead of a numeric value, a not-valid number that terminates
261 f5e234d6 2018-05-18 omar.polo with the % sign is supplied, then the default value for that field
262 f5e234d6 2018-05-18 omar.polo will be treated as a percentage. Since this is a misuse of the
263 f5e234d6 2018-05-18 omar.polo resources this behavior isn't strictly considered a bug.
264 9e94fcbe 2018-05-22 omar.polo .It
265 ae801529 2018-07-13 omar.polo Keep in mind that sometimes the order of the options matter. First are
266 ae801529 2018-07-13 omar.polo parsed (if any) the xrdb options, then the command line flags
267 ae801529 2018-07-13 omar.polo .Sy in the provided order!
268 ae801529 2018-07-13 omar.polo That meas that if you're providing first the x coordinate, let's say
269 ae801529 2018-07-13 omar.polo "middle", and
270 ae801529 2018-07-13 omar.polo .Sy after that
271 ae801529 2018-07-13 omar.polo you are overriding the width, the window
272 ae801529 2018-07-13 omar.polo .Sy will not be
273 ae801529 2018-07-13 omar.polo centered.
274 ae801529 2018-07-13 omar.polo
275 ae801529 2018-07-13 omar.polo As a general rule of thumb, if you're overriding the width and/or the
276 ae801529 2018-07-13 omar.polo height of the window, remember to override the x and y coordinates as
277 ae801529 2018-07-13 omar.polo well.
278 f5e234d6 2018-05-18 omar.polo .El