Solid Sprint is going to start in less than two weeks in Madrid. This time one of the attendees (Björn Balazs) is an usability guy, so we are going to talk about usability problems in the software we maintain, in my case Plasma NM. Some days ago Björn asked about the points we (the other attendees) would like to discuss during the sprint. Well, I already sent my list, which is not that extense but is not short either:
- Networkmanagement plasmoid is too large and takes too much space
- Connecting to static IP connection makes adapter details vanish
- Usability: Adding Wireless Network - Way too many options
- Simplyfy Manage connections window
- networkmanagement widget should offer user connect to WiFi network
- applet should have report-bug/wish function
- no Help or What's This tooltips for Network Connections
- networkmanager plasmoid icons too small when in panel (not notification tray) (FIXED)
- Network Manager Plasmoid doesn't brighten up when hovering (FIXED)
- Change the default plasma wifi icon
- NetworkManager should have a better (shiny) icon
In the last months I have received several complaints about Plasma NM user interface. I have also thought about what I could change and today I decided to implement some of my thoughts in my private Plasma NM repository. What you are going to see is not a mock up :-)
For those who do not believe that is not a mock up, here is the screencast:
Those changes are not final. I am going to discuss them with Björn Balazs and the other Solid guys before commiting anything. This is post is to present and ask comments about them. Do not expect any GUI changes in Plasma NM before the end of the sprint next month.
Update: answering some questions:
- @damian, 1. the "Enable" checkboxes are there not only for users clicking on them but also for NetworkManager daemon to inform which features are enabled. NM can disable network, wireless and mobile brodband without user intervention, if I move the checkboxes to the interfaces tab then users will have to go to interfaces tab to see why there is no connection listed when wireless is disabled for instance. Also, mobile broadband is always disabed by default by NM daemon, so for mobile broadband connections checking the "Enable mobile broadband" checkbox is required. Well, actually if you click on the mobile broadband connection it will enable mobile broadband, so it is not required :-) But if the modem takes too much time to active itself the connection can times out and some modems, like my Sony MD300, can be activated only once by NM. After that I have to remove it from the USB port and plug it again to make another connection. In resume: keeping the checkboxes in the connection list tab saves one click in some situations. 2. I like the fact that I can access the details tab by clicking on one active connection, specially because now there is no visible way to associate one interface to one connection. Think about people who have more than one instance of the same interface type. I have a 3G modem and when I plug my cellphone I will have a second gsm interface. I can connect the same Gsm connection using either device. In this case it is usefull to get to the interface details by clicking on the connection instead of first figuring out which network interface is activated and then clicking on it. 3. I like the "Show More" button (now "Show all" checkbox) and it is going to stay there as long as I am working on Plasma NM :-P. The
item is required because of the way NM work. I explain: after creating a hidden wifi connection it HAS to be activated so that NM uses wpa_supplicant's ap_scan=2 option to search for it. NM uses ap_scan=1 by default, do not ask me why, maybe to save power or to be faster, I do not know. When using ap_scan=1 wpa_supplicant does not search for hidden networks, with ap_scan=2 it does. So I need a way to ask the ssid and activate the hidden network after it has been created. It is not a normal connection because normal connections do have to be activated right after creating them. Maybe adding a new "Hidden" checkbox in wireless dialog is better, but since there are two bug entries about the complexity of creating connections I am not willing to add more widgets to connection dialogs.
- @Anonymous, I will change Plasma NM to save the "Show More" state across restarts. Maybe I can add a option in "Manage Connections" -> Other to always show all connections. When it is activated I can hide the "Show More" button / "Show all" checkbox. "when the mouse cursor is floating over a interface of the list it should change the line of the video that says 'Connected to xxxxxxx' with 'Click to disable' if the interface is enabled & 'Click to enable' if the interface is disabled." It is good suggestion, I will see what I can do. Just keep in mind that wired ethernet cannot be enable/disabled in NM, only wireless and mobile broadband can. The "mini-icon" (disconnect button) on the interface item only appears if there is one activated connection using that interface. I do not see a need to change colors to indicate the connection state. Also, keep in mind that there are daltonian people (like me) out there who have difficulty to distinguish colors, specially in tiny buttons like that one. I prefer to show/hide the tiny button, it is more visible. OBS: although I am daltonian I can distinguish between red and green, there are several levels of daltonism, luckily for me mine is not that severe.
- @Srk9, unfortunately NM's API does not provide means to change the default route from one network interface to another, so it is not possible for me to implement your suggestion.
- @Anonymous, yes, there are some artifacts in Plasma NM GUI, but they are not as bad as in the youtube video, which was recorded at 15 frames per second by the way. I will use 30 fps the next time I do a screencast, I think youtube trancodes the video to 15 fps, right? Some of the "artifacts" in the video are actually Plasma effects, they look much better in real time :-). In fact, the only two artifacts that really happens in the video happen when changing the network interface used in interface details tab and when clicking on the "Show all" checkbox. The connection list is a Plasma::ScrollWidget class, which adds all items first before creating the vertical scrollbar and shrinking the visible part of the list. That is a bug (or whatever you want to call it) in Plasma::ScrollWidget triggered by the fact that all QGraphicsWidget (Plasma's widget base class) are shown by default, in contrast to the hidden default used in QWidget class used by most KDE's software.
- @emilsedgh, allowing to select which interface details to show is already a pending implementation. You can enable notifications to show the connection state, just to go Manage Connections (or system settings -> Network Settings) -> Other -> Configure Notifications and enable "Establishing Network Connection" and "Network Connection Succeed". You can enable "Interface changed state" instead but it is more "verbose". The system tray icon also shows the connection state change, but I agree that it is really subtle.
- @Anonymous, how is it more complicated? Main window is smaller and there are less widgets in it.
- @Anthony Vital, thanks for the tip about Plasma::ScrollWidget, it works great. One less artifact in Plasma NM GUI :-)
- @Anonymous, I kind of like the kickoff plasmoid.
- @yoda, some people do not like the "Show More" button, they have difficulty to figure out what it really does :-/ So I am trying to keep it there without drawing to much attention. Plasma allows more entries in right click menu icon, I can add some more items there. I just do not know if I can add QAction's there like you suggested. Kmix is not a plasmoid so it is able to add QAction's at will, I just need to figure out if plasmoids can do the same. Update Sep 20: it can, just return the QAction list in contextualActions(). "how I'm supposed to see details of other interface?" For now it works like you described, you need to go back to the Interfaces tab and click on the second interface to see its details. I like the mockup you created, I will join the Details tab to the Interface tab like you suggested. Maybe not exactly like in the mockup but I will. I have just commited to branch nm09 the change to show interface details instead of deactivating the connection when clicking on an active connection. That already works in the youtube video and since it does not change the GUI I do not see why not commiting it now.
- @Aaron J. Seigo, thanks, I am glad to know people like the changes :-) I plan to save the "Show all" checkox state between restarts. When ready I can change the "Show all" default to enabled and the connection list will be completely visible. Those, like me, who prefer "Show all" unchecked will need to change it only once. I think that is the best solution.
- @BajK, I am taking the oportunity to talk in person to someone with skills in usability to assist me :-) Well, this commit partially fix your problem: the plasmoid will be shown poped up, but I do not know exactly why the background still keeps the icon's dimensions instead of the popup's dimensions. I will try to figure out why. Update Sep 20: problem fixed.