"If you want the holes in your knowledge showing up try teaching someone."
Networkmanager in KDE4.
Networkmanager is a daemon that keeps track of lower level bits on computers that have changing network hardware. It's designed to do this dynamically, and exchange information about status with a user interface that acts as configuration UI and policy agent. Networkmanager has gone through a large redesign between the 0.6 and 0.7 version, including the necessary API and DBus interface changes. Not without advantages though. I personally didn't really like networkmanager's behaviour in the past, found it too random, too much getting in the way. Networkmanager 0.7 is better in that regard, it doesn't drop my connection all the time for a start, it stays online while you log out and operates mostly within the bounds of what I deem sane.
So one of my personal goals is to not make all those mistakes in the interface for networkmanager in KDE4. We're not there yet, but progressing OK. Settings for wired and wireless start to work, as in "at least three persons on this Planet have ever been able to connect to a wireless network using it". It has UI glitches, it's not nicely streamlined for workflows we have in mind, the configuration interfaces are no beauty yet, and it has bugs, lots of it. It is in no way near release quality yet, more like an early Alpha. We're trying to have a first working version out within the next couple of months, hopefully in time for the distros that ship in spring. So the applet won't ship with KDE 4.2 we're planning to release it individually so you (or your distro) can grab it in the meantime. We're looking at putting it into KDE 4.3 then.
One of the projects I've been working on over the last couple of months is the networkmanager plasmoid for KDE4. Will has put the infrastructural bits and pieces that are needed to work with networkmanager 0.7 into place. There is the networkmanager backend for Solid, KDE's library for interaction with hardware, but also all the different configuration interfaces for all kinds of network access.
During development of the networkmanager plasmoid, I've often used the GNOME nm-applet. It does the job quite well and is a reliable interface to networkmanager. Something I find a bit confusing is that it offers two context menues, one on right click and one on left click. I often find myself looking in both until I've found the option I've been looking for. This also has to do with a limitation of the whole systray interface, which seems really outdated when looking at how we usually do these things in Plasma. As a matter of fact, nm-applet uses the GNOME keyring, which reminds me that it would be nice at some point to share this functionality (i.e. have it uses kwallet on KDE and keyring on GNOME). Right now when using nm-applet, I've two password stores that I need to unlock after login. I've also tried some other 'wifi connection' UIs. One, I've seen in Windows was particularly bad. It would ask the user to type in a WEP key (the long versions, often), didn't offer any help doing this, but made it made it harder. You had to fill in the long HEX key twice, and both fields for that were password fields, so you can't even see what you're typing. It was just plain horrible. Quite a bit better is the interface of the iPod Touch (and presumably the iPhone). It does a good job on the input side (especially given that the user doesn't use a keyboard but the touchscreen). It does fall flat on its face technically though. First, support for WPA2 is lacking, that rules out access to the network at the university, and supposedly many others. Then, it often reports that it has established a connection when it merely logged on to the access point, but didn't get an IP yet. Since you can often connect to accesspoints (even encrypted ones) but don't actually get an IP address, that information is often bogus and it can be quite annoying being told you're connected, while you're not. One of my favourite wifi settings UI is the one shipped with Maemo. While it's nothing fancy, it gets the job done reliable and it doesn't confuse me.
If you're interested in hacking on it or just trying it, the current code can be checked out from playground. For this to work, you need to have the libsolid code from kdebase/workspace/solid installed. There are actually two networkmanager plugins, one is for networkmanager 0.6, one for 0.7. The latter one is the one we're relying on. Yesterday, coolo started committing patches to the networkmanager plasmoid, scratching an itch. That's pretty cool given that he's one of KDE's oldtimers. A true honour to share code with :-)
[ Tue, 06 Jan 2009 02:13:16 +0100 ] permanent link
This weblog does currently not offer the option to comment. I would be happy to receive an email with your thoughts.
23-11-2007, 18:44 h
© Sebastian Kügler