Hi, I knew this could sounds like spam, but it isn't.
Right now I'm writting a small app that do this. I'm writting it in the D programming language. The app it's in its 0.2alpha version, but is absolutelly usable (the alpha part is because I just re-written it in a Object Oriented fashion). In fact it's what I'm using (and 2 or 3 of my closest friends) each day of my life at both work and home desktops.
The features are:
- Generates a full menu using the information present in *.desktop files (with static content or dinamically generated).
- No dependencies (it is statically compiled in a 367K binary)
- In a relative modest machine with ~200 *.desktop files it generates the full menu in ~90ms. In mine's it takes 14-19ms. This feature allows to call it in a way that generates the menu dinamically each time without any notable time penalization. (***This is the key function to this thread***)
- Very configurable and simple to use.
- Support to exclude menu items throught a really simple (but confortable and powerfull enough) regular expressions subset.
- Support to exclude menu items based on the directive OnlyShowIn present in *.desktop files.
- Easy access to edit OpenBox and obmenugen configuration files througth a submenu.
I called the program obmenugen and here are some calling examples:
To generate (and overwrite any existing) menu.xml with static content.
To generate (and overwrite any existing) menu.xml with instructions to generate dinamically the menu content each time you ask for him (for the menu, right-clicking on desktop or via a keybind).
By now it's not hosted anywhere, anyone interested, please contact me for a copy. I promess I'll be registering a project at sf.net or dsource.org ASAP.
See you
PS: I don't use ubuntu or debian, I use ArchLinux, but I'm in this forums 'cause I really love OpenBox.
PS2: I don't really speak english, so, sorry about my mistakes.