After several attempts trying to write a new KCM for network configuration and actually not finishing any of them, I decided to start one more time, but this time my goal was to simply transform the old editor into a bit nicer KCM and place it into system settings where this was missing for very long time. You can see my current result below.
This is still same editor as it was existing before as a standalone application, except the list of connections is now written in QML and is similar to the applet we have in systray. I also had to rewrite the editor widget a bit because it’s currently implemented as a dialog with a tabwidget inside where each tab is represented by one setting widget (e.g. Ipv4SettingWidget), For the new KCM we now have ConnectionEditorBase widget doing all the logic behind, like creating specific setting widgets based on connection type and so on. This widget alone doesn’t display anything and you have to actually subclass it and reimplement method taking care of layouting. This allows me to have e.g. ConnectionEditorTabWidget which just subclasses ConnectionEditorBase and reimplements addWidget() method to place setting widgets into QTabWidget. In future we can also simply write a new UI/layout on top ConnectionEditorBase widget and get rid of the tab layout.
Regarding functionality, it should be already almost on par with functionality of the editor. There are still some missing features (like import/export of VPN), but besides that I think everything else is going well. With the new KCM there are also some minor improvements, like you can now reset your not-saved changes you made to a connection. My plan is to get this into Plasma 5.9 which is supposed to be released in january so I still have plenty of time to finish missing features and address issues I made during this transition and of course time to take your comments into account and make this KCM as most usable for everyone I can :).
It’s been a while since Plasma 5.4 release and we are now approaching feature freeze for Plasma 5.5 so I would like to share with you what news you can expect in plasma-nm. This time we have major changes only in our connection editor although most of you wouldn’t probably even notice them. This is going to be a short list unfortunately given I have less time and less ideas, but at least something, right?
So, what is new?
WPA/WPA2 Enterprise validation
WPA/WPA2 Enterprise validation was the only one missing validation in our connection editor and without it we let you to save your WPA/WPA2 Enteprise configuration even when it was wrong or some option was missing. Now you should be able to save your configuration only when it’s valid for NetworkManager. In addition to check for missing properties, we check (in case of TLS authentication) whether provided private key can be decrypted with given private key password (works only for pkcs12 and PEM formats).
New password field widget
Option to show/hide the password and option to not store the password were removed as standalone widgets and they are now part of the password field. I did this to make the UI less complicated and also because I like it, however this introduced some accessibility issues which need to be addressed somehow once I have time to do that (mentioned this here as a commitment that I’ll really do something about that).
OpenVPN improvements (better properties descriptions, new options)
added tooltips to most common options
some bugfixes and other minor improvements which are not worth mentioning
We have released another plasma-nm version for KDE 4. It’s possible that this release will be the last one, because every distribution is now switching to Plasma 5 and given our irregular releases it’s possible that current distributions wouldn’t pickup the updated version anyway. I’ll keep backporting fixes from Plasma 5 to our KDE 4 branch if possible, so if you want to keep running on KDE 4 from some reason, you will still have a way how to get at least some fixes. There is also a new release of networkmanager-qt for KDE 4, which is required for below mentioned OpenConnect fixes.
Fixed issues in this release:
* bz#341221 – applet: connection which is being activated is moved to the top
* bz#343606 – editor: enable/disable actions when a connection state changes
* bz#340703 – editor: added connect/disconnect actions to the menu and toolbar
* bz#341629 – editor-ethernet: auto-negotiate state is now properly restored
* bz#341069 – editor-OpenVPN: added option for server certificate verification
* bz#341397 – editor-pptp: fixed storing of non-latin characters
* bz#340801 – editor-vpn: fixed vpn import – IPv4 -> routes -> “Use only for resources on this connection” is not checked all the time
* bz#340717 – editor-wifi: added frequency and channel to the BSSID dropdown list
* bz#339296 – OpenConnect: fixed autoconnecting
* bz#309931/bz#334474 – OpenConnect: fixed storing of secrets
* bz#334901/bz#344411 – secret agent: displayed proper connection name in password dialog
* bz#342697 – wifi: fixed displaying of non-ASCII SSIDs
+ many other not mentioned issues
New tarballs can be downloaded here:
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
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).