Jan Grulich

Plasma-nm – usability/design improvements

At first, I would like to thank you, becase we’ve got quite a lot of comments during our usability studies and it was really helpful. You could see a prototype in Björn’s blog post and now, when it’s almost finished, I would like to show you our result to get again some feedback. I hope you like it more than previous versions.



The last missing functionality are options for opening the editor and turning on/off wireless etc. We are still not sure where to put them, so there is still a space for your ideas. And again, we really need a design hero, because as you can see in the video, our icons needs some polishing, i.e the vpn icon is barely visible and the ethernet icon with question mark is quite ugly, that’s a proof that developers are not good designers.

KDE PIM Solid Sprint Report

Last week, we (RedHat guys, but mostly Daniel Vrátil) hosted KDE PIM Sprint here in Brno and this was a great opportunity for other hackers/friends to join us earlier and hack on Solid. I was working mainly with Lukáš Tinkl on libmm-qt (Qt library for ModemManager), which has now full support of ModemManager 1.0. We made some changes even in plasma-nm, but mostly bugfixes and we improved support for displays with high resolution. Another thing that was going on over the past week was usability study (thanks to Björn Balazs) and you can still tell us your opinions and vote for Björn’s ideas, because we really want to make plasma-nm better. We also discussed usability with Thomas Pfeiffer on the PIM Sprint and I hope you will like the result, but I will write about it later when we have some demo so we can get some criticism :).

We also released a new version of our “networkmanagement compilation” including plasma-nm, libmm-qt and libnm-qt and we decided to follow versions of NetworkManager and ModemManager to make it less confusing.

It’s now quite confusing which versions of libmm-qt and libnm-qt you need, because we have two stable releases of libmm-qt and libnm-qt, but it’s pretty simple. If your distribution has ModemManager 1.0, you need the new versions (libmm-qt 1.0.0 and libnm-qt 0.9.8), if your distribution has ModemManager < 1.0, use previously released versions (libmm-qt 0.5.1 and libnm-qt

Second release of plasma-nm

Just a small announcement that we are releasing a second version of our new networkmanagement applet.

Here is a list with changes in this version:

  • plasma-nm is renamed to match the names from the old networkmanagement applet (kded module, applet name etc.)
  • visual changes (different icons, improved speed of animations, applet is a little bit smaller)
  • improved notifications 
  • experimental support for ModemManager 1.0 (must be compiled with libmm-qt and libnm-qt from git using master branches)
  • ModemManager support is optional
  • StrongSwan VPN plugin

And some closed bugs:

  • #325783 – plasma-nm doesn’t install icon network-defaultroute, which is need by kde-nm-connection-editor.desktop
  • #324016 – plasma crashes when a vpn connection is activated
  • #324708 – Crash when launching second user desktop
  • #325290 – Cannot add static routes on OpenVPN connections using the latest plasma-nm in Kubuntu Saucy
  • #322192 – WPA2 dialog blocks Plasma

We also released a small bugfix release for NetworkManagerQt [2], which is needed for this version of plasma-nm. ModemManagerQt [3] doesn’t have new release and you can use the previously released version. If you want to compile plasma-nm with the new ModemManager 1.0 support (mostly necessary for new distributions like Fedora 20, OpenSuse 12.3, Archlinux etc.), you have to compile NetworkManagerQt [4] and ModemManagerQt [5] from git using master branches.

[1] – http://download.kde.org/unstable/plasma-nm/plasma-nm-
[2] – http://download.kde.org/unstable/networkmanager-qt/
[3] – http://download.kde.org/unstable/modemmanager-qt/0.5.1/src/libmm-qt-0.5.1.tar.xz.mirrorlist
[4] – http://quickgit.kde.org/?p=libnm-qt.git
[5] – http://quickgit.kde.org/?p=libmm-qt.git

GSoC – Plasma active vs Plasma-nm

We released the first stable version of plasma-nm today, but that was not the only thing I was working on during the last (3) months. I was working on my GSoC project and because GSoC almost ends I would like to show you my results. My GSoC project has two parts, the first part is network applet optimized for Plasma active and the second is active settings for configuring network connections.


The first idea was to have two versions of plasma-nm applet, one version for desktop and one for plasma active, but we had a session/discussion at the Akademy with Thomas and Bjorn and we came up with the perfect design which is suitable for both parties. No additional changes are needed to make the applet easily usable on Plasma active.

Some screenshots from Plasma active running on Nexus 7

Active settings

My focus in this GSoC was especially the network active settings,  but it was much more difficult than I thought. So far I have fully functional wired, wireless  (except WPA Enterprise) and (almost finished) GSM connections, which you can add or edit. VPN connections has no configuration yet and you can only connect/disconnect them. Since GSoC ends in a few days, I will focus now on bugfixing and small improvements and leave the rest (VPN and WPA2 Enterprise) after GSoC, because it is beyond my power to implement everything during GSoC period and those are the most complex and I think they are not so common on tablet devices.

Some screenshots

setting2 setting1



You can  find it in plasma-nm git repository (http://quickgit.kde.org/?p=plasma-nm.git) under “active” branch.

Another Akademy impressions

I was at Akademy for the first time and it was a really great week with all the people there. It’s an amazing event, because you can meet all the people personaly and you finally find out who is in the other side of computer. I arrived to Bilbao on Friday afternoon with Daniel Vrátil so we had time to look around Bilbao before Friday evening in a pub where we got finally our Akademy badges. Saturday and Sunday were dedicated to talks.  I especially liked the talk called “Declarative widgets” presented by Kevin Krammer, because I really like QML and I like the idea that I can use QML even for QWidget based GUI. But all the talks were good and some of them gave me a lot of informations how to improve my applications and how can I use effectively some tools for debugging for example for QML.

On Monday we had a usability BoF. The BoF was organized by Björn Balazs, Björn is an expert on usability and he cooperates with KDE for several years. For this BoF Björn has selected a few applications (KScreen, plasma-nm, Plasma Media Center, KStars). Each application was represented by one of the developers who had two users (who doesn’t know anything about that project) for testing. The aim was to give user a task (related to the application) and navigate the user through some steps like “What do you think you can do?” How do you think you can do that?”, “What do you expect from this step?” etc. Developers can then track how users think and improve their application. The basic task for plasma-nm was “connect to the Akademy wireless network”. Both users thought that they can connect simply by clicking on “Akademy” connection in plasma-nm applet, but unfortunately they were wrong. Then I realized that I’m doing something wrong. After the lunch when I had almost fixed all the usability issues we started discussion with Lamarque Souza how we should improve the plasma-nm applet. Well, after a while we ended up in front of blackboard with Björn Balazs and Thomas Pfeiffer and we started to completely redesign the entire applet. It took about 2-3 hours and finally we came up with this.


Tuesday was the worst day, because I had health problems with my left ankle which was swollen and I almost died of pain. I decided to go to the hospital  and fortunately two guys from the local team on Akademy went with me, because there was almost nobody who speaks English. In the hospital, I spent 10 hours waiting for the results, they gave me antibiotics for an infection, which I probably had and some painkillers and injections as a prevention before thrombosis. We left the hospital with Mikel Gutierrez at midnight and his parents took me by car to the pharmacy and back to our hostel for which I am very grateful. The next day I spent in our hostel, meanwhile the rest of Akademy attendees were on the day trip.

On Thursday I had to go again to the hospital, but it was quick visit and they told me that my foot is better, so I was able to attend the Solid BoF. Lamarque Souza was already waiting for me with a few bugs in plasma-nm so I spent almost the entire Solid BoF with bugfixing. At the end of Solid BoF we discussed Network Active Setting for Plasma Active with Thomas Pfeiffer. The current status of Network Active Setting isactive active1

Thomas’ idea was to replace the connection details with connection setting, which is actually a really good idea and user will have everything in one window. I’m going to implement this as soon as possible.

In the evening we had a boat trip and we saw the rest of Bilbao from the boat and we could finally take pictures of all people from RedHat on Akademy. Then we went to a local pub, where we tasted the local ham which was really good. On Friday our participation in Akademy ended and we had to fly to home. But I hope I will attend Akademy next year and I’ll see all the people again. At the end I would like to thank to the local team for a really great organization and again especially to Mikel Gutierrez and thanks to RedHat for sponsoring my travel to Akademy. See you next year 🙂

Status and plans for plasma-nm

Current status

It has been more than 3 months since we started writing a new plasma applet for NetworkManager. Now we are getting closer to have a properly working applet and connection editor for NetworkManager in KDE. Since the last blogpost there are not many big changes but there are a lot of  bugfixes and small improvements, the only one big change is that we implemented the rest of VPN plugins. It’s the time when we would like to release some alpha version or something like that to get users know that plasma-nm is usable and we want some feedback, reported bugs etc. to make it even better. Current maintainer of the old applet and libmm-qt/libnm-qt libraries is going to make a release of these libraries at Akademy so we can release it together and probably deprecate the old applet.  For those who have not seen our applet, there are a couple of screenshots:


If you like it, you can find packages with plasma-nm in some distributions. We have packages for Fedora (provided by me) and as I know also Arch, Gentoo, OpenSuse should have plasma-nm in their repositories. If your distribution doesn’t have plasma-nm packaged you can compile it from sources. You will find more information about compilation and links to sources in the previous blogpost. You can report your problems to KDE Bugzilla.

Plasma active

Well, there is one big news about plasma-nm. Due to the fact that my proposal for GSoC was accepted, I’ll start working on customizing plasma-nm for PA. The current applet for NetworkManager in PA is not much usable for touch devices and even our plasma-nm is not much better so I decided to come with something better. I’m also planning make some PA setting module to allow you to configure some basic things like in Android or in iOS, because for PA running on touch device you won’t use a lot of things we have in the editor from plasma-nm. Finally I have working Plasma active on my Nexus 7, but it has quite annoying issues and I was not able to make it work with MultiBoot to have Android and PA on the same device so I had to replace my Android with PA. Here is a couple of screenshots of plasma-nm running on Nexus 7 with PA:

snapshvhv IMG_20130614_135227

Akademy 2013

And the last thing and the most exciting for me is that I will attend Akademy 2013. It will be my first Akademy and even my first flight and visit Spain. I have booked a flight and hostel so I hope nothing won’t stop me.

See you in Bilbao



Plasma-nm after the solid sprint

At first I have to say that the solid sprint was really awesome and it was really nice to meet all of the guys there. At the solid sprint we’ve discussed a lot of thing about plasma-nm and especially with Lamarque Souza, because he is a real master of KDE network management and he really helped us and gave us a lot of comments what we should improve. We also discussed my proposal for GSoC where my idea is to modify plasma-nm for Plasma Active.  During the solid sprint I started working on support of multiple devices of the same kind because I didn’t have opportunity to try our applet with two wireless cards until the solid sprint. Lukáš Tinkl added PIN dialog for unlocking modem devices and he improved bluetooth support. Our expert on QML in RedHat Daniel Vrátil helped me with the animation showing the details and now this animation is really smooth.  I think that’s enough of the news from the solid sprint but I have to say that this sprint was very beneficial for plasma-nm.

Now I would like to show you quick review what we have done in plasma-nm during the last month:

1) KWallet support

Finally we added support for storing your secrets into KWallet. All what you have to do for that is uncheck “All users may connect to this network” in the General tab in the connection editor. It means that this connection won’t be marked as system connection and secrets of this connection will be stored in KWallet. I can not forget to Daniel Nicoletti because he helped a lot with the KWallet support and with the secret agent.


2) Traffic monitor

The second thing which a lot of you wanted in plasma-nm was traffic monitor. Well you’re welcome 🙂


3) Better mobile broadband support

We’ve ported wizard for creating mobile broadband connections so you can finally create a new mobile connections in plasma-nm. I added some details informations for mobile broadband connections and as I said before,  Lukáš Tinkl added support for unlocking modem devices at the solid sprint


4) VPN support

Well, we have only support for VPNC now (and the most of you maybe know why, because we use VPNC in RedHat), but it should be easy to implement the rest of vpn plugins


5) Details settings

This settings was implemented very recently and I have to admit that I don’t like the GUI that I’ve created, but it’s the only solution for this setting I was able to make it work. Here you can specify what details you want to show for your connections.


6) Distribution of available connections to the categories

And the last thing is that we have three categories in the list of available connections. Your connections are now devided to active connections, previous connections and uknown connections and each category can be simply hidden.

nm6 nm7

7) And a lot of small improvements and bugfixes

If you want to try it you will have to compile libmm-qt [1], then libnm-qt [2] and then you can try to compile our plasma-nm [3]. But please note that this is not a stable version and some things might be broken or not work properly.

[1] http://quickgit.kde.org/?p=libmm-qt.git

[2] http://quickgit.kde.org/?p=libnm-qt.git

[3] http://quickgit.kde.org/?p=plasma-nm.git

Here you can see the video uploaded ~2 weeks ago

[youtube http://www.youtube.com/watch?v=bVKjwFfF-PQ]

Plasma-nm preview


I’d like to show you what we are doing for network management in KDE. With Lukáš Tinkl we started to write a new plasma applet for managing your network connections. It’s a long road to have some stable release or something for daily usage, but we have already wired and wireless connections and some basic functionality for other connection types. The entire applet is written in QML except for C++ model and some classes for working with NetworkManager. For that purpose we are using libnm-qt library which is Qt library for NetworkManager. We are also working on a new connection editor which will be as a standalone application. This editor uses some components from the old Plasma NM applet but it’s redone to use libnm-qt library.

If you want to try it, you can get it from our git repository git://anongit.kde.org/plasma-nm.git and you should disable the kded module from the old Plasma NM applet but we are not supporting secrets for VPN connections for now.

You will have to also compile libmm-qt git://anongit.kde.org/libmm-qt.git and libnm-qt (settings branch) git://anongit.kde.org/libnm-qt.git

And please note that this is not a stable version and a lot of functionality is missing. There is also one problem with secrets, because the old Plasma NM applet stores secrets into KWallet and there are “agent owned”. We are storing secrets into the NetworkManager and when your secrets are “agent owned”, there will be problem with getting them from NetworkManager. For that you will have to edit your connection with our new editor or create them from nm-connection-editor (from NetworkManager). But it can be used together with the old Plasma NM for now if you want to have full functionality of getting secrets.

Here is a video of the plasma-nm in action

[youtube http://www.youtube.com/watch?v=Iy7zif8GoHU&w=420&h=315]

And picture how will look the new editor


Akonadi applets continuation

since latest blogpost I became intern in Red Hat Czech and received a bachelor’s degree.  That does not mean I stopped developing my plasmoids. After some pause I’ve made a few changes which some people wanted or I found them useful. You can now also find all my plasmoids in Fedora repository where you can install them simply without compilation. Because my bachelors work was focused on Google plasmoids, I removed all Google stuff and now they are “Google clear”. Regarding improvements, I’ve added some useful options to calendar plasmoid. You can now change position of daily agenda which can look same as default calendar plasmoid in KDE. There is also an option for default view so you don’t have to switch it if you will want to quickly look on something. That would be all for now, but I will continue ….

Here is a new screenshot of calendar plasmoid

Thanks for using, testing and for helpful tips. As usual you can get it from git repository.

Completion of bachelor’s thesis

My bachelor’s thesis is nearing completion and it was great experience for me. I would like to thank to all KDE community for their work on KDE desktop and that they give me opportunity to have my work on KDE git repository. I want especially thank to Lukáš Tinkl for his advices and consultation to my bachelor’s thesis and thank to Dan Vrátil for his Akonadi-google and useful advices and testing.

It’s also my last way to present my plasmoids with wishes of reporting bugs because I have less than a month to fix all bugs before I will have defense of my bachelor’s thesis. So thanks for testing and reporting bugs and if you like my plasmoids I promise that I will continue on working on it.

I’m using only Google resources from Akonadi-google in default option. It’s because my bachelor’s thesis is about Google applets so if you need all resources you will have to use -DALL_COLLECTIONS=true option to cmake command.

You can get it from my Git repository

Thanks a lot 🙂

Scroll To Top