XMENU(1)

NAME
xmenu - menu utility for X

SYNOPSIS
xmenu [-irw] [-p position] [-x|-X [modifier-]button] [title]

DESCRIPTION
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.

The options are as follows:

-i  Disable icons. This makes xmenu loading faster when not using icons.

-p position
    Set the position to spawn xmenu. Without this option, xmenu spawns next to the cursor. position is a string of the form INTxINT[:MONITOR], where the first INT is the x position and the second INT is the y position. The monitor part between brackets is optional. MONITOR can be a number from 0 to the number of monitors minus 1; or it can be a string like current or cursor. If present, the monitor specifies that the position is relative to the upper left corner of that monitor. If monitor is current or cursor, the monitor to be used is that where the cursor is in. For example, -p 0x0:cursor specifies that xmenu must spawn at the position 0x0 of the monitor where the cursor is in. And -p 100x500:0 specifies that xmenu must spawn at the position 100x500 of the monitor 0.

-r  If this option is set, the right mouse button is disabled; so pressing it will not trigger any menu item.

-w  Asks the window manager to draw a border around the menus. This option may be buggy in some window managers, specially tiled ones that do not respect window hints.

-x [mod-]button
    This option requires an argument of the form mod-button or button; where mod is Mod1 to Mod5, or Alt (equivalent to Mod1), or Super (equivalent to Mod4); and button is the number of a mouse button. When this option is used, xmenu listens to button presses on the root window, and shows the pie menu when the given button is pressed, together with the given modifier, on the root window. For example, invoking xmenu with the option -x Super-3 makes a menu open when clicking with the third mouse button on the root window, or when clicking with the third mouse button together with the Super (Mod4) modifier on any window. This option makes xmenu run continuously; so it should be used when xmenu is invoked in background on a X startup file (like ~/.xinitrc).

-X [mod-]button
    Just like -x, but also pass the click to the root window (for the window manager to use it, for example). This option is incompatible with -x.

Each item read from stdin has the following format:

        ITEM := [TABS] [[IMAGE TABS] LABEL [TABS OUTPUT]] 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.

    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.

    The image is a string of the form "IMG:/path/to/image.png". It specifies the path to a image file to be shown as icon at the left of the entry. If the path does not begin with "/", "./" or "../", the file is searched on the paths specified in the ICONPATH environment variable.

    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.

    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.

    The newline terminates the item specification.

If the argument title is given, the title of the menu window is set to it.

USAGE
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), Home, End, Enter and Esc, and 1-9 keys. Items can also be selected by typing the first several characters in it.

Home
    Select the first item in the menu.

End Select the last item in the menu.

Down
    Cycle through the items in the regular direction.

Tab Cycle through the items in the regular direction. When the type-to-select feature is active, cycle through matching items instead.

Up  Cycle through the items in the reverse direction.

Shift-Tab
    Cycle through the items in the reverse direction. When the type-to-select feature is active, cycle through matching items instead.

Right, Enter
    Select the highlighted item.

Left
    Go to the menu above.

Esc Go to the menu above or exit xmenu.

xmenu features the type-to-select selecting style, where typing a string will select the first item matching it.

Additional key bindings can be set at compile time by changing the config.h file.

RESOURCES
xmenu understands the following X resources.

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.

xmenu.background
    The background color of non-selected items in the menu.

xmenu.foreground
    The color of the label text of non-selected items in the menu.

xmenu.selbackground
    The background color of selected items in the menu.

xmenu.selforeground
    The color of the label text of selected items in the menu.

xmenu.border
    The color of the border around the menu.

xmenu.separator
    The color of the separator between items in the menu.

xmenu.gap
    The gap, in pixels, between the menus.

xmenu.width
    The minimum width, in pixels, of the items in the menu.

xmenu.height
    The size in pixels of the height of a single menu item.

xmenu.borderWidth
    The size in pixels of the border around the menu.

xmenu.separatorWidth
    The size in pixels of the item separator.

xmenu.alignment
    If set to "left", "center", or "right", text is aligned to the left, center, or right of the menu, respectively. By default, text is aligned to the left.

xmenu.maxItems
    Maximum number of items to be displayed in a menu. If more a menu has more than this number of items, they will be scrolled with arrow buttons.

ENVIRONMENT
The following environment variables affect the execution of xmenu.

DISPLAY
    The display to start xmenu on.

ICONPATH
    A colon-separated list of directories used to search for the location of image files.

EXAMPLES
The following script illustrates the use of xmenu. The output is redirected to sh(1), creating a command to be run by the shell.

        #!/bin/sh
        xmenu <<EOF | sh &
        Applications
        	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
        EOF

For example, by selecting “Applications”, a new menu will appear. Selecting “Web Browser” in the new menu opens firefox.

SEE ALSO
dmenu(1), 9menu(1), thingmenu(1)