(When I say none before I mean none that I could find. If I could find one, I wouldn't have to make this then. Anyway..)

Hey guys, I'm here to present my project 'obtap'. It's inspired by obmenugen, a great menu generator written in D which I've used before obtap. The reason I don't use it anymore is because it wasn't as customizable as I'd of liked it to be and that's why I've made obtap.

I've developed a small (under <150KiB, only using the C++ standard library which means you don't have to install any dependencies) Openbox menu generator that's grown to do many things:

obtap can generate pipe menus, static menus, a dynamically updating menu (basically a menu with it's contents a pipe menu).

obtap can easily add separators for menu layout and edit entries in such ways of renaming/merging categories, setting entry categories, renaming entries and deleting entries.

obtap has command line options to specify menu type (pipe, static, dynamic), the configuration file and the output.

The selling point, I'd say at least, is that obtap can (but doesn't have to) load desktop files from directories as entries, which you can then process with the above methods.

Here's my menu:

That's created using this configuration file:

# Jookia's obtap configuration file. output(~/.config/openbox/menu.xml) type(openboxDynamic) locations(/usr/share/applications,/usr/share/applications/kde4) extensions(desktop) obeyOnlyShowIn(GNOME,KDE,XFCE) ignoreCategories(GTK,GNOME,Qt) alphabetize(true) customEntry(Logout;shutdown-dialog.py) customEntry(Reconfigure Openbox;openbox --reconfigure;Utilities) customEntry(Nitrogen;nitrogen;Settings) replaceCategoryName(AudioVideo;Multimedia) replaceCategoryName(Game;Games) replaceCategoryName(Graphics;Multimedia) replaceCategoryName(Utility;Utilities) replaceCategoryName(System;Utilities) replaceEntryName(GNU Image Manipulation Program;GIMP) deleteEntry(Root Terminal) deleteEntry(Open Folder with Thunar) menuEntry(separator;Applications) menuEntry(categories) menuEntry(separator) menuEntry(entry;Logout)

Here's how to get it from the GitHub page.

git clone git://github.com/Jookia/obtap.git cd obtap make bin/obtap -c goodies/example.conf openbox --reconfigure

That'll create a dynamic example menu and update Openbox.

To edit it, edit example.conf or copy it to ~/.config/obtap.conf and run obtap without the '-c goodies/example.conf'.

You can also install it by using the PKGBUILD in the goodies folder.

I don't have much to say. Uh.. Thanks for reading and if you do use it, I'd love to know.

Last edited by Jookia (2010-11-07 22:35:46)