obmenu-generator is a simple, lightweight, easily configurable Perl script that generates a full Openbox XML-menu based upon the information present in *.desktop application files (related to fbmenugen and menutray).

It has full support for icons (respecting the current icon theme) and can generate either a static or a dynamic menu.

The parsing of the *.desktop files is provided by the Linux::DesktopFiles module.

In a dynamic menu, the entries are updated automatically when a new application is installed or when the current icon theme is changed by the user.

Starting with version 0.61, obmenu-generator introduced a new smart-cache system which will store all the required data from the *.destkop files in a new cache.db file, which is also updated automatically when a new application is (re)installed or when the config.pl or schema.pl are changed. With the new cache-system in place, a full menu with icons is generated in ~8ms (compared to ~60ms before).

In version 0.80, we introduced yet another layer of caching, which scales down and converts each menu icon to a PNG icon at a predefined size specified in the configuration file. This optimization makes a dynamic menu with SVG icons many times faster, as no conversions are needed to be done by Openbox when the menu is loaded.

Version 0.80 also introduced a new dependency, Gtk2, which is used for resolving the absolute paths for icons in a more reliable and predictable way.

Starting with version 0.82, obmenu-generator can provide locale support if the File::DesktopEntry module is installed.

To generate a static menu with icons, execute:
   obmenu-generator -i -s -c

To generate a dynamic menu with icons, execute:
   obmenu-generator -i -p

For more details, see: obmenu-generator -h

BONUS: Check out another nice script, which can be used with obmenu-generator, called obbrowser.

AUR Linkhttps://aur.archlinux.org/packages/obmenu-generator/

See also: https://erikdubois.be/how-to-make-an-openbox-menu-with-obmenu-generator-and-use-your-favorite-icons/