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 ae801529 2018-07-13 omar.polo .Op Fl hva
11 ae801529 2018-07-13 omar.polo .Op Fl p Ar prompt
12 ae801529 2018-07-13 omar.polo .Op Fl x Ar coord
13 ae801529 2018-07-13 omar.polo .Op Fl y Ar coord
14 844addbb 2018-07-15 omar.polo .Op Fl W Ar width
15 844addbb 2018-07-15 omar.polo .Op Fl H Ar height
16 ae801529 2018-07-13 omar.polo .Op Fl P Ar padding
17 ae801529 2018-07-13 omar.polo .Op Fl l Ar layout
18 ae801529 2018-07-13 omar.polo .Op Fl f Ar font
19 ae801529 2018-07-13 omar.polo .Op Fl b Ar borders
20 844addbb 2018-07-15 omar.polo .Op Fl B Ar colors
21 ae801529 2018-07-13 omar.polo .Op Fl t Ar color
22 ae801529 2018-07-13 omar.polo .Op Fl T Ar color
23 ae801529 2018-07-13 omar.polo .Op Fl c Ar color
24 ae801529 2018-07-13 omar.polo .Op Fl C Ar color
25 ae801529 2018-07-13 omar.polo .Op Fl s Ar color
26 ae801529 2018-07-13 omar.polo .Op Fl S Ar color
27 844addbb 2018-07-15 omar.polo .Op Fl w Ar window
28 ae801529 2018-07-13 omar.polo .Ek
29 f5e234d6 2018-05-18 omar.polo .Sh DESCRIPTION
30 f5e234d6 2018-05-18 omar.polo The
31 f5e234d6 2018-05-18 omar.polo .Nm
32 f5e234d6 2018-05-18 omar.polo utility a simple graphical menu for XOrg. It read the items from
33 f5e234d6 2018-05-18 omar.polo .Ic stdin
34 f5e234d6 2018-05-18 omar.polo and print the user selection to
35 f5e234d6 2018-05-18 omar.polo .Ic stdout
36 f5e234d6 2018-05-18 omar.polo on exit.
37 ae801529 2018-07-13 omar.polo
38 ae801529 2018-07-13 omar.polo The following options are available and take the maximum precedence
39 ae801529 2018-07-13 omar.polo over the (respective) ones defined in the
40 ae801529 2018-07-13 omar.polo .Sy X Resource Database
41 ae801529 2018-07-13 omar.polo .Bl -tag -width indent-two
42 b500fe86 2018-06-07 omar.polo .It Fl h
43 b500fe86 2018-06-07 omar.polo Print a small usage message to stderr.
44 b500fe86 2018-06-07 omar.polo .It Fl v
45 b500fe86 2018-06-07 omar.polo Print version and exit.
46 ae801529 2018-07-13 omar.polo .It Fl a
47 ae801529 2018-07-13 omar.polo The first completion (if any) is always selected. This is like dmenu.
48 ae801529 2018-07-13 omar.polo .It Fl p Ar prompt
49 ae801529 2018-07-13 omar.polo Override the prompt
50 ae801529 2018-07-13 omar.polo .It Fl x Ar val
51 ae801529 2018-07-13 omar.polo Override the positioning on the X axis, parsed as the resource MyMenu.x
52 ae801529 2018-07-13 omar.polo .It Fl y Ar val
53 ae801529 2018-07-13 omar.polo Override the positioning on the Y axis, parsed as the resource MyMenu.y
54 ae801529 2018-07-13 omar.polo .It Fl P Ar padding
55 ae801529 2018-07-13 omar.polo Override the padding. See the MyMenu.padding resource.
56 ae801529 2018-07-13 omar.polo .It Fl l Ar layout
57 ae801529 2018-07-13 omar.polo Override the layout. Parsed as MyMenu.layout.
58 ae801529 2018-07-13 omar.polo .It Fl f Ar font
59 ae801529 2018-07-13 omar.polo Override the font. See MyMenu.font.
60 ae801529 2018-07-13 omar.polo .It Fl w Ar val
61 ae801529 2018-07-13 omar.polo Override the width. Parsed as MyMenu.width.
62 ae801529 2018-07-13 omar.polo .It Fl h Ar val
63 ae801529 2018-07-13 omar.polo Override the height. Parsed as MyMenu.height.
64 ae801529 2018-07-13 omar.polo .It Fl b Ar borders
65 ae801529 2018-07-13 omar.polo Override the borders size. Parsed as MyMenu.border.size.
66 ae801529 2018-07-13 omar.polo .It Fl B Ar colors
67 ae801529 2018-07-13 omar.polo Override the borders color. Parsed as MyMenu.border.color.
68 ae801529 2018-07-13 omar.polo .It Fl t Ar color
69 ae801529 2018-07-13 omar.polo Override the prompt foreground color. See MyMenu.prompt.foreground.
70 ae801529 2018-07-13 omar.polo .It Fl T Ar color
71 ae801529 2018-07-13 omar.polo Override the prompt background color. See MyMenu.prompt.background.
72 ae801529 2018-07-13 omar.polo .It Fl c Ar color
73 ae801529 2018-07-13 omar.polo Override the completion foreground color. See MyMenu.completion.foreground.
74 ae801529 2018-07-13 omar.polo .It Fl C Ar color
75 ae801529 2018-07-13 omar.polo Override the completion background color. See MyMenu.completion.background.
76 ae801529 2018-07-13 omar.polo .It Fl s Ar color
77 ae801529 2018-07-13 omar.polo Override the highlighted completion foreground color. See MyMenu.completion_highlighted.foreground.
78 ae801529 2018-07-13 omar.polo .It Fl S Ar color
79 ae801529 2018-07-13 omar.polo Override the highlighted completion background color. See MyMenu.completion_highlighted.background.
80 844addbb 2018-07-15 omar.polo .It Fl w Ar window
81 844addbb 2018-07-15 omar.polo Embed into the given window id.
82 8d9debb1 2018-06-07 omar.polo .El
83 f5e234d6 2018-05-18 omar.polo .Sh RESOURCES
84 f5e234d6 2018-05-18 omar.polo .Bl -tag -width Ds
85 f5e234d6 2018-05-18 omar.polo .It MyMenu.font
86 9e94fcbe 2018-05-22 omar.polo The font name to use. By default is set to "fixed" if compiled without
87 9e94fcbe 2018-05-22 omar.polo Xft(3) support, "monospace" otherwise. Without Xft(3) only bitmap font
88 9e94fcbe 2018-05-22 omar.polo are supported.
89 36a15a9f 2018-05-19 omar.polo .It MyMenu.layout
90 36a15a9f 2018-05-19 omar.polo The layout of the menu. The possible values are "horizontal" and
91 36a15a9f 2018-05-19 omar.polo "vertical", with the default being "horizontal". Every other value
92 36a15a9f 2018-05-19 omar.polo than "horizontal" is treated like "vertical", but this is kinda an
93 36a15a9f 2018-05-19 omar.polo implementation detail and not something to be relied on, since in the
94 8758854a 2018-05-20 omar.polo future other layout could be added as well.
95 8758854a 2018-05-20 omar.polo .It Mymenu.prompt
96 8758854a 2018-05-20 omar.polo A string that is rendered before the user input. Default to "$ ".
97 f5e234d6 2018-05-18 omar.polo .It MyMenu.width
98 f5e234d6 2018-05-18 omar.polo The width of the menu. If a numeric value is given (e.g. 400) is
99 f5e234d6 2018-05-18 omar.polo interpreted as pixel, if it ends with a percentage symbol `%'
100 f5e234d6 2018-05-18 omar.polo (e.g. 40%) the relative percentage will be computed (relative to the
101 8758854a 2018-05-20 omar.polo monitor width).
102 f5e234d6 2018-05-18 omar.polo .It MyMenu.height
103 f5e234d6 2018-05-18 omar.polo The height of the menu. Like MyMenu.width if a numeric value is given
104 f5e234d6 2018-05-18 omar.polo is interpreted as pixel, if it ends with a percentage symbol `%' the
105 8758854a 2018-05-20 omar.polo relative percentage will be computed (relative to the monitor height).
106 f5e234d6 2018-05-18 omar.polo .It MyMenu.x
107 f5e234d6 2018-05-18 omar.polo The X coordinate of the topmost left corner of the window. Much like
108 f5e234d6 2018-05-18 omar.polo MyMenu.height and MyMenu.width both a pixel dimension and percentage
109 8e122ff1 2018-07-13 omar.polo could be supplied. In addition to it, some special value can be used.
110 8e122ff1 2018-07-13 omar.polo .Bl -tag
111 8e122ff1 2018-07-13 omar.polo .It start
112 8e122ff1 2018-07-13 omar.polo Alias for 0;
113 8e122ff1 2018-07-13 omar.polo .It middle
114 8e122ff1 2018-07-13 omar.polo Compute the correct value to make sure that mymenu will be
115 8e122ff1 2018-07-13 omar.polo horizontally centered;
116 8e122ff1 2018-07-13 omar.polo .It end
117 8e122ff1 2018-07-13 omar.polo Compute the correct value to make sure that mymenu will be right
118 8e122ff1 2018-07-13 omar.polo aligned.
119 8e122ff1 2018-07-13 omar.polo .El
120 f5e234d6 2018-05-18 omar.polo .It MyMenu.y
121 f5e234d6 2018-05-18 omar.polo The Y coordinate of the topmost left corner of the window. Like the X
122 e5186d6b 2018-05-26 omar.polo coordinate a pixel dimension, percentage dimension or the special
123 8e122ff1 2018-07-13 omar.polo value "start", "middle", "end" could be supplied.
124 e5186d6b 2018-05-26 omar.polo .It MyMenu.padding
125 e5186d6b 2018-05-26 omar.polo Change the padding. In the horizontal layout the padding is the space
126 e5186d6b 2018-05-26 omar.polo between the rectangle of the completion and the text as well as the
127 e5186d6b 2018-05-26 omar.polo space between the prompt and the first completion. In the horizontal
128 e5186d6b 2018-05-26 omar.polo layout the padding is the horizontal spacing between the window edge
129 e5186d6b 2018-05-26 omar.polo and the text as well as the space up and down the text within the
130 e5186d6b 2018-05-26 omar.polo completion. The default value is 10.
131 500ca6c1 2018-07-08 omar.polo .It MyMenu.border.size
132 500ca6c1 2018-07-08 omar.polo A list of number separated by spaces to specify the border of the
133 500ca6c1 2018-07-08 omar.polo window. The field is parsed like some CSS properties (i.e. padding),
134 500ca6c1 2018-07-08 omar.polo that is: if only one value is provided then it'll be used for all
135 500ca6c1 2018-07-08 omar.polo borders; if two value are given than the first will be used for the
136 500ca6c1 2018-07-08 omar.polo top and bottom border and the former for the left and right border;
137 500ca6c1 2018-07-08 omar.polo with three value the first is used for the top border, the second for
138 500ca6c1 2018-07-08 omar.polo the left and right border and the third for the bottom border. If four
139 500ca6c1 2018-07-08 omar.polo value are given, they'll be applied to the respective border
140 500ca6c1 2018-07-08 omar.polo clockwise. Other values will be ignored. The default value is 0.
141 500ca6c1 2018-07-08 omar.polo .It MyMenu.border.color
142 500ca6c1 2018-07-08 omar.polo A list of colors for the borders. This field is parsed like the
143 500ca6c1 2018-07-08 omar.polo MyMenu.border.size. The default value is black.
144 f5e234d6 2018-05-18 omar.polo .It MyMenu.prompt.background
145 8758854a 2018-05-20 omar.polo The background of the prompt.
146 f5e234d6 2018-05-18 omar.polo .It MyMenu.prompt.foreground
147 8758854a 2018-05-20 omar.polo The text color (foreground) of the prompt.
148 f5e234d6 2018-05-18 omar.polo .It MyMenu.completion.background
149 8758854a 2018-05-20 omar.polo The background of the completions.
150 f5e234d6 2018-05-18 omar.polo .It MyMenu.completion.foreground
151 8758854a 2018-05-20 omar.polo The text color of the completions.
152 f5e234d6 2018-05-18 omar.polo .It MyMenu.completion_highlighted.background
153 8758854a 2018-05-20 omar.polo The background of the selected completion.
154 f5e234d6 2018-05-18 omar.polo .It MyMenu.completion_highlighted.foreground
155 8758854a 2018-05-20 omar.polo The foreground of the selected completion.
156 f5e234d6 2018-05-18 omar.polo .El
157 f5e234d6 2018-05-18 omar.polo
158 f5e234d6 2018-05-18 omar.polo .Sh KEYS
159 bee0837c 2018-07-01 omar.polo This is the list of keybinding recognized by
160 bee0837c 2018-07-01 omar.polo .Li Nm Ns .
161 bee0837c 2018-07-01 omar.polo In the following examples, C-c means Control-c.
162 f5e234d6 2018-05-18 omar.polo .Bl -tag -width indent-two
163 f5e234d6 2018-05-18 omar.polo .It Esc
164 f5e234d6 2018-05-18 omar.polo Close the menu without selecting any entry
165 bee0837c 2018-07-01 omar.polo .It C-c
166 bee0837c 2018-07-01 omar.polo The same as Esc
167 f5e234d6 2018-05-18 omar.polo .It Enter
168 f5e234d6 2018-05-18 omar.polo Close the menu and print to stdout what the user typed
169 347d23da 2018-05-19 omar.polo .It C-m
170 347d23da 2018-05-19 omar.polo The same as Enter
171 f5e234d6 2018-05-18 omar.polo .It Tab
172 f5e234d6 2018-05-18 omar.polo Expand the prompt to the next possible completion
173 f5e234d6 2018-05-18 omar.polo .It Shift Tab
174 f5e234d6 2018-05-18 omar.polo Expand the prompt to the previous possible completion
175 8ecd98cc 2018-05-25 omar.polo .It C-n
176 8ecd98cc 2018-05-25 omar.polo The same as Tab
177 8ecd98cc 2018-05-25 omar.polo .It C-p
178 8ecd98cc 2018-05-25 omar.polo The same as Shift-Tab
179 f5e234d6 2018-05-18 omar.polo .It Backspace
180 f5e234d6 2018-05-18 omar.polo Delete the last character
181 347d23da 2018-05-19 omar.polo .It C-h
182 347d23da 2018-05-19 omar.polo The same as Backspace
183 347d23da 2018-05-19 omar.polo .It C-w
184 347d23da 2018-05-19 omar.polo Delete the last word
185 347d23da 2018-05-19 omar.polo .It C-u
186 347d23da 2018-05-19 omar.polo Delete the whole line
187 6254fed8 2018-07-06 omar.polo .It C-i
188 6254fed8 2018-07-06 omar.polo Toggle the ``first selected'' style. Sometimes, especially with the -a
189 6254fed8 2018-07-06 omar.polo option, could be handy to disable that behaviour. Let's say that
190 6254fed8 2018-07-06 omar.polo you've typed ``fire'' and the first completion is ``firefox'' but you
191 6254fed8 2018-07-06 omar.polo really want to choose ``fire''. While you can type some spaces, this
192 6254fed8 2018-07-06 omar.polo keybinding is a more elegant way to change, at runtime, the behaviour
193 6254fed8 2018-07-06 omar.polo of the first completion.
194 f5e234d6 2018-05-18 omar.polo .El
195 f5e234d6 2018-05-18 omar.polo
196 f5e234d6 2018-05-18 omar.polo .Sh BUGS
197 f5e234d6 2018-05-18 omar.polo .Bl -bullet
198 f5e234d6 2018-05-18 omar.polo .It
199 f5e234d6 2018-05-18 omar.polo If, instead of a numeric value, a not-valid number that terminates
200 f5e234d6 2018-05-18 omar.polo with the % sign is supplied, then the default value for that field
201 f5e234d6 2018-05-18 omar.polo will be treated as a percentage. Since this is a misuse of the
202 f5e234d6 2018-05-18 omar.polo resources this behavior isn't strictly considered a bug.
203 9e94fcbe 2018-05-22 omar.polo .It
204 9e94fcbe 2018-05-22 omar.polo C-w (delete last word) does not work well with multi-byte string. The
205 9e94fcbe 2018-05-22 omar.polo whole UTF-8 support is still kinda naïve and should be improved.
206 ae801529 2018-07-13 omar.polo .It
207 ae801529 2018-07-13 omar.polo Keep in mind that sometimes the order of the options matter. First are
208 ae801529 2018-07-13 omar.polo parsed (if any) the xrdb options, then the command line flags
209 ae801529 2018-07-13 omar.polo .Sy in the provided order!
210 ae801529 2018-07-13 omar.polo That meas that if you're providing first the x coordinate, let's say
211 ae801529 2018-07-13 omar.polo "middle", and
212 ae801529 2018-07-13 omar.polo .Sy after that
213 ae801529 2018-07-13 omar.polo you are overriding the width, the window
214 ae801529 2018-07-13 omar.polo .Sy will not be
215 ae801529 2018-07-13 omar.polo centered.
216 ae801529 2018-07-13 omar.polo
217 ae801529 2018-07-13 omar.polo As a general rule of thumb, if you're overriding the width and/or the
218 ae801529 2018-07-13 omar.polo height of the window, remember to override the x and y coordinates as
219 ae801529 2018-07-13 omar.polo well.
220 f5e234d6 2018-05-18 omar.polo .El
221 f5e234d6 2018-05-18 omar.polo
222 f5e234d6 2018-05-18 omar.polo .Sh EXIT STATUS
223 f5e234d6 2018-05-18 omar.polo
224 b500fe86 2018-06-07 omar.polo 0 when the user select an entry, 1 when the user press Esc, EX_USAGE
225 b500fe86 2018-06-07 omar.polo if used with wrong flags and EX_UNAVAILABLE if the connection to X
226 b500fe86 2018-06-07 omar.polo fails.
227 f5e234d6 2018-05-18 omar.polo
228 f5e234d6 2018-05-18 omar.polo .Sh SEE ALSO
229 f5e234d6 2018-05-18 omar.polo .Xr dmenu 1
230 f5e234d6 2018-05-18 omar.polo .Xr sysexits 3
231 f5e234d6 2018-05-18 omar.polo
232 f5e234d6 2018-05-18 omar.polo .Sh AUTHORS
233 f5e234d6 2018-05-18 omar.polo .An Omar Polo <omar.polo@europecom.net>
234 f5e234d6 2018-05-18 omar.polo