The last thing you need is another lightweight, configurable popup launcher menu for Wayland. Appears at the mouse cursor position, similar to a right-click context menu. Trigger with your own shortcuts.
Built with Python, GTK3, and gtk-layer-shell.
Alpha software. Honk if it works.
- Popup menu at cursor position on any wlroots-based Wayland compositor
- Plain text configuration — easy to hand-edit
- Nerd Font icon support — paste glyphs directly into the config
- Per-item colors — hex (
#ff7700) or CSS color names (coral) - Nested submenus with hover-to-open
- Smart edge-flipping — menu repositions to stay on screen
- GUI config editor (
clickbuffet-config) - Single instance lock
Works on any wlroots-based compositor:
- Wayfire
- Sway
- Hyprland
- labwc
- river
- dwl
Does not work on GNOME (Mutter) or KDE (KWin) as they don't support the wlr-layer-shell protocol.
pythonpython-gobjectgtk3gtk-layer-shellpython-cairo- A Nerd Font (e.g.
ttf-jetbrains-mono-nerd) for icons
makepkg -siDownload the .deb from the releases page and install:
sudo apt install ./clickbuffet_*_amd64.debinstall -Dm755 clickbuffet /usr/bin/clickbuffet
install -Dm755 clickbuffet-config /usr/bin/clickbuffet-config
install -Dm644 menu.conf /usr/share/clickbuffet/menu.confBind clickbuffet to a key or mouse button in your compositor config. For example, in Wayfire (~/.config/wayfire.ini):
[command]
binding_menu = <ctrl> BTN_RIGHT
command_menu = clickbuffetTo use a custom config file:
clickbuffet --menu-file /path/to/menu.conf
clickbuffet -m /path/to/menu.confPress Escape or click outside the menu to dismiss.
| Flag | Description |
|---|---|
-m, --menu-file FILE |
Use a specific menu config file |
--no-anim |
Disable animations |
Config file: ~/.config/clickbuffet/menu.conf
If that file doesn't exist, the app falls back to /usr/share/clickbuffet/menu.conf (installed by the package). To customize, copy it to ~/.config/clickbuffet/menu.conf and edit from there.
# Comments start with #
Terminal | foot
Browser | firefox | dodgerblue
---
Places | coral >
Home | xdg-open ~
Downloads | xdg-open ~/Downloads
---
Lock | swaylock
Each line is one of:
| Type | Format | Example |
|---|---|---|
| Item | [icon] Label | command [| color] |
Firefox | firefox | coral |
| Submenu | [icon] Label [| color] > |
Places > |
| Separator | --- |
--- |
| Comment | # text |
# Power options |
- Icon — a single Nerd Font character at the start of the label (optional). Browse icons at nerdfonts.com/cheat-sheet.
- Color — optional, per-item. Accepts
#rrggbb,#rrggbbaa, or any of the 148 CSS named colors (e.g.coral,dodgerblue,mediumseagreen). - Submenus — children are indented below the parent (4 spaces).
Terminal | foot | dodgerblue
Browser | firefox | coral
Editor | code | mediumpurple
---
Places | goldenrod >
Home | thunar ~
Downloads | thunar ~/Downloads
Pictures | thunar ~/Pictures
---
Power | #e06c75 >
Lock | swaylock | steelblue
Reboot | systemctl reboot | #e5c07b
Shutdown | systemctl poweroff | #e06c75
Run clickbuffet-config for a GUI editor:
- Add, edit, delete items, submenus, and separators
- Reorder with Up/Down buttons
- Indent/Unindent to restructure hierarchy
- Drag and drop reordering
- Double-click to edit an entry
- Saves to
~/.config/clickbuffet/menu.conf
MIT
This project was developed with AI assistance. The code has been analysed with Codacy and Bandit. Use at your own discretion.
