Search This Blog

Friday, December 30, 2011

New Plasma NM interface

Those who use Plasma NM's master branch have already noticed that I started to push the usability changes. For now the changes are very similar to the ones I announced in my first post about usability changes:

And the screencast:

There are still more changes to come, for example: 1. Increase the height of each item in the network list (maybe two lines per item) to make it easier to tap on touchscreen devices; 2. Add a new item called "Connect to another network" to create new networks instead of using the control module; 3. Move the "<hidden network>" item to "Connect to another network"; 4. Find a new place for the "Enable Networking" checkbox, maybe move it to the control module since it is rarelly used; 5. Find a way to correctly align the elements in the GUI, QML looks much easier in this regard :-/

I saved all the comments I have received about Plasma NM GUI. I just do not have enough time to evaluate all of them, so be patient.

Update 01/01/2012: I had forgotten about a use of the interface list that is important. When you have more than one instance of the same interface (or device) it is difficult to distinguish each connection is associated to each interface. I tried to add a "Show Interfaces" button to toggle the old interface list:

As you can see it is not ready yet and of course if you clock on the "Hide Interfaces" it will look again like the first screenshot in this post. The plasmoid's height is bigger now because of the interface details tab, which is hidden, but takes up the space anyway. I will have to change the implementation to prevent the plasmoid from growing like that.

I also changed the disconnect button to "call-stop" icon, which still does not look that great but I did it for a reason: to make disconnecting easier. The old icon was small and if you do not click exactly on the icon it will show the interface details tab instead of disconnecting. I needed a bigger icon and that one was the best I could find. Actually, Plasma NM really needs new icons everywhere, there are icons that do not fit well, some are just ugly and some are not in standard KDE location. That is one of my long list of things to fix in Plasma NM :-/


Anonymous said...

Looks so cool, it really needed a redesign, and you did the best. Thank you so much!

Gianvacca said...

I totally agree with the comment above.

Gianvacca said...

I totally agree with the comment above.

KenP said...

This looks cool. I just have one question: can plasma nm do VPN flawlessly? For example, my VPN needs a one-time passcode but nm insists on saving it. Result being I have to edit connections each time to clear the password field.

Yes, I have set password policy to 'Always Ask'.

As of now, still using nm-applet from the GNOME avatar.

Lamarque said...

@Anonymous, @Gianvacca, thanks.

@KenP, the "Always Ask" configuration works for me with my VPNC and OpenVPN connections. Fill a entry in with the detailed description of the problem: Plasma NM version (look in "Manage Connections" -> Other for the real vesion, do not rely on distributions's package version), NetworkManager version, which VPN type you use (VPCN, OpenVPN, Novel, Openconnect, PPTP, etc).

afiestas said...

Awesome as always lamarque ! can't wait to see the dialogs made good for peny !

Almorca said...

Great job!

I don't want to be a pain but I would change the wireless network icon to use the locked or unlocked padlock icon to show if a network has security or not.

Кирил Владимиров said...

Why the menu "Interfaces" from the previous podcast is missing?
I find the interfaces list quite useful.

When using the 3g modem, for example, I must wait for about 40 seconds the device to boot. So when the 3g modem icon appear in the interfaces menu I know it's ready to be used.

Anonymous said...

Looking good, just please remember: what is good for touch devices is almost never good for desktop!! Plasma active should have networkmanagement-touch, desktop version should be made for mouse :) keep rockin'

Anonymous said...

I love the new usability changes you have introduced, congratulations :-)

Have you planned what happen when you plug a second WIFI device in that conections list?
Windows 7 (I don't tried Vista) manages it separating in the main list the 2 lists of connections to not mix duplicated connections...

Xiao-Long Chen said...

I'm also wondering how 2 wireless cards will be handled. Windows 7 and the GNOME nm-applet both keep the networks for each card in it's own list (even for wired).

I think separating the networks by interface would be very very useful. In my place, where there's 50+ wireless networks, it takes forever to find my wired network in the list and to find out which wireless card is being used.

Lamarque said...

@afiestas, thanks.

@Almorca, there are three encryption types (none, wep, wpa) and most people are interested to known if they are dealing with wep or wpa. Using a padlock it would not be easily visible which of those two the access point uses.

@Кирил Владимиров, because it is rarely used. In your case the 3G connections also only appear after the modem is ready to use, so you can still use that instead of the interface.

@Anonymous1, we do not have man power to implement two networkmanagement versions. Actually for the past two months it is only me that is working on it and I am alreayd overwhelmed with things to do. Help is really appreciated.

@Anonymous2 and @Xiao-Long Chen, good point. Since two devices is rarely used I have not thought about that. Actually Plasma NM will not duplicate the connections, it will list only one connection if there are more than one wifi card. The first card will always be used unless the user lock the connection to a specified card's MAC address in the connection's edit dialog.

I am thinking adding button at the bottom of the plasmoid (beside the "Settings..." button) to toggle the the old interface list. That would keep the behaviour of the nm09 branch.

Adding the interface to the connection list like in nm-applet is very confusing.

Xiao-Long Chen said...

"I am thinking adding button at the bottom of the plasmoid (beside the "Settings..." button) to toggle the the old interface list. That would keep the behaviour of the nm09 branch."

@Lamarque: I think that would be great! Even an option in systemsettings would be good. Although most people don't use multiple network cards, the ability to do that in NM is extremely useful (compared to manual ifconfig/iw/etc) :D

Thank you do much for the work you've done so far! Plasma NM looks great!

Kjetil Kilhavn said...

As most of the others here I must say I think it looks good, but I have one issue and that is with the icon used when networks are disabled. The icon used (in the screen recording) is very confusing.
My suggestion would be the ordinary icon with a "forbidden"-sign (the circle with a slash) overlay.
I suppose the stylists will want that forbidden-sign to be in the same colour as the rest of the icon for the default theme. Themes with more colours should use a red sign I think - or perhaps the colour of the NM icon could just be changed from green to red?

smls said...


"change the wireless network icon to use the locked or unlocked padlock icon to show if a network has security or not."

I very much disagree. The locked/unlocked padlock icons are usually used to signify a *state* - specifically, whether something is currently in an inaccessible state or in an accessible state for the user.

The icons in the connections list of this applet on the other hand don't signify a *state* of the associated connection - they signify an intrinsic *property* of the connection. And it's not about whether the user can *access* something or not, it's about whether the connection is *trustworthy* or not. The shield icons which are currently used fit this use-case perfectly. (And they look good, too.)

smls said...


It looks really good now...

One potential suggestion for further improvement: If the "Settings..." button were aligned to the right instead of the left and the two check boxes moved down in its place, some precious vertical space could be saved.

"Increase the height of each item in the network list (maybe two lines per item)"

Are you sure this is a good idea? It would decrease usability on desktop platforms, if many networks are available and you're trying to find the right one.

Is it really necessary for apps to look exactly the same on both desktop and touch platforms?

And isn't Plasma supposed to provide standard QML components (including a list widget) anyways, which applications can simply use without worrying about the exact look and feel for different form factors, as that is handled by the respective platform-specific implementation of those Plasma components?

smls said...

"I am thinking adding button at the bottom of the plasmoid (beside the "Settings..." button) to toggle the the old interface list."

Is there a reason for needing this as an always-accessible one-click feature?

Wouldn't it be enough to have it as a checkbox in the setting window (if at all), rather than cluttering up the applet again? (After you've spent so much effort tidying it up ;-) ...)

Lamarque said...

@Kjetil Kilhavn, I am using the same icons used in the old plasmoid. Nobody has ever complained about those icons and I do not understand your complaint. There is nothing forbidden there, it's just a convinience feature to show or hide connections that the user has never configured. Using the "+" and "-" looks natural in this case since we are adding or removing items to/from the list.

@smls and @Almorca, also we already use a padlock overlay in the system tray to indicate a VPN connection is active. Using it also in wireless connections would be confusing.

I do not see why align the button to the right, nobody does it and all buttons in Plasma NM are aligned to the left. How to move the check boxes down? They are already the closest to the "Settings..." button.

I will limit the number of visible networks, the plasmoids will not grow indefinitely when the number of network is high.

The fact is that I work in both Plasma Active and Plasma NM and I do not receive any help in the Plasma NM front most of the time. So somebody needs to do the work and if nobody help I will have to do it myself and having the same source code for both will save me time. I considered using QML in Plasma NM but with the experience I had when I implemented the shutdown dialog in QML I saw that I would have a lot of trouble implementing something as complex as Plasma NM. If I convince my employer to sponsor the developlment then I will do it. If not then I will do what I can, not what I want.

The "Show Interfaces" button (I already implemented a protoype) is only really necessary when you have more than one instance of the same device type (two wifi cards or two gsm devices for example). The two wifi cards are not common, but the two gsm devices is a common case. I for example own a 3G modem and a gsm phone, both adds a entry in the interface list. Without the interface list I cannot distinguish which 3G connection is associated to each interface. I can add a option in the kcm to always hide the "Show Interfaces" button.

Fri13 said...

As soon as I saw you have updated main branch I needed to run update to that version (thanks the easiness with Arch Linux AUR!) and I am more than happy!

And now I just noticed two things what I hope to discussed more (other has).

1) Touch screen version of this widget need to be separated from mouse operated. That means the list of networks for mouse needs to be one line like now, and then make the separated version for touch screens.

2) I could think that top tabs are useless for most users. Not many have VPN demands or share their existing connection. So I would suggest so:

A) Unless a user manually create a new VPN connection, do not show VPN tab
B) Unless a user have a connected wired (RJ45) connection and WLAN on, do not show a shared tab.

So when user is using only WLAN or Wired, then user see list of networks (if WLAN enabled).

And when user is just using WLAN without configured VPN or possibility share wired connection trough WLAN, then don't show any tabs.

Now I can say that network manager for KDE has taken huge leap!

Oh, and about multiple WLAN or WLAN+3G devices, how about having at that point the tabs at top to have own lists per devices if someone can help you to add such support?

Like first tab is for "WLAN" and other is "3G modem" or "WLAN #1" and "WLAN #2" and own lists there?

Oh, and I am happy about the "Enable wireless" is located on list and "Enable network" behind right click. (If there would be tabs for devices like Wired #1 and WLAN #1, then "Enable network" should be "enable wired").

But thing what I am unhappy is that you are alone developing this, you really should have help and I hope this year you would get lots of help!

Happy New Year to you!

Anonymous said...

Hi. Great new interface. I have one proposal:
Removing "enable" from "enable wireless/mobilebroadband", or get rid of them completely and put checkbox next to available interface.

glenn said...

will this replace plasma-widget-networkmanagement?

Kjetil Kilhavn said...

@Lamarque: I didn't explain my issue well enough, because you thought I meant something else.

It wasn't the show more/less I meant, it's the icon displayed in the “system tray” when networks have been disabled (completely). It's a red icon with a white cross (×) in it - appearing between 00:44 an 00:53 in the video.
Perhaps a forbidden-sign is not the best choice, but the currently used icon is the standard icon for closing/quiting. Normally a disabled menu-item is shown in a different colour, but I am not sure how well that would work.

I just checked now how the bluetooth and nepomuk icons change when I disable bluetooth and temporarily disable indexing, and there is no change at all as far as I can tell (openSUSE 12.1 KDE 4.7.4 default Air/Oxygen theme).

I also agree with “smls” that this feature (completely disabling the networking) is probably not used often by anyone, and could be moved to the settings dialogue without significant decrease of usability. In a desktop or laptop computer the size of the popup should not really ever be a problem, but for handheld devices (including tablets) taking away that checkbox would save a little bit of the precious space.

Fri13 said...

"I also agree with “smls” that this feature (completely disabling the networking) is probably not used often by anyone, and could be moved to the settings dialogue without significant decrease of usability. "

No, do not move it behind settings!

Having possibility to go 100% sure offline must be behind single click!

It is a security and usability thing, not a technical function.

Example, a user notices something wierd happening on network device, so user need to have possibility right away shutdown all the network connections to all networks. It is like a physical button to shutdown a wireless or plugging a network cable from computer.

BajK said...

Really nice :)
I once asked you to truncate the connection name if it gets too long but unfortunately it does not adapt to the widgets width/size and so you get things like in your screenshot “Shared_Wireless_Co…”
Would it be possible to change it to a nicer-looking “fadeout” of the text at its end when it is too long?
Anyway, great stuff, as always :)

Almorca said...

@Lamarque, sorry but I disagree with you when you say that people just want to know what kind of encryption has a network.
Most people I know don't know the meaning of wep or wpa and the only thing interests them is if a network has a password or not. So I think that should be information to show and a padlock would be icon more appropriate.

STiAT said...

Looks really great. Thanks for all the hard work on nm in KDE, since I use a few different wifi networks, a hsdpa modem and sometimes lan or usb tethering I really appreciate your work.
And it seems as if it gets better release by release :-).

Kjetil Kilhavn said...

@Almorca: I think even if many people don't know what WEP and WPA is, I don't think this is a good reason to remove that information from the interface. People will quickly learn that a shield means it is a protected network, and then when they get more knowledgde they will appreciate the fact that they can easily find out what type of encryption is used.

In short: I think you are outnumbered :-)

Lamarque said...

@Fri13, 1) that is doubling my work, if you have not noticed yet I am overwhelmed of work to do and I already said I am going to do what I can, not what I wanted to do. If nobody step up to help me, I will not do such thing.

2) if they are useless for you you can ignore them. They are very usefull for those who have several VPN and shared connections.

A) B): read my comment to Fri13.

About the multiple wlan or gsm devices I trying to implement a filter using the interface list. When you click on the interface Plasma NM will show only the connections that can be activated using that interface, like nm09 branch does. There is only one detail that nm09 does not do: when you select the interface and then click on the connection it does not always use the selected interface to active the connection. I need to fix that. After fixing this problem you can use the interface list to select the connections and then activate them using that interface.

One tab per device would make things a lot more complicated. Specially because of the dangling pointers, since interfaces can vanish at any time. I already have a lot of trouble trying to prevent dangling pointers, it took me months to track down and fix them. I do not want o get into that kind of problem again.

@Anonymous, I prefer to keep the checkboxes visible all the time because not everybody will think about showing the interface list before to click on the "Enable Mobile Broadband" for example. Some modems does not work without checking "Enable Mobile Broadband" and that is because NM disables mobile broadband by default. Just clicking on the connection activate mobile broadband most of the time but there are still modems that are not enabled when clicking on the connection.

@glenn, this is the development version of Plasma NM (or plasma-widget-networkmanagement). So yes, it will replace it when it is ready.

@Kjetil Kilhavn, Bluedevil hides itself when bluetooth is disabled. Plasma NM cannot do that because it details with different device types (wired, wifi, bluetooth, modem, etc), not only one (bluetooth) like Bluedevil. I need different icons to show the different connection states. Some states have the same meaning for the user, for example both disconnected and wifi disabled means the user cannot access the Internet, but disconnected means the user did disconnect the connection, wifi disabled means the hardware is disabled. In the first case the user just need to click on the connection to make activated it. In the second case the user must enable wireless first.

@Fri13, your example does not demonstrate a security risk and "Enable Networking" does not turn radio transceivers (wifi, gsm, cdma) off, so in the most important situation where someone needs to quickly turn them off that check box does not do the trick. So besides being almost useless it is also misleading.

@BajK, I tried to do that, but it is not easy to calculate the number of pixels a text requires on the secreen and resize the connection item accordingly. The resize is automatically done by a QGraphicsGridLayout. Messing with QGGL can cause a lot of side effects.

@Almorca, you can disagree with me and I can choose not do what you want, we are even :-P