bemenu
github.com
What it is
bemenu is a dynamic menu library and client program inspired by dmenu. It provides the bemenu and bemenu-run clients, with build targets for curses, X11, and Wayland backends. Users can configure environment variables for options, backend selection, renderer paths, and rendering scale. The project documents default keyboard bindings and an optional Vim-style mode enabled with --binding vim. Wayland use depends on a compositor implementing the wlr-layer-shell protocol, typically a wlroots-based compositor. Clipboard pasting uses wl-paste and xclip at runtime, in that order. Building requires a C compiler, and scdoc is needed to generate the man page. The project also documents macOS build steps using Homebrew prerequisites and a build-osx.sh flow; its provided Nix expression installs only the curses backend. The client program and sources other than the library and bindings use GNU GPLv3 or later, while the library and bindings use GNU LGPLv3 or later. The project lists pinentry-bemenu as an integration. bemenu is free and open source, with no paid plans or usage limits stated.
Spec sheet
- Purpose
- bemenu is a dynamic menu library and client program inspired by dmenu.Read 10 Oct 2026 · github.com
- Additional integration
- The project lists pinentry-bemenu, a Pinentry implementation based on bemenu, as a project using it.Read 10 Oct 2026 · github.com
- Backends
- The available build targets include X11, Wayland, and curses backends.Read 10 Oct 2026 · github.com
- Build options
- The documented build targets include the bemenu and bemenu-run clients and curses, X11, and Wayland backends.Read 9 Oct 2026 · github.com
- Build requirements
- Building requires a C compiler, and scdoc is needed to generate the man page.Read 10 Oct 2026 · github.com
- Clients
- The project provides the bemenu and bemenu-run clients.Read 10 Oct 2026 · github.com
- Clipboard
- Clipboard pasting uses wl-paste and xclip at runtime, attempted in that order.Read 9 Oct 2026 · github.com
- Clipboard integration
- Clipboard pasting uses wl-paste and xclip at runtime, attempted in that order.Read 10 Oct 2026 · github.com
- Customization
- Environment variables can set options, choose a backend, select renderer paths, and override rendering scale.Read 10 Oct 2026 · github.com
- Install scope
- The README says the provided Nix expression installs only the curses backend.Read 9 Oct 2026 · github.com
- Integration
- The README lists pinentry-bemenu as a project using bemenu.Read 9 Oct 2026 · github.com
- Keyboard controls
- Default keybindings support navigation, filtering, selection, execution, and multi-selection.Read 10 Oct 2026 · github.com
- Licensing
- The client program and other sources are under GNU GPLv3 or later, while the library and bindings are under GNU LGPLv3 or later.Read 10 Oct 2026 · github.com
- macOS build
- The README provides macOS build instructions using Homebrew prerequisites and build-osx.sh.Read 9 Oct 2026 · github.com
- macOS installation
- The README documents building on OSX with Homebrew prerequisites GNU Make and pkg-config, and also provides a build-osx.sh flow.Read 10 Oct 2026 · github.com
- Release security
- The README says releases are signed with the listed PGP key and published on GitHub.Read 10 Oct 2026 · github.com
- Release signing
- The README says releases are signed with key 29317348D687B86B and published on GitHub.Read 9 Oct 2026 · github.com
- Vim bindings
- Vim-style normal-mode bindings can be enabled with the --binding vim option.Read 10 Oct 2026 · github.com
- Wayland compatibility
- Wayland support requires a compositor implementing the wlr-layer-shell protocol, typically a wlroots-based compositor.Read 9 Oct 2026 · github.com
- Wayland support
- Wayland is supported only by compositors implementing the wlr-layer-shell protocol, typically wlroots-based compositors.Read 10 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Provides bemenu and bemenu-run clients
- Build targets include curses, X11, and Wayland
- Offers optional Vim-style keyboard bindings
- Free and open source
Limits
- Wayland requires a wlr-layer-shell compositor
- Building requires a C compiler
- scdoc is needed to generate the man page
- Nix expression installs only the curses backend
Who it suits
bemenu suits Linux or macOS users who want a configurable menu client and can build or install the backend suited to their environment. Wayland users need a compatible compositor.
Verdict
bemenu offers multiple backends and configurable keyboard and environment options. Its Wayland compatibility depends on the compositor, and its build requirements are worth checking first.
Where Specifiction places it
- App Launcher Software#8 of 408.4
- App launchers#10 of 408.4
- App Launchers#12 of 408.3