bemenu
TLDR
Display a menu and output selected item
SYNOPSIS
bemenu [options]
bemenu-run [options]
DESCRIPTION
bemenu is a dynamic menu library and client program inspired by dmenu. It reads items from stdin, presents them in a menu, and outputs the selected item to stdout. It supports multiple backends including Wayland, X11, and curses.
Unlike dmenu which only works on X11, bemenu provides native Wayland support, making it ideal for Sway and other Wayland compositors. The rendering is handled through backend libraries, allowing the same interface across different display servers.
bemenu-run is a wrapper that lists executables from PATH and runs the selected one, functioning as a simple application launcher.
PARAMETERS
-p, --prompt text
Set the prompt text.-i
Case-insensitive matching.-l, --list lines
Show items in a vertical list.-b, --bottom
Display at bottom of screen.-m, --monitor index
Show on specific monitor.-H, --line-height height
Set item height in pixels.-x, --password
Hide input (password mode).--fn font
Set font (Pango format).--tb color
Title bar background color.--tf color
Title bar foreground color.--fb color
Filter background color.--ff color
Filter foreground color.--nb color
Normal item background.--nf color
Normal item foreground.--hb color
Highlighted item background.--hf color
Highlighted item foreground.--binding vim|emacs
Set key binding style.
CAVEATS
Requires appropriate backend library for the display server (wayland, x11, or curses). Colors are specified in #RRGGBB format. Font specification follows Pango format. On Wayland, bemenu needs the layer-shell protocol support from the compositor.
HISTORY
bemenu was created as a cross-platform replacement for dmenu that could work on Wayland compositors. It was developed as part of the effort to bring traditional X11 utilities to the Wayland ecosystem. The project provides library bindings allowing integration into other applications, following a more modular design than the original dmenu.


