This is my attempt to get a minimalist integration with Ubuntu's dbusmenu. I'm trying to do this on Ubuntu 12.04.
I'm interested in this because I believe non-Gtk and non-Qt apps should be integrated with the Ubuntu experience. SDL games and GNUstep applications should have as much ability to integrate with the excellent experience provided in Ubuntu as GNOME and KDE applications.
I'm trying to pull in as little of Gtk-related things as possible, while retaining code simplicity.
As of June 24th 2013, code produces a working menu.
-- Ivan Vucica email@example.com
An X11 window appears to be a requirement.
Looks like the easiest way to approach this is by using libdbusmenu-glib.
We seem to need a glib mainloop; so we need to try and integrate X11 event handling with this mainloop. Can it be avoided? One can probably let the glib mainloop run only occasionally. This'd be preferable.
Looks like registration with the registrar works. But the menu never appears?
Why does the menu bar read "Hud" when the X11 window title is clearly "Mini-DbusMenu"?
Standalone items cannot be directly in the root. Root items must be 'menus' with 'sub-menuitems'.
- AskUbuntu answer from author of dbusmenu, Ted Gould: http://askubuntu.com/questions/98692/how-to-add-support-for-the-global-menu-to-a-python-non-gtk-non-qt-app
- Ubuntu's Mock JSON app: http://bazaar.launchpad.net/~indicator-applet-developers/indicator-appmenu/trunk.0.4/view/head:/tools/mock-json-app.c#L72
- Evolution-Indicator: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/precise/evolution-indicator/precise/view/head:/src/evolution-indicator.c
- Java Swing Ayatana: http://java-swing-ayatana.googlecode.com/svn/trunk/jayatana/jayatana/org_java_ayatana_ApplicationMenu.c