1 MYMENU(1) - General Commands Manual
5 **mymenu** - simple menu for XOrg
11 \[**-p** *prompt*]
12 \[**-x** *coord*]
13 \[**-y** *coord*]
14 \[**-W** *width*]
15 \[**-H** *height*]
16 \[**-P** *padding*]
17 \[**-l** *layout*]
19 \[**-b** *borders*]
20 \[**-B** *colors*]
21 \[**-t** *color*]
22 \[**-T** *color*]
23 \[**-c** *color*]
24 \[**-C** *color*]
25 \[**-s** *color*]
26 \[**-S** *color*]
27 \[**-w** *window*]
33 utility a simple graphical menu for XOrg. It read the items from
35 and print the user selection to
39 The following options are available and take the maximum precedence
40 over the (respective) ones defined in the
41 **X Resource Database**
45 > Print a small usage message to stderr.
49 > Print version and exit.
53 > The first completion (if any) is always selected. This is like dmenu.
61 > Override the positioning on the X axis, parsed as the resource MyMenu.x
65 > Override the positioning on the Y axis, parsed as the resource MyMenu.y
69 > Override the padding. See the MyMenu.padding resource.
73 > Override the layout. Parsed as MyMenu.layout.
77 > Override the font. See MyMenu.font.
81 > Override the width. Parsed as MyMenu.width.
85 > Override the height. Parsed as MyMenu.height.
89 > Override the borders size. Parsed as MyMenu.border.size.
93 > Override the borders color. Parsed as MyMenu.border.color.
97 > Override the prompt foreground color. See MyMenu.prompt.foreground.
101 > Override the prompt background color. See MyMenu.prompt.background.
105 > Override the completion foreground color. See MyMenu.completion.foreground.
109 > Override the completion background color. See MyMenu.completion.background.
113 > Override the highlighted completion foreground color. See MyMenu.completion\_highlighted.foreground.
117 > Override the highlighted completion background color. See MyMenu.completion\_highlighted.background.
121 > Embed into the given window id.
127 > The font name to use. By default is set to "fixed" if compiled without
128 > Xft(3) support, "monospace" otherwise. Without Xft(3) only bitmap font
133 > The layout of the menu. The possible values are "horizontal" and
134 > "vertical", with the default being "horizontal". Every other value
135 > than "horizontal" is treated like "vertical", but this is kinda an
136 > implementation detail and not something to be relied on, since in the
137 > future other layout could be added as well.
141 > A string that is rendered before the user input. Default to "$ ".
145 > The width of the menu. If a numeric value is given (e.g. 400) is
146 > interpreted as pixel, if it ends with a percentage symbol \`%'
147 > (e.g. 40%) the relative percentage will be computed (relative to the
152 > The height of the menu. Like MyMenu.width if a numeric value is given
153 > is interpreted as pixel, if it ends with a percentage symbol \`%' the
154 > relative percentage will be computed (relative to the monitor height).
158 > The X coordinate of the topmost left corner of the window. Much like
159 > MyMenu.height and MyMenu.width both a pixel dimension and percentage
160 > could be supplied. In addition to it, some special value can be used.
168 > > Compute the correct value to make sure that mymenu will be
169 > > horizontally centered;
173 > > Compute the correct value to make sure that mymenu will be right
178 > The Y coordinate of the topmost left corner of the window. Like the X
179 > coordinate a pixel dimension, percentage dimension or the special
180 > value "start", "middle", "end" could be supplied.
184 > Change the padding. In the horizontal layout the padding is the space
185 > between the rectangle of the completion and the text as well as the
186 > space between the prompt and the first completion. In the horizontal
187 > layout the padding is the horizontal spacing between the window edge
188 > and the text as well as the space up and down the text within the
189 > completion. The default value is 10.
193 > A list of number separated by spaces to specify the border of the
194 > window. The field is parsed like some CSS properties (i.e. padding),
195 > that is: if only one value is provided then it'll be used for all
196 > borders; if two value are given than the first will be used for the
197 > top and bottom border and the former for the left and right border;
198 > with three value the first is used for the top border, the second for
199 > the left and right border and the third for the bottom border. If four
200 > value are given, they'll be applied to the respective border
201 > clockwise. Other values will be ignored. The default value is 0.
205 > A list of colors for the borders. This field is parsed like the
206 > MyMenu.border.size. The default value is black.
208 MyMenu.prompt.background
210 > The background of the prompt.
212 MyMenu.prompt.foreground
214 > The text color (foreground) of the prompt.
216 MyMenu.completion.background
218 > The background of the completions.
220 MyMenu.completion.foreground
222 > The text color of the completions.
224 MyMenu.completion\_highlighted.background
226 > The background of the selected completion.
228 MyMenu.completion\_highlighted.foreground
230 > The foreground of the selected completion.
234 This is the list of keybinding recognized by
236 In the following examples, C-c means Control-c.
240 > Close the menu without selecting any entry
248 > Close the menu and print to stdout what the user typed
256 > Expand the prompt to the next possible completion
260 > Expand the prompt to the previous possible completion
268 > The same as Shift-Tab
272 > Delete the last character
276 > The same as Backspace
280 > Delete the last word
284 > Delete the whole line
288 > Toggle the \`\`first selected'' style. Sometimes, especially with the -a
289 > option, could be handy to disable that behaviour. Let's say that
290 > you've typed \`\`fire'' and the first completion is \`\`firefox'' but you
291 > really want to choose \`\`fire''. While you can type some spaces, this
292 > keybinding is a more elegant way to change, at runtime, the behaviour
293 > of the first completion.
297 * If, instead of a numeric value, a not-valid number that terminates
298 with the % sign is supplied, then the default value for that field
299 will be treated as a percentage. Since this is a misuse of the
300 resources this behavior isn't strictly considered a bug.
302 * C-w (delete last word) does not work well with multi-byte string. The
303 whole UTF-8 support is still kinda naïve and should be improved.
305 * Keep in mind that sometimes the order of the options matter. First are
306 parsed (if any) the xrdb options, then the command line flags
307 **in the provided order!**
308 That meas that if you're providing first the x coordinate, let's say
311 you are overriding the width, the window
315 As a general rule of thumb, if you're overriding the width and/or the
316 height of the window, remember to override the x and y coordinates as
321 0 when the user select an entry, 1 when the user press Esc, EX\_USAGE
322 if used with wrong flags and EX\_UNAVAILABLE if the connection to X
332 Omar Polo <omar.polo@europecom.net>
334 OpenBSD 6.3 - July 15, 2018