Search This Blog


Friday, August 19, 2011

Wireless sharing with Plasma NM 0.9 (part 2)

In my last post about shared connections I asked how I could make shared connections easier to setup. I have received some suggestions, but some of them were not that easy to implement (drag'n drop one connection onto an interface widget in Plasma NM's main window) or still not easy to understand how to use. Then I got an idea to just add a new entry in the "Add" button, similar to when creating VPN connections. I am here to ask what you all think about this change to the connection editor:

And after selecting the "Shared" option:

You still can use the normal dialog to create wireless shared connections, but the unneeded widgets will not be hidden and the dialog will look like this:

Now the user just need to click on the OK button to finish the setup. The default configuration is to use no encryption, you still need to go to the Wireless Security tab to setup the encrytion key. You can also create wired shared connections in the same way.

The patch has not been commited yet, I want to hear your oppinions before I commit it.


Wyuka said...

hey! this is great.. actually i was thinking to work on the exact same thing this week ... i just planned to add a simple 'add an ad-hoc connection' to the plasma applet itself. Nonetheless, well done. One suggestion - can you set the SSID to the connection name by default, unless the user changes it manually?

Actually this is what i had in mind initially --

right below the item in the plasma widget, there can be a 'new shared network', where it just requires a name (used as both the pretty connection name and ssid), and everything else is done by default. the user can then modify it, add passwords, etc normally. what so you think?

Lamarque said...

@Wyuka, I prefer to keep the buttons to create shared connection in the Manage Connection dialog. It is possible create wired AND wireless shared connections, using one entry in the plasmoid's main window would allows us to create only one type (wired or wireless).

I will change the code to use the same string for the connection name and ssid.

IAnjo said...

Looks great, it simplifies the setup and seems to be more discoverable.

Lamarque said...

In fact, I think will have to use different names because I do not know if spaces in ssid works ubiquitously.

verbalshadow said...

The way you have it is nice for a dedicated sharing connection. It does not simplify the most common use case in my opinion. The one where the need to share is sporadic or unplanned.

Putting a share toggle in the plasmoid takes care of both use cases (sporadic and planned.) If the connection has never been shared before the dialog pops up with sensible defaults. If it has already been configure that it enables sharing on the connection. Click again to disable sharing.

Lamarque said...

@verbalshadow, I still prefer not to add more widgets to main window, which already have several widgets. Besides, the "share" button would be too close to the disconnect button and could be clicked by accident.

R. said...

Yay! go for it.

Also, I guess making Connection name and SSID the same would be nice.

Prometheus said...

I think it might be better to place another checkbox under the System Connection checkbox, instead of doing a drop down “Share this connection”. (Unchecked by default.)


- the typical (not shared) use case requires exactly as many clicks as it did before
- the shared use case requires as many clicks as it would otherwise (i.e. 1 more than not shared did before)
- sharing is easy & easily discoverable
- switching between sharing & not sharing is as easy & as easily discoverable since it is part of the “normal” flow of editing your connection details.

Lamarque said...

@R., the problem is that I do not know if spaces are allowed in ssid. Even if they were that could cause some problems, here at my house my notebook detects an access point with space in its ssid, but the space is interpreted as garbage and the rest of the ssid is not visible in NM (it is in iwlist scan).

@Prometheus, I am trying to simplify the edit connection dialog (there are two or three bug entries about that in Adding more widgets in the dialog is not a good idea. One thing I could do is split the add menu into two buttons: the old "Add" button and a "Share" button. I am just not sure if it is easy to understand what the "Share" button would do.

verbalshadow said...

My suggested workflow is easier then even then OSX.

Or windows.

Not sure why we would want to copy both OSX and Windows by having to go to systemsettings (control panel / system preferences) to start configuring a shared connection. When we can create a superior workflow. Connection sharing is one of those things you can only use if you know about it. In it's current suggested method it is not very discoverable at all.

I agree where I put the share button is a little close to the disconnect button but having it in the plasmoid will make KDE have the easiest and most discoverable connection sharing workflow. So place it elsewhere in the connection button or information area. Perhaps on the other side of the "Connected to" text. I would not worry about cluttering up the plasmoid just yet. You have lots of space that is unused and adding one extra button that improves our user experience greatly out weighs the "extra clutter".

Lamarque said...

@verbalshadow, I am using the Manage Connection widget to add the share button because connection sharing is not used by everyone, so it is better not clutter the interface. The current method may not be explicit, but it is discoverable. Most people tend to use Manage Connection to add new wireless connections, they will see the "Shared" option there.

Anonymous said...

Another way to address Prometheus' idea is to use QToolButton::setPopupMode(QToolButton::MenuButtonPopup); then the submenu is only displayed when pressing the arrow; when clicking the rest of the button, the default action is performed (set with QToolButton::setDefaultAction(QAction*)).

verbalshadow said...

So as a normal user. I'm meeting a friend at a cafe for Chai and some work. While there I need to share connection with them to transfer our private files or so my friend can browse sites. How do I share my connection with my friend again? Where do I look first?

A) Goto system settings and hunt in the connection manager.
B) Check my network connection in the system tray.

I would like to see support for the statement. "Most people tend to use Manage Connections to add new wireless connections..."

I really think most people create connections starting at the plasma widget. Click the name of the Access Point, then the dialog pops up you input your passphrase and you connect. The only people who start connections in Manage Connections are PowerUsers. Yes I understand the connection sharing can be construde as a power user feature but, that doesn't mean that it needs to be tucked away from everyone's eyes in the system settings. Their is no reason to not make the every users experience better.

Lamarque said...

@Anonymous, good idea. I thought about doing that but since KPushButton does not provide that facility I let it go. I will have to replace the KPushButtons to QToolBox and change the default configuration to show text instead of icons, it might work. When I have more time I will try doing the changes.

@verbalshadow, the commit I mentioned in my blog is to create shared connections easier. Once created the shared connection is listed together with the other connections. You just need to click on it as you would do with any other connection, that would be option B). You do not need to go to Manage Connection everytime you want to share the connection. Keep in mind that in despite of the name "shared connection" what you really share is the network interface.

Do a statistic analysis on the bug reports in and see that most people mention they use Manage Connections or systemsettings (both use the same C++ classes) to create connections. Few reports mention clicking on the access point name to creat connections, maybe because I implemented that only about six months ago :-) and Plasma NM is much older than that.

The reason to do not add a button in main window just for share a connection is do not clutter the interface. Sharing connections is not the norm, it is an unsual situation compared to the number of people that just want to connect to the Internet through wireless or any other method. If it is not that used, why bother most people with a button in main window they are rarely going to use?

procuste said...

from a simple user POV this are good ideas :-)
1)Connection name and SSID the same.

simply call them "nameofuser-share" without spaces

2)place another checkbox under the System Connection checkbox, instead of doing a drop down “Share this connection”. (Unchecked by default.)

2.1)split the add menu into two buttons: the old "Add" button and a "Share" button. I am just not sure if it is easy to understand what the "Share" button would do.

if you call the "share" button "add share", perhaps could be more understandable

Lamarque said...


1) I already changed the ssid name to be the closest as possible to the connection name without using spaces. For the sake of consistency we need to keep using spaces in connection's names since it is already used in all other connection types' names.

2) I already explained that I am not going to add new widgets in edit dialog. There are already entries in complaining about the complexity of the edit dialog.

Fri13 said...

I have now tried this and I can not get connection shared. It just tries to assign a IP address but fails doing it.

@procuste "simply call them "nameofuser-share" without spaces"

I would not use such as it is a security risk when others can quess or directly see computer username and then just try different typical passwords (especially when having a open Ad-Hoc).

Lamarque said...

@Fri13, try reloading your wifi card driver. That usually solve the problem for me. I still do not know why that of problem happen.

procuste said...

@you ("nameofuser-share" without spaces") I would not use such as it is a security risk when others can quess or directly see computer username and then just try different typical passwords (especially when having a open Ad-Hoc).

you are hugely right :-)

using your new edit dialog with "add share", it is quick and simple, but, but a i'm thinking this, and would like tu argue:-) : why you have to "create" or "add" a shared connection when the real word is "activate".
1) now adding a share connection is only matter of two clicks, you have to click and no need to modify anything, so, why don't have an already created "shared connection" where to click to activate it and click again to deactivate?

2)I think 99.9% of people will create or add only *one* shared connection (one wireless and one wired at maximum, but, if, when you activate the "shared" you will activate both, wireless and wired, you need only one "shared"), so why have an entry in add button that will be used once only?

:-) what you say about? :-)

Lamarque said...

@procuste, because you need to create the connection before activating it. Not everybody wants to use shared connection, so I do not see why create shared connections a priori. I already wrote about that.

The "Shared" button is there to make the shared connection feature visible. Shared connections works for more than year in Plasma NM, but the way it was before most people did not find where to create them. That was the complaint I heard during Desktop Summit.

In my view it should be more visible but yet not clutter the interface nor get in the way of people who do not use the feature. Adding just one button seems the way to go in my oppinion.