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