table of contents
bemenu(1) | General Commands Manual | bemenu(1) |
NAME¶
bemenu - dynamic menu inspired by dmenu(1)
SYNOPSIS¶
bemenu [-hCiKTvwx] [-I <index>] [-l <lines>] [-P <prefix>]
bemenu-run [-hCiKTvwx] [-I <index>] [-l <lines>] [-P <prefix>]
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
-C, --no-cursor
-I, --index <index>
-i, --ignorecase
-K, --no-keyboard
-l, --list "<number> down|up"
-P, --prefix <prefix>
-p, --prompt <prompt>
-s, --no-spacing
-T, --no-touch
-v, --version
-w, --wrap
-x, --password none|hide|indicator
none | Display the input (the default). |
hide | Do not display any input. |
indicator | Replace input with asterisks. |
--fixed-height
--accept-single
--auto-select
--binding
--fork
--ifne
--single-instance
--no-exec
--scrollbar none|always|autohide
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. |
-e, --vim-esc-exits
-N, --vim-normal-mode
-F, --filter
Backend options¶
These options are only available on backends specified in the parentheses:
-b, --bottom (Wayland, X11)
-c, --center (Wayland, X11)
-f, --grab (Wayland, X11)
-B, --border (Wayland, X11)
--bdr (Wayland, X11)
-R, --border-radius (Wayland, X11)
-H, --line-height <height> (Wayland, X11)
--ch (Wayland, X11)
--cw (Wayland, X11)
-m, --monitor <index> (Wayland, X11)
-n, --no-overlap (Wayland)
-M, --margin <margin> (Wayland, X11)
--hp (Wayland, X11)
-W, --width-factor <factor> (Wayland, X11)
--fn <name [size]> (Wayland, X11)
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:
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
--cb <color> Cursor background.
--cf <color> Cursor foreground
--nb <color> Normal background.
--nf <color> Normal foreground.
--hb <color> Highlighted background.
--hf <color> Highlighted foreground.
--fbb <color> Feedback background.
--fbf <color> Feedback foreground.
--sb <color> Selected background.
--sf <color> Selected foreground.
--ab <color> Alternating background color.
--af <color> Alternating foreground color.
--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
<cursor-down>, <tab>, C-n, M-h, M-k
PageUp, M-v, M-u
PageDown, C-v, M-d
S-M-<, S-PageUp
S-M->, S-PageDown
S-<tab>
<escape>, C-g
C-<carriage-return>, C-m
S-<carriage-return>, Insert
C-b, C-l, <cursor-left>
C-f, <cursor-right>
C-a, Home
C-e, End
<backspace> C-h
<delete>
C-u, S-<delete>
C-k
C-w
C-y, C-Y
M-[1-9]
M-0
Vim bindings¶
bemenu uses vim-like modal entry if invoked with --binding vim. These bindings roughly emulate insert and normal vim modes. The initial mode is insert mode, unless --vim-normal-mode is specified.
In insert mode, all keys function as described above except for the following:
<escape>
In normal mode, only the following keys have meaning:
q
i
I
a
A
cc
cw
cb
c$
c0
n, j
p, k
gg
G
H
M
L
v
F
B
h
l
0
$
w
b
e
x
X
dw
db
d$
d0
dd
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/lib64/bemenu. |
BEMENU_SCALE | Override the rendering scale factor for the GUI backends. |
EXIT STATUS¶
0
1
10-19
SEE ALSO¶
dmenu(1), fork(2), ncurses(3), tty(4)
Pango Reference Manual, https://developer.gnome.org/pango/1.46/, August 20, 2020, Fonts — pango_font_description_from_string().
AUTHORS¶
bemenu is written and maintained by Jari Vetoniemi <mailroxas@gmail.com> with the help of various contributors.
2024-07-19 |