BEMENU(1)

NAME
bemenu - dynamic menu inspired by dmenu(1)

SYNOPSIS
bemenu [-hivwx] [-I index] [-l lines] [-P prefix] [-p prompt] [--ifne] [--scrollbar none | always | autohide] [backend-options]
bemenu-run [-hivwx] [-I index] [-l lines] [-P prefix] [-p prompt] [--ifne] [--scrollbar none | always | autohide] [--fork] [--no-exec] [backend-options]

DESCRIPTION
bemenu is a dynamic menu for tty(4) (using ncurses(3)), X11 and Wayland, inspired by dmenu(1). It reads a list of newline-separated items from standard input and then presents them as a list, where the user can select one or more of them. When pressing <carriage-return>, the selected items are printed to standard output (one per line) and bemenu exits. Entering text will filter the items to those that match the input. If the number of items exceeds the size of the list, the items will be paginated.

bemenu-run is a special-case invocation of bemenu, where the input is the list of executables under PATH and the selected items are executed.

OPTIONS

-h, --help
    Print a help message to standard output and exit.

-I index, --index index
    Highlight the item at index at the start. Indices start at 0. By default, the first item is highlighted.

-i, --ignorecase
    Filter items case-insensitively.

-l number, --list number
    List items vertically with the given number of lines.

-P prefix, --prefix prefix
    Display prefix before the highlighted item in a vertical list.

-p prompt, --prompt prompt
    Defines the prompt text to be displayed to the left of the input field. Defaults to ‘bemenu’.

-v, --version
    Print the bemenu version number to standard output and exit.

-w, --wrap
    Advancing past the end of the list returns you to the start.

-x, --password
    Hide filter text.

--fork
    Always fork(2) before executing the selections. Disabled by default when using the terminal backend.

--no-exec
    Print the selected items to standard output instead of executing them.

--scrollbar none | always | autohide
    Specify when to show a scrollbar for vertical lists:

    none
        Never display a scrollbar (the default).

    always
        Always display a scrollbar.

    autohide
        Only display a scrollbar when the number of items exceeds the number of lines.

  Backend Options
These options are only available on backends specified in the parentheses:

-b, --bottom (Wayland, X11)
    The list will appear at the bottom of the screen.

-f, --grab (Wayland, X11)
    Show the bemenu window whilst reading the items.

-H height, --line-height height (Wayland, X11)
    Specify the height in point size to make each entry.

-m index, --monitor index (Wayland, X11)
    Specify the monitor index where the list should appear. Monitor indices start at zero. The interpretation of the given argument depends on the utilized backend. With X11 and Wayland, a value of ‘-1’ or focused indicates that the current monitor should be used (the default). With Wayland, the index should be a string specifying a specific monitor name. The value ‘-2’ or all indicates that the list should appear on all monitors.

-n, --no-overlap (Wayland)
    Set the bemenu window to be on top of any other panels.

    --fn ‘name [size]’ (Wayland, X11) Specify the font family name and size to be used. For more options, consult the for pango_font_description_from_string().

The following options control the colours for various parts of the list for the Wayland and X11 backends. Each takes an argument in the form of:

    #RGB[A]

where R, G, B and A are hexadecimal integers from 00–FF that control the red, green, blue and alpha-transparency channels.

--tb color
    Title background.

--tf color
    Title foreground.

--fb color
    Filter background.

--ff color
    Filter foreground

--nb color
    Normal background.

--nf color
    Normal foreground.

--hb color
    Highlighted background.

--hf color
    Highlighted foreground.

--sb color
    Selected background.

--sf color
    Selected foreground.

--scb color
    Scrollbar background.

--scf color
    Scrollbar foreground.

KEYBOARD COMMANDS
bemenu supports keyboard commands to move around the list and edit the filter. In the following examples, C-x means <control-x>, M-x means <alt-x> and S-x means <shift-x>:

    <cursor-up>, S-<cursor-left>, C-p, M-j, M-l Highlight the previous item.

    <cursor-down>, <tab>, C-n, M-h, M-k Highlight the next item.

PageUp, M-v, M-u
    Show the previous page of items, preserving the offset of the currently highlighted item, if possible.

PageDown, C-v, M-d
    Show the next page of items, preserving the offset of the currently highlighted item, if possible.

S-M-<, S-PageUp
    Highlight the first item in the list.

S-M->, S-PageDown
    Highlight the last item in the list.

S-<tab>
    Copy the highlighted item to the filter.

    <escape>, C-g Terminate bemenu without printing items.

C-<carriage-return>
    Select the highlighted item and continue highlighting.

    S-<carriage-return>, C-m Print selected items and the currently highlighted one, and exit. Items are printed in the order they were selected, with the currently highlighted item printed last.

    S-<carriage-return>, Insert Print the filter text to standard output and exit.

C-l, <cursor-left>
    Move cursor left.

C-f, <cursor-right>
    Move cursor right.

C-a, Home
    Move cursor to the start.

C-e, End
    Move cursor to the end.

    <backspace> C-h Remove character before the cursor.

<delete>
    Remove character at the cursor.

C-u, S-<delete>
    Remove all characters before the cursor.

C-k Remove all characters after the cursor.

C-w Clear the filter.

M-[0–9]
    Print selected items and exit with a custom error code. See EXIT STATUS.

ENVIRONMENT

BEMENU_OPTS
    An alternative way to pass command line arguments to bemenu.

BEMENU_BACKEND
    Force a backend to be used. If empty, one of the GUI backends (Wayland, X11) will be selected automatically. The accepted values are curses, wayland and x11.

BEMENU_RENDERER
    Force a backend by loading its shared object from the set value.

BEMENU_RENDERERS
    Override the backend search path to the set value. Defaults to /usr/lib/bemenu.

BEMENU_SCALE
    Override the rendering scale factor for the GUI backends.

EXIT STATUS
bemenu exits 0 on success, 1 if the user exited without selecting or an error, and if exiting with a custom error code, 10 plus the number specified.

SEE ALSO
dmenu(1), fork(2), ncurses(3), tty(4)

Pango Reference Manual, August 20, 2020, https://developer.gnome.org/pango/1.46/, Fonts — pango_font_description_from_string().

AUTHORS
bemenu is written and maintained by Jari Vetoniemi <mailroxas@gmail.com>.