Plasma-nm preview

Hi,

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

And picture how will look the new editor

editor

About these ads

47 thoughts on “Plasma-nm preview

  1. 0:55 modal dialog have quite big readability issue.. can it be also made to the nice “expand” part like other operation shown in the video?

    The “connecting” spinner overlap with icon is not a very good idea IMHO, it’s obvious mix plasma element and non-plasma element together (oxygen icon and plasma icon). And tray icon overlay spinner looks like “overflow” the space that the icon should have, the old little progress bar is better in size. Maybe just “replace” the icon and not show it as overlay?

    And the “network speed monitor” is gone?.. I would miss that. I see new qml notification have the same kinds of chart, maybe can steal the code there.

    • 1) Hmm, that’s true, we will have to do something with it. We are also trying to find some solution to have non modal dialog.
      2) Why it is not a good idea?
      3) Network speed monitor is gone for now, maybe we will add it later, but for now it’s not so important.

      • 2) It looks quite inconsistent and ugly.. basically they are both “circle”, but center of both circle are not matched.

        I think you should check ktp’s “connecting” animation (they use the same green icon, but difference busy spinner), it’s not perfect too, but I think it’s better than this one.

    • 1) Because the source code of the old one is complicated and it’s not simple to fix or add something, so we decided to start writing the new one from scratch.
      2) We thought that they are encrypted, but maybe they are not. We wanted to have secrets available across all NM applications like nm-applet from Gnome. But it’s only our first simple version of secret agent so maybe we will use KWallet.

      • 1) Okay, I get that.
        2) Ah okay. Would be interesting to know if they’re encrypted, since for some people that’s rather important, especially with VPN secrets (yes, I know you don’t support that at all yet, just mentioning)

      • That may explain why you rewrite the back-end but not why you didn’t pick up the in-development QML files from KDE Network Management.

      • The previous QML applet is combination of C++ and QML and it was created as a same copy of the C++ applet from nm09 branch. We wanted to have simplier applet and for that purpose was easier to write the entire applet from scratch.

      • You’re supposed to let the user choose between NM-owned or agent-owned secrets. NM-owned secrets are stored systemwide, any user on the system can read them. They’re either unencrypted or scrambled using a trivial encryption reversible without a password/passphrase by anyone on the system. (I think how exactly they’re stored depends on the configuration backend, NM supports several legacy storages.) Agent-owned secrets are per user and stored in your KWallet (or gnome-keyring if you use a GNOME agent). So what you want depends on the use case. (A sane default is probably: use NM-owned secrets for shared (formerly system) connections, agent-owned for private/hidden (formerly user) connections. (The connections are now, as of NM 0.9, all stored as system connections, but you can choose whether to share them with other users or not.))

    • There is no support of ModemManager for now. You can only connect to already configured GSM/CDMA connection but that’s all. But I’m planning to add this support soon.

  2. Awesome!!
    Looking forward to the improved versions. Also, the new KDE secret manager is supposed to streamline password management together with GNOME keyring?

  3. Great work! Network management do work under KDE but it lack polishing. It’s good direction!

    Confirmation dialog is unusable. Oh and those busy icons are ugly as hell.

    Cheers :)

  4. Answering some questions: Hmmm well, the QML plasmoid in networkmanagement repository is also called Plasma NM. We have a name conflict here. NetworkManager stores secrets unencrypted, that is why Plasma NM (the one in networkmanagement) stores secrets in kwallet by default. QtModemManager (aka libmm-qt) must be upgraded to work with ModemManager >= 0.8. That is a task in KDE’s GSoC ideas page, one guy approached me about this task last week but has vanished since them, so there is no estimation for when QtModemManager will work with ModemManager 0.8. Once kwallet is ported to use SecretAgent then exchanging secrets with Gnome’s keyring should be easy. No applet is going to make connecting to wifi faster, that part is up to NetworkManager itself :-P

    • BTW I want to add here that while I appreciate the work on the new NM frontend, your work on plasma NM has been awesome. As is said a little below, the current plasma NM might not be perfect but it is quite polished and nice. Thanks for all your efforts ;-)

  5. I can only speak for myself, but I’ve always found the “old/current” NetworkManager plasma applet to be the best looking plasma applet in the whole workspace. It looks very polished and provides a lot of useful information. It would really sadden me to see that design go away in favor of what can be seen in the video here. On a positive note, the new editor looks great and much more intuitive than the old one.

      • What’s wrong? In my language this – http://wstaw.org/w/1N24/
        Word “Włącz/Enable” is for monkeys? Is should be simple “Sieć/Network”
        Simply slim down by 1/3 and maybe then it will look decent.

      • Finding the correct size for a plasmoid is not easy and the way the plasmoid in nm09 branch (the ones I release from time to time) is implemented makes it even more difficult. We use a minimum size that may not look that good in some circunstances but prevent the plamois from being resized everytime you go to information details tab.

      • I agree that it is difficult to finding the correct size for a plasmoid, but also just do not make basic errors.

        Here the reason for excessive width is “Włącz sieć komórkową szerokopasmową” (Enable GSM).

        See how much space it takes?

        And now question for you:

        Why is the word “Enable” even there?

      • Well, our mother tongue is not mine, so I was not aware of this problem in your language. The “Enable” has always been there, even before I started hacking Plasma NM. You should ask that to the original authors.

  6. Hi, first of all: thanks for your work.

    I have three questions, though:

    1) How will you prevent the network list from becoming a huge mess? In the current plasmoid the solution is rather good, with

    a) don’t show other wireless networks when known networks are available
    b) show a “show more” button in this case
    c) show all networks when not connected to one

    This depends a lot on how somebody manages his networks. For some users with plenty of wireless, wired and VPN connection the list will be an overcrowded mess if not filtered.

    2) The old plasmoid had a lovely chart in the detail view displaying the current up/download. As far as I can see this was removed in this plasmoid. Could it be added?

    3) Usability. The main usecase the user wants to perform is quite probably connecting to a network. With the old plasmoid you could click anywhere on the network to initiate connecting. With the new plasmoid you have to click a rather small (compared to rest) area. As per fitts law this is a rather bad idea which wastes uneeded amounts of time. Could you instead have an icon/button to show details?

    • 1) So far I have not thought about it, but in the future it could be addressed similarly. Btw. the old applet, which is also written in QML and is in the master branch in networkmanagement also lacks this functionality.

      2) Maybe in the future, it’s not so important for now

      3) I don’t think this is a problem. In Windows when you want to connect to some wifi you have to click twice. But okay, I’ll try to do something with it.

      • Hi,

        1) Yes, it does’t. The plasmoid does, though. Similar functionality sounds great, because I think it really was a good approach based on the usual workflow. I understand that other things, such as feature completeness, have the higher priority now.

        2) It indeed is just a “nice to have”, but if somebody finds the time it would be great to not lose functionality (as usual)

        3) Doubleclicking is not a problem. It is aiming that takes too much time. Also Windows users are used to double clicking (careful with that in KDE). If you are interested I recommend reading fitts and hicks (with regards to point 1) law. Usability for such an important component as network management should always be considered. You’ll notice that other systems (be it Windows, OS X or the gnome network applet) allow a quick network activation (without aiming). This is important, since activating a network is the probably the primary purpose of the applet, and therefore should be the task that is the easiest / fastest to achieve. Thinking about usability early is also good, since else one might have to rewrite big parts later on.

        Thanks for looking into this. As soon as it matured a bit I shall try it on my notebook. I assume there will be a bugs.kde.org entry for it, so I shall put my suggestions into wishlist items there.

        Happy Easter

      • @Christian: doubleclicking is also a problem (I totally agree with your point that the clicking surface should be large enough): I am unable to doubleclick correctly, either it is a triple click, or a single click or a long single click (which in the Windows Explorer and the Windows file dialogs triggers “Rename”). As a consequence of my inability for doubleclicking, in 95% of the cases that I want to doubleclick a file in Windows, I trigger the rename functionality, which is very annoying. Therefore, I consider any interface which depends on doubleclicking broken by design. BTW if someone could tell me how to disable the “Rename” functionality in Windows when having a long single click, I would be very happy to learn it.

      • it could also be adding a “Connect” button next to those “Back” and “Configure” that are shown under the details of a network. This would give two “complementary” ways of connecting (simply clicking the icon, or checking the details of connection and then connecting).
        It would also mean, in my idea at least, make space for this button by removing that “delete connection” button – which wouldn’t be a bad idea since that button doesn’t belong there, as one should use the applet to (dis)connect only, while managing of the connections should stay in the KCM.

        that’s just an idea of course, and BTW similar to windows (if you click only once a button “connect” appears) but improved since double-clicking is counter-intuitive there IMHO

        that’s just an idea of course :)
        oh and let’s not forget the compliments for the great work, I really like it!

      • Yeah, the “Show %d more networks” item in the plasmoid in master branch is still missing. That is one of the things I plan to finish implementing before obsoleting the nm09 branch and start releasing what is in master branch now.

      • By the way, about the double clicking: I do not like it at all and it does not work so well in touchscreen devices (remember that we have Plasma Active now). Touching a small icon with a finger is really error prone.

  7. If you are changing the way Wireless connection info is stored in KWallet, would it be possible to change the naming of the entries in Kwallet. At the moment cryptic names like “003905d9-0e81-4774-839b-5974b627d05c};802-11-wireless-security” are used. This is not very comfortable when for some reason one needs to go through these entries.

    • Unlikely to happen. The secret agent must be able to create a key when searching for secrets in kwallet. The 003905d9-0e81-4774-839b-5974b627d05c is an example of a Universally unique identifier (UUID), which is the best way to create such a key. You can use kwalletmanager to search for enties using any field they may contains (inclusind the connection name), so I do not see why this is problem.

      • >You can use kwalletmanager to search for enties using any field
        > they may contains (inclusind the connection name), so I do not see
        >why this is problem.
        Because this does not work. I just tried it and searched for different connections names which are in use and none of them could be found. They may have something to do that it appears like Networkmanager is not storing the SSID in Kwallet (or just in that cryptic form, therefor it can not be found by search).I also have to note that for some reason network manager seems to store a lot of connections in Kwallet which are not stored/shown in Networkmananger itself. I do not know why exactly, but I suspect it maybe stores every connection I accidently clicked on, but never entered any credentials (most of the entries are just empty).

    • No exactly working together (yet). grulja implemented some of the needed changes in QtNetworkManager (aka libnm-qt) that I wrote in my blog long ago, thanks for that. Both the plasmoid in master branch of networkmanagent and this one share QtNetworkManager, so that also helps the plasmoid in networkmanagement. I was aware of this new plasmoid since a couple of weeks ago but I have not pushed any commits to it, just gave some suggestions and helped with a problem with it yesterday. I am going to finish the QML plasmoid in master branch of networkmanagement independently from this one. The users will decide which one they want to use.

  8. Whats up! I just wish to give an enormous thumbs up for
    the good information youve gotten right here on this post.
    I will probably be coming back to your weblog for extra soon.

  9. Hi, i read your blog occasionally and i own a similar
    one and i was just curious if you get a lot of spam comments?
    If so how do you stop it, any plugin or anything you can suggest?
    I get so much lately it’s driving me insane so any support is
    very much appreciated.

  10. Greetings! This is my 1st comment here so I just wanted
    to give a quick shout out and say I really enjoy reading your blog posts.
    Can you recommend any other blogs/websites/forums that cover the same subjects?
    Many thanks!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s