A fast, minimal menu application for the Zurin Wayland compositor.
  • C 96.5%
  • CMake 3.5%
Find a file
2026-02-04 10:24:53 +00:00
include feat: Implement initial ZMenu application with Wayland layer shell integration and core components 2026-02-04 03:28:50 +00:00
protocols feat: Implement initial ZMenu application with Wayland layer shell integration and core components 2026-02-04 03:28:50 +00:00
src fix: Prevent recursive menu opening by filtering 'menu' entries in app listing and add project license and README. 2026-02-04 10:24:53 +00:00
.gitignore feat: Implement initial ZMenu application with Wayland layer shell integration and core components 2026-02-04 03:28:50 +00:00
CMakeLists.txt feat: Implement initial ZMenu application with Wayland layer shell integration and core components 2026-02-04 03:28:50 +00:00
LICENSE fix: Prevent recursive menu opening by filtering 'menu' entries in app listing and add project license and README. 2026-02-04 10:24:53 +00:00
README.md fix: Prevent recursive menu opening by filtering 'menu' entries in app listing and add project license and README. 2026-02-04 10:24:53 +00:00

ZMenu

A fast, minimal menu application for the Zurin Wayland compositor.

Features

  • Zurin Integration - Shows apps from Zurin config by default
  • TOML Menus - Custom menus in ~/.config/zmenu/custom/
  • JSON Support - Dynamic menus via command-line arguments
  • dmenu Mode - Read items from stdin
  • Fuzzy Filtering - Type to filter, scored by prefix/substring match
  • Keyboard Navigation - vim-style (j/k) and arrow keys

Dependencies

  • wayland-client
  • wayland-protocols
  • xkbcommon

Building

mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install

Usage

# Show Zurin configured apps (default)
zmenu

# Load custom TOML menu
zmenu --menu ~/.config/zmenu/custom/apps.toml

# Load from JSON
zmenu --json '{"items":[{"name":"Firefox","command":"firefox"}]}'

TOML Menu Format

[[menu]]
name = "Firefox"
command = "firefox"

[[menu]]
name = "Terminal"
command = "kitty"

Zurin Integration

Add to ~/.config/zurin/config.toml:

[apps]
menu = "zmenu"

Keyboard Controls

Key Action
↑/↓ or j/k Navigate items
Enter Select
Escape Cancel
Tab/Shift+Tab Next/Previous
Backspace Delete character
Typing Filter items

License

GNU General Public License v3.0 - see LICENSE