Merge pull request #18 from kawaiiamber/config.mk
[xmenu] / xmenu.1
... / ...
CommitLineData
1.TH XMENU 1
2.SH NAME
3xmenu \- menu utility for X
4.SH SYNOPSIS
5.B xmenu
6.RB [ \-irw ]
7.RB [ -p
8.IR position ]
9.RI [ title ]
10.SH DESCRIPTION
11.B xmenu
12is a menu for X,
13it reads a list of newline-separated items from stdin,
14shows a menu for the user to select one of the items,
15and outputs the item selected to stdout.
16.PP
17The options are as follows:
18.TP
19.B -i
20Disable icons.
21This makes xmenu loading faster when not using icons.
22.TP
23.BI -p " position"
24Set the position to spawn xmenu.
25Without this option, xmenu spawns next to the cursor.
26.I position
27is a string of the form
28.BR INTxINT[:MONITOR] ,
29where the first INT is the x position and the second INT is the y position.
30The monitor part between brackets is optional.
31.B MONITOR
32can be a number from 0 to the number of monitors minus 1;
33or it can be a string like
34.B current
35or
36.BR cursor .
37If present, the monitor specifies that the position is relative to the upper left corner
38of that monitor.
39If
40.B monitor
41is
42.B current
43or
44.BR cursor ,
45the monitor to be used is that where the cursor is in.
46For example,
47.B -p 0x0:cursor
48specifies that
49.B xmenu
50must spawn at the position 0x0 of the monitor where the cursor is in.
51And
52.B -p 100x500:0
53specifies that
54.B xmenu
55must spawn at the position 100x500 of the monitor 0.
56.TP
57.B -r
58If this option is set, the right mouse button is disabled;
59so pressing it will not trigger any menu item.
60.TP
61.B -w
62Asks the window manager to draw a border around the menus.
63This option may be buggy in some window managers,
64specially tiled ones that do not respect window hints.
65.PP
66Each item read from stdin has the following format:
67.IP
68.EX
69ITEM := [TABS] [[IMAGE TABS] LABEL [TABS OUTPUT]] NEWLINE
70.EE
71.PP
72That means that each item is composed by
73tabs, followed by an optional image specification, followed by tabs
74followed by a label, followed by more tabs, followed by an output,
75and ended by a newline. Brackets group optional elements.
76.IP
77The initial tabs indicate the menu hierarchy:
78items indented with a tab is shown in a submenu of the preceding item not indented.
79An item without initial tabs is a top-level item.
80.IP
81The image is a string of the form "IMG:/path/to/image.png".
82It specifies a image to be shown as icon at the left of the entry.
83.IP
84The label is the string that will be shown as a item in the menu.
85An item without label is considered a separator and is drawn as a thin line in the menu
86separating the item above from the item below.
87.IP
88The output is the string that will be output after selecting the item.
89If an item does not have an output, its label is used as its output.
90.IP
91The newline terminates the item specification.
92.PP
93If the argument
94.I title
95is given, the title of the menu window is set to it.
96.SH USAGE
97.B xmenu
98is controlled by the mouse,
99but can also be controlled by the keyboard.
100Items can be selected using the arrow keys,
101Tab (with and without Shift),
102Home, End,
103Enter and Esc, and 1-9 keys.
104.TP
105.BR Home
106Select the first item in the menu.
107.TP
108.BR End
109Select the last item in the menu.
110.TP
111.BR Down ", " Tab
112Cycle through the items in the regular direction.
113.TP
114.BR Up ", " Shift-Tab
115Cycle through the items in the reverse direction.
116.TP
117.BR Right ", " Enter
118Select the highlighted item.
119.TP
120.B Left
121Go to the menu above.
122.TP
123.B Esc
124Go to the menu above or exit xmenu.
125.PP
126Additional key bindings can be set at compile time by changing the
127.B config.h
128file.
129.SH RESOURCES
130.B
131xmenu
132understands the following X resources.
133.TP
134.B xmenu.font
135The font in which the labels should be drawn.
136Multiple fonts can be added as fallback fonts;
137they must be separated by a comma.
138.TP
139.B xmenu.background
140The background color of non-selected items in the menu.
141.TP
142.B xmenu.foreground
143The color of the label text of non-selected items in the menu.
144.TP
145.B xmenu.selbackground
146The background color of selected items in the menu.
147.TP
148.B xmenu.selforeground
149The color of the label text of selected items in the menu.
150.TP
151.B xmenu.border
152The color of the border around the menu.
153.TP
154.B xmenu.separator
155The color of the separator between items in the menu.
156.TP
157.B xmenu.gap
158The gap, in pixels, between the menus.
159.TP
160.B xmenu.width
161The minimum width, in pixels, of the items in the menu.
162.TP
163.B xmenu.height
164The size in pixels of the height of a single menu item.
165.TP
166.B xmenu.borderWidth
167The size in pixels of the border around the menu.
168.TP
169.B xmenu.separatorWidth
170The size in pixels of the item separator.
171.TP
172.B xmenu.alignment
173If set to
174.BR "\(dqleft\(dq" ,
175.BR "\(dqcenter\(dq" ,
176or
177.BR "\(dqright\(dq" ,
178text is aligned to the left, center, or right of the menu, respectively.
179By default, text is aligned to the left.
180
181.SH EXAMPLES
182The following script illustrates the use of
183.BR xmenu .
184The output is redirected to
185.IR sh (1),
186creating a command to be run by the shell.
187.IP
188.EX
189#!/bin/sh
190
191cat <<EOF | xmenu | sh &
192Applications
193 IMG:./web.png Web Browser firefox
194 IMG:./gimp.png Image editor gimp
195Terminal (xterm) xterm
196Terminal (urxvt) urxvt
197Terminal (st) st
198
199Shutdown poweroff
200Reboot reboot
201EOF
202.EE
203.PP
204For example, by selecting \(lqApplications\(rq, a new menu will appear.
205Selecting \(lqWeb Browser\(rq in the new menu opens firefox.
206.SH SEE ALSO
207.IR dmenu (1),
208.IR 9menu (1),
209.IR thingmenu (1)