Efficient dynamic menu for Wayland
Find a file
adnano 8fe04a0c99 Limit number of menu lines by item count
Limit the number of menu lines visible in line mode if there are less
items than lines. This brings wmenu's behavior in line with dmenu's.

Closes https://codeberg.org/adnano/wmenu/issues/64
2025-11-18 20:03:22 -05:00
docs Don't ignore stdin in password mode 2024-05-05 10:13:01 -04:00
protocols Support xdg_activation_v1 protocol 2024-04-07 08:51:57 -04:00
.gitignore Initial commit 2022-01-16 08:32:58 -05:00
LICENSE Update LICENSE 2024-02-27 08:50:29 -05:00
menu.c Limit number of menu lines by item count 2025-11-18 20:03:22 -05:00
menu.h Limit number of menu lines by item count 2025-11-18 20:03:22 -05:00
meson.build Version 0.2.0 2025-04-29 15:23:10 -04:00
pango.c Free memory associated with the menu on exit 2024-03-02 11:31:13 -05:00
pango.h Move menu and rendering logic into separate files 2024-02-27 11:23:12 -05:00
pool-buffer.c Move menu and rendering logic into separate files 2024-02-27 11:23:12 -05:00
pool-buffer.h Move menu and rendering logic into separate files 2024-02-27 11:23:12 -05:00
README.md README: Update meson instructions 2024-11-01 19:35:39 -04:00
render.c Render menu after surface enter event 2025-03-01 07:04:00 -05:00
render.h Move menu and rendering logic into separate files 2024-02-27 11:23:12 -05:00
wayland.c Render menu after surface enter event 2025-03-01 07:04:00 -05:00
wayland.h Add wmenu-run executable 2024-05-02 21:39:54 -04:00
wmenu-run.c Limit number of menu lines by item count 2025-11-18 20:03:22 -05:00
wmenu.c Limit number of menu lines by item count 2025-11-18 20:03:22 -05:00

wmenu

wmenu is an efficient dynamic menu for Sway and wlroots based Wayland compositors. It provides a Wayland-native dmenu replacement which maintains the look and feel of dmenu.

Installation

Dependencies:

  • cairo
  • pango
  • wayland
  • xkbcommon
  • scdoc (optional)
$ meson setup build
$ ninja -C build
# ninja -C build install

Usage

See wmenu(1)

To use wmenu with Sway, you can add the following to your configuration file:

set $menu wmenu-run
bindsym $mod+d exec $menu