Yet Another Openbox Pipe-Menu Generator

If you ever used the openbox-menu command and it doesn’t work, chreli-ob-menu is a reasonable alternative (I could have a biased opinion on that though). It is yet another simple perl script (perl is your friend, embrace it) that programmatically reads .desktop files in /usr/share/applications and ~/.local/share/applications and generates <openbox_pipe_menu> entries when called from ~/.config/openbox/menu.xml. It is also cognizant of new applications that are installed.

Installation

Download chreli-ob-menu_1.0.20160923.deb and execute the following:

Disclaimer: This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

sudo /usr/bin/dpkg -i chreli-ob-menu_1.0.20160923.deb

Usage

chreli-ob-menu [options]

Options:
    -a|--all                        generate pipe-menu for all categories
    -c|--category <category>        category to generate pipe-menu for
    -l|--list                       lists categories

    -h|--help                       display this help message
    -v|--version                    display version

Listing Supported Categories

chreli-ob-menu -l
Valid Categories:
 o Accessories
 o Development
 o Emulator
 o Game
 o Graphics
 o Internet
 o Multimedia
 o Office
 o Other
 o Preferences
 o System

Example Usage: Specific Category

<menu execute="/usr/bin/chreli-ob-menu -c System" id="openbox-System" label="System" icon="" />

The above will create a sub-menu called System with those applications using the category of System. If openbox has been compiled to show icons with menus, you can include the icon parameter that points to the image you would like to use.

Example Usage: All Categories

If you want to take the lazy approach and just have all the categories generate, you can do so by adding the following to ~/.config/openbox/menu.xml:

<menu execute="/usr/bin/chreli-ob-menu -a" id="desktop-all-menu" label="Menu" icon=""/>

Again, if openbox was compiled to include an icon with the menu items, you can give the icon parameter a value.

If you want just a static menu, you can call /usr/bin/chreli-ob-menu from the command line and copy-n-paste the output into ~/.config/openbox/menu.xml. You will, however, lose the dynamic capability when new applications are installed.

The chreli-ob-menu utility will do its level best to display icons to menu entries, including sub-menus, based on the gtk-icon-theme-name setting in ~/.gtkrc-2.0.

And that’s all I have to say about that.