Simplifying the example script.
[xmenu] / xmenu.1
.TH PROG 1
.SH NAME
xmenu \- menu utility for X
.SH SYNOPSIS
.B xmenu
.RB [ \-w ]
.RI [ title... ]
.SH DESCRIPTION
.B xmenu
is a menu for X,
it reads a list of newline-separated items from stdin,
shows a menu for the user to select one of the items,
and outputs the item selected to stdout.
.PP
The options are as follows:
.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.
.PP
Each item read from stdin has the following format:
.IP
.EX
ITEM := TABS LABEL TABS COMMAND 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.
.IP
The initial tabs indicate the menu hierarchy:
items indented with a tab is shown in a submenu of the preceding item not indented.
.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.
.IP
The newline terminates the item specification.
.PP
If the argument
.I title
is given, the title of the menu window is set to it.
.SH USAGE
.B xmenu
is controlled by the mouse,
but can also be controlled by the keyboard.
Items can be selected using the arrow keys,
Tab (with and without Shift),
Enter and Esc.
.TP
.BR Down ", " Tab
Cycle through the items in the regular direction.
.TP
.BR Up ", " Shift-Tab
Cycle through the items in the reverse direction.
.TP
.BR Right ", " Enter
Select the highlighted item.
.TP
.B Left
Go to the menu above.
.TP
.B Esc
Go to the menu above or exit xmenu.
.SH RESOURCES
.B
xmenu
understands the following X resources.
.TP
.B xmenu.font
The font in which the labels should be drawn.
.TP
.B xmenu.background
The background color of non-selected itens in the menu.
.TP
.B xmenu.foreground
The color of the label text of non-selected itens in the menu.
.TP
.B xmenu.selbackground
The background color of selected itens in the menu.
.TP
.B xmenu.selforeground
The color of the label text of selected itens 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.
.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.
.TP
.B xmenu.menuborder
The size in pixels of the border around the menu.
.TP
.B xmenu.separatorsize
The size in pixels of the item separator.
.SH EXAMPLES
The following is an script exemplifying the use of
.BR xmenu .
The output is redirected to
.IR sh (1),
creating a command to be run by the shell.
.IP
.EX
#!/bin/sh
cat <<EOF | xmenu | sh
Applications
Web Browser firefox
Image editor gimp
Terminal (xterm) xterm
Terminal (urxvt) urxvt
Terminal (st) st
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.
.SH SEE ALSO
.IR dmenu (1),
.IR 9menu (1),
.IR thingmenu (1)