- Dual Mode: Generate static XML menus or dynamic piped menus (Openbox).
- Robust Icon Detection: Automatically finds the best icon by reading the GTK icon theme from
~/.config/gtk-3.0/settings.ini. - Pretty Formatting: Outputs clean static XML.
- Custom Footer: Supports a customizable footer with dynamic icons and separators.
- Auto-Reconfigure: Can automatically reconfigure Labwc after generating the menu.
This script currently looks for icons in /usr/share/icons. It does not search ~/icons or ~/.local/share/icons.
If your settings.ini specifies a theme (e.g., "Papirus") that is installed locally in your home folder, the icons will not appear in the menu. Please ensure your desired icon theme is installed system-wide in /usr/share/icons.
python3 menu-generator.py -o ~/.config/labwc/menu.xmlpython3 menu-generator.py -o ~/.config/labwc/menu.xml -f false![]() |
![]() |
![]() |
![]() |
menu.xml for the openbox menu shown above
<?xml version="1.0" encoding="UTF-8"?>
<openbox_menu>
<menu id="root-menu" label="Root Menu">
<menu id="apps-menu"
label="Applications (Dynamic)"
icon="/usr/share/icons/Papirus/48x48/categories/applications-all.svg"
execute="python3 /path/to/menu-generator.py" /> <!-- Edit this line -->
<!-- menu without footer: "python3 /path/to/menu-generator.py -f false" -->
<item label="Exit" icon="/usr/share/icons/Tela/32/status/system-log-out.svg">
<action name="Exit"/>
</item>
<item label="Terminal" icon="" execute="xfce4-terminal">
</item>
</menu>
</openbox_menu>
- Edit the
footer_itemslist in the script to customize menu footer entries with your preferred applications and icons. - Edit
terminal_stringto set your preferred terminal emulator.
Original work by onuronsekiz



