- Home
- App launchers
- bemenu
bemenu
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. The project documents environment variables for configuring options, backend selection, renderer paths, and rendering scale. It also includes default keyboard controls and optional Vim-style bindings enabled with the --binding vim option.
Wayland use depends on a compositor that implements the wlr-layer-shell protocol, typically one based on wlroots. Clipboard pasting uses wl-paste and xclip at runtime, trying them in that order. Building requires a C compiler; scdoc is needed to generate the man page. The project documents macOS build instructions using Homebrew prerequisites and a build-osx.sh process. Its provided Nix expression installs only the curses backend. The client program and most sources are licensed under GNU GPLv3 or later, while the library and bindings use GNU LGPLv3 or later. bemenu is free and open source. The project lists pinentry-bemenu as an integration, and says releases are published on GitHub and signed with a PGP key.
For and against
For
- Includes bemenu and bemenu-run clients
- Build targets cover curses, X11, and Wayland
- Optional Vim-style keyboard bindings
- Free and open source
Against
- Wayland requires wlr-layer-shell compositor support
- Building requires a C compiler
- scdoc is needed to generate the man page
- Nix expression installs only the curses backend
The verdict
bemenu offers configurable menu clients and several backend build targets, with documented macOS build instructions. Users should check the build requirements and, for Wayland, compositor compatibility before choosing it.
Who it suits
bemenu may suit Linux or macOS users looking for a configurable menu client and library, especially those able to build from source. Wayland users need a compatible compositor.
Plans and prices
bemenu
No paid plans or usage limits stated; GPLv3 client and LGPLv3 library
Read 10 Oct 2026 · github.com
On the record
- Additional integration
- The project lists pinentry-bemenu, a Pinentry implementation based on bemenu, as a project using it.github.com · read 10 Oct 2026
- Backends
- The available build targets include X11, Wayland, and curses backends.github.com · read 10 Oct 2026
- Build options
- The documented build targets include the bemenu and bemenu-run clients and curses, X11, and Wayland backends.github.com · read 9 Oct 2026
- Build requirements
- Building requires a C compiler, and scdoc is needed to generate the man page.github.com · read 10 Oct 2026
- Clients
- The project provides the bemenu and bemenu-run clients.github.com · read 10 Oct 2026
- Clipboard
- Clipboard pasting uses wl-paste and xclip at runtime, attempted in that order.github.com · read 9 Oct 2026
- Clipboard integration
- Clipboard pasting uses wl-paste and xclip at runtime, attempted in that order.github.com · read 10 Oct 2026
- Customization
- Environment variables can set options, choose a backend, select renderer paths, and override rendering scale.github.com · read 10 Oct 2026
- Install scope
- The README says the provided Nix expression installs only the curses backend.github.com · read 9 Oct 2026
- Integration
- The README lists pinentry-bemenu as a project using bemenu.github.com · read 9 Oct 2026
- Keyboard controls
- Default keybindings support navigation, filtering, selection, execution, and multi-selection.github.com · read 10 Oct 2026
- Licensing
- The client program and other sources are under GNU GPLv3 or later, while the library and bindings are under GNU LGPLv3 or later.github.com · read 10 Oct 2026
- macOS build
- The README provides macOS build instructions using Homebrew prerequisites and build-osx.sh.github.com · read 9 Oct 2026
- macOS installation
- The README documents building on OSX with Homebrew prerequisites GNU Make and pkg-config, and also provides a build-osx.sh flow.github.com · read 10 Oct 2026
- Purpose
- bemenu is a dynamic menu library and client program inspired by dmenu.github.com · read 10 Oct 2026
- Release security
- The README says releases are signed with the listed PGP key and published on GitHub.github.com · read 10 Oct 2026
- Release signing
- The README says releases are signed with key 29317348D687B86B and published on GitHub.github.com · read 9 Oct 2026
- Vim bindings
- Vim-style normal-mode bindings can be enabled with the --binding vim option.github.com · read 10 Oct 2026