-.TH PROG 1
+.TH XMENU 1
.SH NAME
xmenu \- menu utility for X
.SH SYNOPSIS
.B xmenu
-.RB [ \-w ]
-.RI [ title... ]
+.RB [ \-iw ]
+.RB [ -p
+.IR position ]
+.RI [ title ]
.SH DESCRIPTION
.B xmenu
is a menu for X,
.PP
The options are as follows:
.TP
+.B -i
+Disable icons.
+.B xmenu
+allocates a space at the left side of the menu for the icons;
+if there is no icon, then this space will be blank.
+Setting the
+.B -i
+option removes this space, making the menu narrower.
+.TP
+.BI -p " position"
+Set the position to spawn xmenu.
+Without this option, xmenu spawns next to the cursor.
+.I position
+is a string of the form
+.BR INTxINT ,
+where the first INT is the x position and the second INT is the y position.
+.TP
.B -w
Asks the window manager to draw a border around the menus.
-Without this options, the menus do not have border drawn by the window manager.
+This option may be buggy in some window managers,
+specially tiled ones that do not respect window hints.
.PP
Each item read from stdin has the following format:
.IP
.EX
-ITEM := TABS LABEL TABS COMMAND NEWLINE
+ITEM := [TABS] [[IMAGE TABS] LABEL [TABS OUTPUT]] NEWLINE
.EE
.PP
-That means, each item is composed by
-tabs, followed by a label, followed by more tabs, followed by a command,
-and ended by a newline.
+That means that each item is composed by
+tabs, followed by an optional image specification, followed by tabs
+followed by a label, followed by more tabs, followed by an output,
+and ended by a newline. Brackets group optional elements.
.IP
The initial tabs indicate the menu hierarchy:
items indented with a tab is shown in a submenu of the preceding item not indented.
+An item without initial tabs is a top-level item.
+.IP
+The image is a string of the form "IMG:/path/to/image.png".
+It specifies a image to be shown as icon at the left of the entry.
.IP
The label is the string that will be shown as a item in the menu.
An item without label is considered a separator and is drawn as a thin line in the menu
separating the item above from the item below.
.IP
-The command is the string that will be output after selecting the item.
-If the item spawns a submenu, the command is the title of the menu.
+The output is the string that will be output after selecting the item.
+If an item does not have an output, its label is used as its output.
.IP
The newline terminates the item specification.
.PP
.TP
.B xmenu.font
The font in which the labels should be drawn.
+Multiple fonts can be added as fallback fonts;
+they must be separated by a comma.
.TP
.B xmenu.background
-The background color of non-selected itens in the menu.
+The background color of non-selected items in the menu.
.TP
.B xmenu.foreground
-The color of the label text of non-selected itens in the menu.
+The color of the label text of non-selected items in the menu.
.TP
.B xmenu.selbackground
-The background color of selected itens in the menu.
+The background color of selected items in the menu.
.TP
.B xmenu.selforeground
-The color of the label text of selected itens in the menu.
+The color of the label text of selected items in the menu.
.TP
.B xmenu.border
The color of the border around the menu.
.TP
.B xmenu.separator
-The color of the separator between itens in the menu.
+The color of the separator between items in the menu.
+.TP
+.B xmenu.gap
+The gap, in pixels, between the menus.
.TP
.B xmenu.width
The minimum width, in pixels, of the items in the menu.
.TP
-.B xmenu.itemborder
-The size in pixels of the border around the label text in items in the menu.
+.B xmenu.height
+The size in pixels of the height of a single menu item.
.TP
-.B xmenu.menuborder
+.B xmenu.borderWidth
The size in pixels of the border around the menu.
.TP
-.B xmenu.separatorsize
+.B xmenu.separatorWidth
The size in pixels of the item separator.
.SH EXAMPLES
-The following is an script exemplifying the use
+The following script illustrates the use of
.BR xmenu .
-The output is redirected to xargs to make a command to be run by the shell.
+The output is redirected to
+.IR sh (1),
+creating a command to be run by the shell.
.IP
.EX
#!/bin/sh
-cat <<EOF | xmenu | xargs sh -c
+cat <<EOF | xmenu | sh &
Applications
- Web Browser firefox
- Image editor gimp
-Terminal (xterm) xterm
-Terminal (urxvt) urxvt
-Terminal (st) st
+ IMG:./web.png Web Browser firefox
+ IMG:./gimp.png Image editor gimp
+Terminal (xterm) xterm
+Terminal (urxvt) urxvt
+Terminal (st) st
-Shutdown poweroff
-Reboot reboot
+Shutdown poweroff
+Reboot reboot
EOF
.EE
.PP
For example, by selecting \(lqApplications\(rq, a new menu will appear.
-Selecting \(lqWeb Browser\(rq in the new menu will open firefox.
+Selecting \(lqWeb Browser\(rq in the new menu opens firefox.
.SH SEE ALSO
.IR dmenu (1),
.IR 9menu (1),