A dmenu port to wlroots. Credit: https://github.com/nyyManni/dmenu-wayland/tree/master
.dir-locals.el | ||
dmenu-wl.1 | ||
dmenu-wl_run | ||
dmenu.c | ||
dmenu_path.c | ||
draw.c | ||
draw.h | ||
LICENSE | ||
meson.build | ||
README.md | ||
wlr-layer-shell-unstable-v1.xml |
dmenu-wl - dynamic menu
dmenu-wl is an efficient dynamic menu for wayland (wlroots).
TODO
Missing dmenu (for X) features:
- Echo (non-interactive use)
- Handling pagination
- Vertical layout
- Return-early
- Control-Enter handling
- Keyrepeat
- Choice (-c) -mode
Other TODO items:
- Cleaner exiting
- Generate protocol files with
wayland-scanner
Requirements
Requires a compositor which implements wlr-layer-shell and xdg-output protocols. Basically this means a wlroots-based compositor is needed. Gnome and KDE are therefore not supported. Tested with sway 1.0.
Required libraries (and headers):
- wayland-client
- cairo
- pango-1.0
- pangocairo-1.0
- xkbcommon
- glib-2.0
- gobject-2.0
Installation
mkdir build
meson build
ninja -C build
sudo ninja -C build install
Running dmenu-wl ...
... as the application launcher in Sway
Add to sway configuration (~/.config/sway/config
) to run the launcher on Win+D.
bindsym $mod+d exec dmenu-wl_run -i
... from the command-line
See the man page for details.
Usage: dmenu-wl [OPTION]...
Display newline-separated input stdin as a menubar
-e, --echo display text from stdin with no user
interaction
-ec, --echo-centre same as -e but align text centrally
-er, --echo-right same as -e but align text right
-et, --echo-timeout SECS close the message after SEC seconds
when using -e, -ec, or -er
-b, --bottom dmenu appears at the bottom of the screen
-h, --height N set dmenu to be N pixels high
-i, --insensitive dmenu matches menu items case insensitively
-l, --lines LINES dmenu lists items vertically, within the
given number of lines
-m, --monitor MONITOR dmenu appears on the given monitor
(0-based index or monitor name)
-p, --prompt PROMPT prompt to be displayed to the left of the
input field
-po, --prompt-only PROMPT same as -p but don't wait for stdin
useful for a prompt with no menu
-r, --return-early return as soon as a single match is found
-fn, --font-name FONT font or font set to be used
-nb, --normal-background COLOR normal background color
#RRGGBB and #RRGGBBAA supported
-nf, --normal-foreground COLOR normal foreground color
-sb, --selected-background COLOR selected background color
-sf, --selected-foreground COLOR selected foreground color
-v, --version display version information