Tuesday, 23 July 2013

Re: Future of Appmenu Outside Unity

On Tue, 2013-07-23 at 21:01 -0400, Scott Kitterman wrote:
  Since shortly after Mark announced the global menu [1] Kubuntu has shipped   plasma-widget-menubar to provide this functionality [2] and not only for   Qt/KDE, but for Gtk apps as well [3].  This has served us well on netbooks for   three years and I use it myself on a daily basis on a conventional laptop.    As of today [4], that's no longer possible.  Appmenu-gtk has been replaced by   unity-gtk-module, which (apparently intentionally) doesn't work outside Unity   [5].    Is this correct?  That's my impression, but I'm not aware of any discussion   this, so I may have missed something.  

Oh, cool.  I honestly didn't realize that it was still in use, very cool that it has been useful!

In general, the big migration here is away from DBusMenu (which was Ubuntu-only) to GMenu which is in GLib.  That's basically the difference between appmenu-gtk and unity-gtk-module.  There's no technical reason that it would only work on Unity, even if it's in the name.

Which means, in a nutshell, that plasma-widget-menubar would need some porting.  Canonical has been working on QMenuModel[1] which provides simple Qt bindings for GMenu exported menus, and should work well for this purpose.  I know that Lars (cc'd) has some changes that he's working on there, so it is expected to get better.  We are using QMenuModel for all of the indicators in the Unity 8 interface, so you can expect it to be well supported.

In indicator-appmenu (the module in Unity that supports the global menu bar) we are currently supporting both DBusmenu applications and GMenu based ones.  This is largely because everything isn't ported yet.  It has been an unofficial goal to remove DBusmenu for the LTS.  I see no issue in keeping appmenu-gtk as a package, but I would consider it deprecated.


[1] https://launchpad.net/qmenumodel