johanmalm/jgmenu logo

johanmalm/jgmenu

Free

An X11 menu

FreeFree tier
Type
Open Source

About johanmalm/jgmenu

jgmenu is a simple, independent, and contemporary-looking X11 menu designed for scripting, modding, and tweaking. It is fully hackable with a minimal code base and does not rely on toolkits like GTK or Qt—instead using cairo and pango for rendering. jgmenu can optionally adopt appearance settings from XSettings, tint2, and GTK. It supports multiple menu formats: bespoke CSV menus, XDG-compatible application menus with localization, pipe menus, and Openbox XML menus (including pipe-menus). It also features UTF-8 search support. jgmenu is lightweight and integrates well with window managers and panels such as dwm, i3, bspwm, Openbox, polybar, and tint2.

Key Features

No dependency on toolkits like GTK or Qt; uses cairo and pango for rendering
Supports multiple menu types: bespoke CSV, XDG application menus, pipe menus, and Openbox XML menus
UTF-8 search support for filtering menu items
Optional integration with XSettings, tint2, and GTK for appearance
Lightweight and designed for scripting, modding, and tweaking
Works with popular window managers and panels: dwm, i3, bspwm, Openbox, polybar, tint2

Pros & Cons

Pros
  • Very lightweight with no heavy toolkit dependencies
  • Highly hackable and scriptable, suitable for advanced customization
  • Supports multiple popular menu formats (XDG, Openbox, pipe menus)
  • UTF-8 search works across all menu types
  • Can reuse GTK/tint2/XSettings color schemes for consistent look
  • Simple codebase makes it easy to understand and modify
Cons
  • X11 only; no native Wayland support
  • Documentation may be sparse for non-standard configurations
  • Limited to menu functionality; doesn't include panels or other desktop components
  • Appearance options rely on external tools for full customization

Best For

Creating custom application launchers for tiling window managersReplacing or complementing existing Openbox menus with a modern interfaceBuilding scripted, dynamic menus with pipe menus for system status or automationProviding a minimal menu for standalone X11 sessions without full desktop environments

FAQ

What is jgmenu?
jgmenu is a simple, independent X11 menu designed for scripting, modding, and tweaking. It renders using cairo and pango and does not depend on GTK or Qt.
What menu formats does jgmenu support?
It supports bespoke CSV menus, XDG-compatible application menus with localization, pipe menus, and Openbox XML menus (including pipe-menus).
Does jgmenu require a desktop environment?
No, jgmenu is X11-native and works standalone or with window managers like dwm, i3, bspwm, and Openbox.
Can jgmenu style itself to match my system theme?
Yes, it can optionally use appearance settings from XSettings, tint2, and GTK to blend with your desktop.