New dependency for kdelibs and kdebase: dbusmenu-qt

Aurélien Gâteau agateau at
Thu Apr 29 10:16:32 BST 2010

On 28/04/2010 23:56, Ben Cooksley wrote:
> On Thu, Apr 29, 2010 at 9:47 AM, Christoph Feck <christoph at> wrote:
>> On Wednesday 28 April 2010 22:14:26 Tom Albers wrote:
>>> That said, let's move on and appreciate the new feature.
>> Yeah, like the missing icons on the systray menus (e.g. Konversation). I mean,
>> I do not really believe that the code has not been tested.
> This change also severely breaks KNetworkManager ( it is useless now
> ), I had to use nm-applet to connect to my wireless network yesterday
> following this ( the Plasmoid didn't work either... )

This is true, but let me add some information about KNetworkManager:
While working on dbusmenu, KNetworkManager was identified as an
application which would be broken.

This issue was discussed with Will Stephenson: I initially proposed to
turn the menu into a dialog showing network connections in a QListView,
but Will suggested it would be better to work on the networkmanagement
Plasma applet rather than improving KNetworkManager, which is considered
to be an interim solution. I remotely participated to the latest Tokamak
sprint where networkmanagement applet devs worked on getting the applet

In the end the applet got improved quite a bit, and is usable, at least
for me, but it's difficult if not impossible to ensure the applet is a
full 1 to 1 replacement of the monolithic binary because there is a lot
of different hardware and software configurations, leading to situations
which are difficult to reproduce and thus to test for developers.

To ensure KNetworkManager was still usable with dbusmenu, I added a
hackish way to disable dbusmenu in KStatusNotifierItem: it won't export
the menu on dbus if you set the environment variable "KSNI_NO_DBUSMENU".
It's a dirty hack, but I felt it would not be a good idea to add a
proper API for this, as we should encourage developers to use standard
menu items. Kubuntu Lucid will ship with a one-line patch in
KNetworkManager which sets this environment variable in main(). I
haven't proposed it for merging, but I can do it if you feel it's necessary.


More information about the kde-core-devel mailing list