Tokamak.finished()

Last night was the last night of Tokamak 4, our semi-annual Plasma sprint for me, this morning I boarded a train to Düsseldorf (Germany), where I’m staying for another two nights with K.

Tokamak 4 was again a total blast. The Suse/Novell offices in Nürnberg were the perfect place to get a (for a sprint, anyways) rather large group together to hack day and night. I think I averaged about 6 hours of sleep, not bad. On the other hand, I didn’t get as much done as I wanted, but got a number of other things to take care of, so that’s OK.

You’re probably most interested in the progress of the network management Plasma widget, so I’ll explain a bit what we’ve been working on. We is Will Stephenson and Alex Naumov from openSUSE, Aurelien Gateau from Kubuntu (who took part remotely), Martin Zilz of the Oxygen team and me. The goal of the network management plasmoid is three-fold: it should be very easy to get your network set up, it should be technically robust and flexible, and it should also look good doing all that. We started of with fixing some bugs, Will got a bug in our DBus service fixed which would put bogus connection items on the bus, which then showed up in the list of offered connections. Aurelien took care of polishing the user interfaces of many of the dialogues the network management infrastructure uses, for example for editing connections. He also nailed a bug which would pop up two connection details dialogues when trying to connect to a wireless network.

We also did some design work, in order to determine which functionality we’ll offer, and how. I think the result of that is really nice, but not finished yet, so I won’t bother showing a screenshot. The design session we held showed one thing rather nicely, all the ideas we had fit very well into the current, two-paned UI concept without adding additional clutter, we’ll even be able to make the UI less complex and offering more functionality. I think that this is really the Plasma way, and in extension KDE 4 way of designing. Offer great functionality in a smart way, do not clutter the UI but create streamlined workflows.

So, what’s coming? Well, first off the networkmanagement plasmoid supports of course all different kinds of networks, wireless, VPN already. We haven’t yet tested mobile broadband, but are definitely planning to also make this a first-class citizen. You’ll also be able to see detailed information about your connections (no matter which way you choose to connect). You can choose to "just connect", but also to use a specific interface for a connection, so people with multiple network adaptors of the same type get full control.

I’m especially pleased that Martin, a.k.a. mofux jumped in to provide us with some kick-ass new artwork for the wireless icons. The artwork we had been using up until last week had pretty bad contrast issues with the Air theme, the new artwork is much better in that regard, and also a lot clearer and easier on the eye at small sizes. We’ve also added theming support here (through Plasma’s SVG theming mechanics), which is a nice bonus.

On particular pet peeve of mine is the connection status. I want to see how long I still have to wait until my network is up and I can do all those cool Internet things. Tooltips aren’t very well suited for this, and they have the tendency to go away just before I want them to. Also opening the connection dialogue is not good enough for me, since it involves manual interaction. I want to resume my notebook and see at once how far along my connection attempt is. What I have right now is I think already pretty close (though only 90% there from the beauty point of view). The idea is to show the progress as an overlay in the network management icon in the panel’s notification area. It’s now implemented as a pie chart, that starts at 12 o’clock and completes as the connection goes through its different stages, like connection at 802.11 level, authenticating (you’ll get a nice hint that a password is required in the panel as well) and configuring the IP address. For not so technical users, this is readable since it re-uses concepts well known from the real world, for the more technical folks (I tend to refer to them as propellerheads ;)), it provides more information than just a busy-spinner. As an example, if it "hangs" at 7 o’clock, you know that the DHCP config is taking its time. This is something that has been bugging me in other wifi configuration tools forever, so hurray, another step taken towards the best connection management tool in the world. :-)

So, is it finished yet? Well, no. It’s in a better shape than last week — which is not always a given, because sprints are often used for larger redesigns, and indeed we did improve some UI concepts that required parts of the code to be changed. Most importantly though, we’ve been making great progress at hard-to-fix bugs, and what’s left now is tying up a couple of loose ends. I’ve been hacking away on my list of changes to the plasmoid itself and I’m pleased with the progress so far. It’s not done yet though, but I expect that within a couple of days’ hacking, we’ll get there. I don’t see any particular blockers from my side right now, which is good. I’m confident that we can release a beta version shortly and give it some time to stabilise until it’s officially released as part of KDE SC 4.5.

10 Responses to “Tokamak.finished()”

  1. schnebeck says:

    Nice to read about improvement of the network management user interface. I notice in current kubuntu kde 4.4 packages the KDE network manager is not multi session capable. A first session grabs the interface. When I start a second session I get a notification, that the user interface cannot be started. When I now close the first session, the remaining session has not user interface(!) Its a regression to kde 3.x

    Bye

    Thorsten

    • sebas says:

      I’m not sure what you mean exactly, but NetworkManager can only have one client attached. If you use the Plasmoid, you can have multiple, thanks to its design. knetworkmanager however can only be run once.

      • schnebeck says:

        Hi sebas,

        my use case is the PC of my parents. Each one uses a separate session. On one day my father is the first person who login its session after booting the PC, another day my mother runs the first session of the day. With current knetworkmanager the second session user have an unwanted info message that knetworkmanager already runs and if you want to keep starting it every session. When you now close the first running session of the day the remaining user loose control over the network. He has to logout and login and thats plain wrong for a multi user desktop.

        You can simply test it with “switch user->new session” (K->Verlassen->Benutzer wechseln->Neue Sitzung) Do you get the info message?
        Now switch back to the first session and close this one. Back on KDM you can choose from the menu the remaining session. Do you have a working network?
        Oh, maybe an important hint. I talk about wlan network with wpa keys! If you use standard lan that needs no kwallet stored pass-phrase the network runs without knetworkmanager!

        So if I understand you correct, I have to switch from knetworkmanager to networkmanager plasmoid in both sessions when its ready to get rid of unwanted info windows and to have permantent network control?

        Thanks

        Thorsten

      • There can be only one NetworkManagerUserSettings service. In KNetworkManager the settings service and the UI are in the same process, so on a second login as Thorsten notices, the UI will not start.

        For the plasmoid the settings service runs inside KDED so this will not start in the second session, but the separate Plasma widget UI can display status. Whether it may control networking depends on your system’s dbus policies.

        • Thorsten Schnebeck says:

          Hi Will,

          thanks for your information. A few questions for a better understanding:
          Does a second kded moan about not getting NetworkManagerUserSettings service?
          When kded of the first session quits does kded of the second session take over NetworkManagerUserSettings service automagically? Makes it sense to run a third kded before kdm starts that only handle NetworkManagerUserSettings for all users and use the remote plasmoid feature for the session users?

          Bye

          Thorsten

  2. What will you do in Düsseldorf?

  3. Magnus says:

    Great to hear about the progress. I wonder if the networkmanager will be able to handle bluetooth connected (after the connection has been established) mobile phone modems? Or is it already? That has often been a bit of a hassle, I think.

  4. Jens Uhlenbrock says:

    IMO, one big shortcoming of KDE’s network management is the lacking possibility to set a proxy server for a certain connection. I was in the library on Friday and there I have to use a proxy to enter the web. Of course, I forgot about that now and it took me 15 minutes to figure out, why my internet was not working on my laptop. My N900 had no difficulties with this as it stores proxies for certain internet connections. For a mobile device, that makes much more sense.

    • sebas says:

      Sounds like a sensible thing to do, indeed. I don’t think it’s done at this point. Do you feel like having a look into it and providing a patch? (Admittedly, it’s not very high in my personal TODO, as I don’t have to use any proxy at all.)