Freedom251 › App Launcher Software
bemenu

What bemenu is
bemenu is a dynamic menu library and client program inspired by dmenu. The project provides 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 README documents default keyboard controls and optional Vim-style bindings, enabled with the --binding vim option.
Wayland use requires a compositor implementing the wlr-layer-shell protocol, typically one based on wlroots. Clipboard pasting uses wl-paste and xclip at runtime, attempted in that order. Building requires a C compiler, and scdoc is needed to generate the man page. The project documents macOS build instructions using Homebrew prerequisites and build-osx.sh; its provided Nix expression installs only the curses backend. The client program and most sources use GNU GPLv3 or later, while the library and bindings use GNU LGPLv3 or later. bemenu is free and open source, with no paid plans or usage limits stated.
Who it suits
bemenu suits people who want a configurable dynamic menu client or library and are comfortable building software. Wayland users need a compositor that implements wlr-layer-shell.
What it does well
- Includes bemenu and bemenu-run clients
- Build targets cover curses, X11, and Wayland
- Offers optional Vim-style keyboard bindings
- Free and open source
What to know first
- Building requires a C compiler
- scdoc is needed to generate the man page
- Wayland requires a wlr-layer-shell compositor
- Provided Nix expression installs only curses backend
Limits
No paid plans or usage limits are stated. The provided Nix expression installs only the curses backend, and Wayland use requires a compositor implementing wlr-layer-shell.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| bemenu | No paid plans or usage limits stated; GPLv3 client and LGPLv3 library | Free |
As github.com lists them, read 10 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the bemenu GitHub project.
- Install a C compiler; install scdoc if you need to generate the man page.
- Choose a build target and backend: curses, X11, or Wayland.
- For macOS, follow the documented Homebrew prerequisites and build-osx.sh flow.
- Use the bemenu or bemenu-run client and configure options through environment variables.
bemenu is a dynamic menu library and client program inspired by dmenu, aimed at users who want a configurable, keyboard-driven menu and are comfortable building software. Its choice of clients and backends is useful, but Wayland compatibility depends on the compositor and it lacks file search and workflow support.
Overview
The project provides the bemenu and bemenu-run clients, with build targets for curses, X11, and Wayland. That flexibility lets users match the interface to their setup, but bemenu is a build-oriented tool rather than a polished, ready-to-use launcher. Building requires a C compiler; generating the man page also requires scdoc. The provided Nix expression installs only the curses backend, which limits that route to terminal use.
Command launching is supported, while file search and workflow support are not. The project also identifies pinentry-bemenu, a Pinentry implementation based on bemenu, as an integration.
Key features
Backend and client options
Curses, X11, and Wayland targets cover distinct environments, and having both bemenu and bemenu-run gives users two client choices. The Wayland option has a specific constraint: the compositor must implement wlr-layer-shell, as wlroots-based compositors typically do. Anyone on a different Wayland compositor should confirm compatibility before choosing bemenu.
Keyboard controls and configuration
Documented environment variables let users configure options, backend selection, renderer paths, and rendering scale. The README also documents default keyboard bindings and an optional Vim-style normal mode, enabled with --binding vim. That makes the tool a stronger fit for keyboard-oriented users who value control over interaction; it is less compelling for someone looking for a launcher that needs little setup.
Clipboard and release details
Clipboard pasting uses wl-paste first and tries xclip if needed, so clipboard behavior depends on those runtime tools. Releases are published on GitHub and signed with PGP key 29317348D687B86B.
Pricing
bemenu is free: the bemenu plan costs nothing, with no paid plans or usage limits stated. There is no free trial because the project is already free to use. The client and other sources use GNU GPLv3 or later, while the library and bindings use GNU LGPLv3 or later; the different licenses matter to anyone incorporating the library or distributing the client.
Platforms
Linux and macOS are supported. macOS users can build with Homebrew prerequisites GNU Make and pkg-config, or use the documented build-osx.sh flow. Linux users should choose a backend compatible with their setup; Wayland specifically requires wlr-layer-shell support from the compositor.
Who it's for
bemenu is best for Linux users who want a free, configurable menu, prefer keyboard controls, and can handle compiling and checking backend compatibility. It can also suit macOS users willing to follow the documented build process. It is a poor fit for people who need file search, workflow tools, or a launcher that works across Wayland compositors without a protocol check.
Pros and cons
- Pros: Three backend build targets provide options for terminal, X11, and compatible Wayland environments.
- Pros: Configurable environment variables and optional Vim-style bindings give keyboard-focused users control over menu behavior.
- Pros: Free software with separate GPL and LGPL licensing for client and library components.
- Cons: Wayland support requires wlr-layer-shell, excluding compositors that do not implement it.
- Cons: Building requires a C compiler, and man-page generation needs scdoc, adding setup work.
- Cons: It supports command launching but not file search or workflow support.
Alternatives
If you want a launcher with a different platform range or pricing model, consider Launchy, which is free to download with a recommended value of $10 USD and a suggested $3 contribution. Raycast may suit users seeking a freemium option with extensions, Clipboard History, and Notes; its free plan includes three months of Clipboard History and five Notes. For macOS users who want app launching and file searching in a free core, Alfred is an option, with a $34.00 USD one-time Single License for one user on two of their own Macs.
Cerebro is another free, open-source option for Linux, macOS, and Windows. PortableApps.com Platform is free and open source under GPL, with some MIT and CC components, for users considering a platform spanning Linux, macOS, and Windows. Ueli offers a free option across Linux, macOS, and Windows. Appetizer is a free, open-source alternative for Windows-oriented use. If you specifically want the X11 dynamic menu that inspired bemenu, dmenu is free for Linux under the MIT/X Consortium License.
Browse more options in App Launcher Software.
Verdict
Choose bemenu if you want a free, configurable menu with multiple build targets and keyboard controls, and can meet its build requirements. Its main advantage is backend and behavior flexibility; look elsewhere if you need file search or workflow support, or if your Wayland compositor lacks wlr-layer-shell.
Verdict
bemenu offers several backend build targets and configurable keyboard behavior, with licensing that differs between the client and library. Check the Wayland compositor requirement and build dependencies if you plan to compile it.
Questions
How much does bemenu cost?
The bemenu plan is free. No paid plans or usage limits are stated.
Is bemenu open source?
Yes. The client program and other sources except the library and bindings use GNU GPLv3 or later; the library and bindings use GNU LGPLv3 or later.
Which platforms does it support?
The listed platforms are Linux and macOS. The project documents macOS build instructions using Homebrew prerequisites and build-osx.sh.
What backends are available?
Documented build targets include curses, X11, and Wayland. Wayland requires a compositor implementing the wlr-layer-shell protocol, typically a wlroots-based compositor.
Can I change the keyboard bindings?
The README documents default keyboard bindings and optional Vim-style bindings. Enable the latter with --binding vim.
What is needed to build it?
Building requires a C compiler, and scdoc is needed to generate the man page. The macOS instructions use Homebrew prerequisites GNU Make and pkg-config.
Facts from bemenu's own pages
- Additional integration
- The project lists pinentry-bemenu, a Pinentry implementation based on bemenu, as a project using it. · github.com, 10 Oct 2026
- Backends
- The available build targets include X11, Wayland, and curses backends. · github.com, 10 Oct 2026
- Build options
- The documented build targets include the bemenu and bemenu-run clients and curses, X11, and Wayland backends. · github.com, 9 Oct 2026
- Build requirements
- Building requires a C compiler, and scdoc is needed to generate the man page. · github.com, 10 Oct 2026
- Clients
- The project provides the bemenu and bemenu-run clients. · github.com, 10 Oct 2026
- Clipboard
- Clipboard pasting uses wl-paste and xclip at runtime, attempted in that order. · github.com, 9 Oct 2026
- Clipboard integration
- Clipboard pasting uses wl-paste and xclip at runtime, attempted in that order. · github.com, 10 Oct 2026
- Customization
- Environment variables can set options, choose a backend, select renderer paths, and override rendering scale. · github.com, 10 Oct 2026
- Install scope
- The README says the provided Nix expression installs only the curses backend. · github.com, 9 Oct 2026
- Integration
- The README lists pinentry-bemenu as a project using bemenu. · github.com, 9 Oct 2026
- Keyboard controls
- Default keybindings support navigation, filtering, selection, execution, and multi-selection. · github.com, 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, 10 Oct 2026
- macOS build
- The README provides macOS build instructions using Homebrew prerequisites and build-osx.sh. · github.com, 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, 10 Oct 2026
- Purpose
- bemenu is a dynamic menu library and client program inspired by dmenu. · github.com, 10 Oct 2026
- Release security
- The README says releases are signed with the listed PGP key and published on GitHub. · github.com, 10 Oct 2026
- Release signing
- The README says releases are signed with key 29317348D687B86B and published on GitHub. · github.com, 9 Oct 2026
- Vim bindings
- Vim-style normal-mode bindings can be enabled with the --binding vim option. · github.com, 10 Oct 2026
- Wayland compatibility
- Wayland support requires a compositor implementing the wlr-layer-shell protocol, typically a wlroots-based compositor. · github.com, 9 Oct 2026
- Wayland support
- Wayland is supported only by compositors implementing the wlr-layer-shell protocol, typically wlroots-based compositors. · github.com, 10 Oct 2026
Where bemenu stands on Freedom251
- App Launcher Software#8 of 40
- App Launchers#10 of 40
- App launchers#10 of 40