It has been more than 2 years when I was an intern in Red Hat and Lukáš Tinkl, my leader that time, told me that I should take a look what needs to be done around network management in KDE. I started with contribution to libnm-qt (networkmanager-qt now), because there was a plan to have a separated library for NetworkManager and port the applet to use it later. It took me a few months to get familiar with NetworkManager DBus API and implement all missing stuff and I was ready to start porting the applet. Problem was that the old NM applet was not ready at all, its architecture had been done with more network daemons in mind (like wicd) and the code base became really complicated. I still remember that discussion we had about starting from scratch, it was quite tough decision, because we had to drop such huge code base and years of work. Anyway, we decided to go for it and start from scratch and one of the best journeys of my life had begun. It went quite good, we were able to reuse some existing parts from the old applet and we had first release like half year later. Well, quality of first releases is questionable, not everyone liked them we did, but we have learned from mistakes and now I daresay that the version we have after 2 years currently in Plasma 5 is really great and we enjoyed doing it.
But the real reason why I decided to write this blog post is that I wanted to look to some statistics using gitstats after those 2 years of development and share them with you.
Stats about networkmanager-qt
Total files: 363 Total lines: 41876
More stats here.
Table of top contributors since the beginning.
Stats about libmm-qt
Total files: 120 Total lines: 14695
More stats here.
Table of top contributors since the beginning.
Stats about plasma-nm
Total files: 288 Total lines: 40507
More stats here.
Table of top contributors since the beginning.
NOTE that those statistics do not include contributions to the old NM applet, which some parts are used in both libraries and even in the new NM applet.
I just want to inform you (those who are still running KDE 4) that we released a new version of your favorite network applet. This new release brings to you many bug fixes and should make your life easier. We really recommend to update to the new version as we, not intentionally, introduced some new issues in the previous version. Together with the new release of plasma-nm we also released our libnm-qt library which is also needed if you want to have fixes from plasma-nm properly working.
Summary of fixed issues: bz#339652 – added missing IPv6 support for OpenVPN connections bz#333752 – we moved code for checking your current download/upload to QML code and now it just checking for updates only when the applet is opened bz#329837 – during import of VPN connections we copied your certificates automatically into your home directory, now we are asking whether you want to copy them or keep the path as it is bz#340306 – fixed initialization of current download/upload speed for mobile broadband connections bz#338513, bz#338697, bz#339223 – many fixes in secret agent (KWallet) initialization, also added migration for your secrets from plain text files, we dropped their support in the previous version, and store them into KWallet or directly into NetworkManager (if KWallet is not enabled)
You can find new tarballs in usual location, which is  for plasma-nm and  for libnm-qt.
After 5 months we are releasing a new version of plasma-nm for KDE 4.x containing a lot of bugfixes, minor design improvements and internal changes (see my previous blog post). This is probably last major release since we are now focused to KF5/Plasma 5 version, but we will be still backporting all fixes and you can expect at least one more bugfix release in future.
You can get a tarball from usual location, compile it from git or wait for an update in your distribution.
Also if you want to discuss things related to plasma-nm personally, suggest new ideas, complain about it, or just buy me or to anyone from our small plasma-nm team a beer you will have an opportunity, because
It’s been 3 months since the last plasma-nm (Plasma networkmanagement) release and we have been working really hard to bring you again a better release than the previous one. Unlike previous releases, this one is focused on internal changes which are not mostly noticeable on the outside, but I believe they are welcomed.
The most significant internal change is a new model. This one is more complex and easier to maintain and one of it’s advantages is that we can now use it also in the connection editor, so if there is a problem we can just fix it in one place. It should better handle various cases which were not properly handled in previous versions, like when you have more wireless cards. Also various NetworkManager changes are now properly propagated to the applet, i.e. we are not now limited to three connection states (disconnected, connecting, connected) as before, but when you activate your connection you will see the exact device state like “getting IP address” or “waiting for authorization” and so on. Regarding the connection editor, you can now activate/deactivate connections there which is probably something what nobody will use, but since this is possible because of the new model, then why not to add this option.
From visible changes I could mention new notifications. I added various notifications to inform you about successful or failed actions. This is quite useful when you do some action and nothing happens, usually when you are not authorized to do it. You can see new available notifications on the screenshot below. Note: This screenshot is from Plasma 5 version and unfortunately not all notifications are also available in KDE 4 version, because I had to change API in libnm-qt (NetworkManagerQt) and this was possible only in the Qt5 version which is not released yet.
We were also working a lot on porting plasma-nm to KDE Frameworks 5 and I’m happy that plasma-nm is now part of Plasma 5 which means it will be released together and regularly also with bugfix releases, so you won’t have to always wait until we decide to bring you a new version. This change came quite late and there were no tarballs previously available until now, so I would really appreciate if you can test it together with the rest of Plasma 5. Regarding the KDE 4 version, we will probably release it together with Plasma 5 release, but if you want to try it now, you can just compile it from git and use branch called 0.9.3.
Here are some screenshots from Plasma 5 version. As you can see Plasma 5 version has a scrollbar o/. Unlike KDE 4 version there is no traffic monitor, because it hasn’t been ported yet, but we will add it in future and details will probably get a new look.
I hope you will like all the changes above and please do not forget to report all issues you spotted to our bugzilla.
We would like to finally announce that we are releasing a new version of plasma-nm. It took a lot of time but we hope the result speaks for itself. We focused mainly on design and workflow improvements because a lot of you were disappointed, so we discussed it with various people, blogged about it, did a lot of research etc. Many of you are involved in this release because your comments were valuable. There are also some people, without whom this release wouldn’t be in this state. Björn Balazs from User Prompt, who is a real expert on usability and did a great job in improving usability and shape of plasma-nm. Fabian Bornschein is a talented designer, author of Tilain plasma theme, who created for us a new nice set of icons. We will keep improving design and usability of plasma-nm even after this release, there is still a lot of work and we have also some plans for Plasma Next version and with the new VDG (Visual design group) containing a lot of talented designers, I believe we have what to look forward.
As usually, if you want to try this version of plasma-nm, you can compile it from git or download a tarball or wait until your distro packagers prepare an update.
Do not forget to report your bugs or send us your ideas. Unfortunately we were not able to include all your requests in this release, but we will try our best in future. Thanks to all involved in this release and we hope you will enjoy it as we enjoyed doing it.
We are probably in the end of our journey to improve design and usability of plasma-nm and new release is almost behind the door. There are still some small design issues in the current design, but it’s almost impossible to find a designer with spare time and especially now, where everything is about Plasma 2. This is also probably the last major change for KDE 4/Plasma 1 and we should move on and focus to KDE 5/Plasma 2. Currently we are working on a new model, which is going to be same for the applet and the editor, so the editor will be more powerful. I would like to also have a new kcm, but this is for further future.
If you want to try it, you can compile plasma-nm from git (master branch), but you also need a new version of libnm-qt (NM/0.9.8 branch). Or if you are a Fedora user, you can install it from COPR repository. Otherwise you will have to wait for your distro packagers or for new tarballs.
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.
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 0.9.0.1).
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)
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 , which is needed for this version of plasma-nm. ModemManagerQt  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  and ModemManagerQt  from git using master branches.
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
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.