Skip to content

mkay/clickbuffet

Repository files navigation

ClickBuffet

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.

ClickBuffet Icon

Features

  • 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

Compatibility

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.

Dependencies

  • python
  • python-gobject
  • gtk3
  • gtk-layer-shell
  • python-cairo
  • A Nerd Font (e.g. ttf-jetbrains-mono-nerd) for icons

Installation

Arch Linux

makepkg -si

Debian / Ubuntu

Download the .deb from the releases page and install:

sudo apt install ./clickbuffet_*_amd64.deb

Manual

install -Dm755 clickbuffet /usr/bin/clickbuffet
install -Dm755 clickbuffet-config /usr/bin/clickbuffet-config
install -Dm644 menu.conf /usr/share/clickbuffet/menu.conf

Usage

Bind 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 = clickbuffet

To use a custom config file:

clickbuffet --menu-file /path/to/menu.conf
clickbuffet -m /path/to/menu.conf

Press Escape or click outside the menu to dismiss.

Flags

Flag Description
-m, --menu-file FILE Use a specific menu config file
--no-anim Disable animations

Configuration

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.

Format

# 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).

Example

 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

Config Editor

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

License

MIT

Screenshots

ClickBuffet in action

Disclaimer

This project was developed with AI assistance. The code has been analysed with Codacy and Bandit. Use at your own discretion. Codacy Badge

About

Another lightweight, configurable popup launcher menu for Wayland.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors