Bug 336113

Summary: Regression: lock screen doesn't allow to switch session
Product: [Plasma] plasmashell Reporter: Martin Flöser <mgraesslin>
Component: generalAssignee: Sebastian Kügler <sebas>
Status: RESOLVED FIXED    
Severity: normal CC: aleixpol, bhush94, jamboarder
Priority: NOR Flags: aleixpol: Usability+
aleixpol: VisualDesign+
Version: master   
Target Milestone: 1.0   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Martin Flöser 2014-06-12 08:42:51 UTC
The lock screen in KDE4 allowed to:
* list all sessions
* switch between sessions
* start new sessions

The new lock screen in Plasma 5 doesn't allow to do any of these

Reproducible: Always

Steps to Reproduce:
1. Lock screen
Actual Results:  
no way to switch session

Expected Results:  
UI offered to switch session
Comment 1 Aleix Pol 2014-06-12 08:59:20 UTC
This is not contemplated by the mockup, adding Andrew Lake to the bug report.
Comment 2 Andrew Lake 2014-06-12 11:31:29 UTC
Actually, I think the mockup accounted for switching or starting new user sessions.

http://wstaw.org/m/2014/04/05/unlock_mockup.png

Unless I'm misunderstanding what's meant by sessions.
Comment 3 Aleix Pol 2014-06-12 12:24:36 UTC
Sessions are slightly different, you can have different sessions for the same user and different users without sessions.

You can open a new session by pressing "ctrl+alt+F2" and logging in.

I don't know where to find further documentation about them, maybe Martin can point to some?

Also it would be interesting to ponder know how much do we want that feature on the login screen, I definitely haven't used it so far.
Comment 4 Martin Flöser 2014-06-12 12:34:53 UTC
(In reply to comment #3)
> Sessions are slightly different, you can have different sessions for the
> same user and different users without sessions.
> 
> You can open a new session by pressing "ctrl+alt+F2" and logging in.
> 
> I don't know where to find further documentation about them, maybe Martin
> can point to some?

well I can show a screenshot of the old switcher: http://paste.opensuse.org/40242468

> 
> Also it would be interesting to ponder know how much do we want that feature
> on the login screen, I definitely haven't used it so far.

I think that's very important for multi-user environments (think of computer pool at a University).
Comment 5 Andrew Lake 2014-06-12 18:05:04 UTC
Ahh got it. 

So the design shown in the mockup was done to account for the kind of multi-user environments Martin G. mentions. The multi-user switching workflow for this design is:

[User A locks sesson] -> [User B selects avatar then types password to login in to new session OR unlock the existing session]

I admit the design shown in the mockup doesn't account for multiple sessions for the same user, but that is easily solved from the visual design side by adding a button or a checkbox to start a new session instead of unlocking the existing one.

BUT I acknowledge that the current separation of the login implementation and the lock screen implementation may make implementing the design as shown in the mockups challenging. So what if we just apply the design to the current lockscreen implementation? Then the overall user switching workflows would be:

A. Create new session:
[User A locks sesson] -> [User B selects "New Session" avatar] -> (new session loads login screen) -> [User selects avatar on login screen and types password to login]

B. Switch between existing sessions:
[User A locks sesson] -> [User B selects his/her avatar and types password to unlock session]

So basically to solve this within the current design, I propose that each open session be shown as an avatar (with the session user pic) like in the mockup plus one additional "no-face" avatar named "New Session". Does that explanation makes sense?
Comment 6 Martin Flöser 2014-06-12 18:13:10 UTC
(In reply to comment #5) 
> B. Switch between existing sessions:
> [User A locks sesson] -> [User B selects his/her avatar and types password
> to unlock session]

such a switch is for technical reasons not possible. The sessions are really separate (different X screens on different tty), one needs to first switch the tty before one is able to type in the password. The design you propose won't be possible before Wayland.

That's also the reason why there is so much text in the screenshot shown above.
Comment 7 Andrew Lake 2014-06-12 18:18:19 UTC
(In reply to comment #6)
> (In reply to comment #5) 
> > B. Switch between existing sessions:
> > [User A locks sesson] -> [User B selects his/her avatar and types password
> > to unlock session]
> 
> such a switch is for technical reasons not possible. 

Bummer. No worries though. Would the following be more in line with what we can be accomplished technically?
B. Switch between existing sessions:
[User A locks sesson] -> [User B selects his/her avatar] -> (session switches) -> [User B types password to unlock session]
Comment 8 Martin Flöser 2014-06-12 20:34:35 UTC
> 
> Bummer. No worries though. Would the following be more in line with what we
> can be accomplished technically?
> B. Switch between existing sessions:
> [User A locks sesson] -> [User B selects his/her avatar] -> (session
> switches) -> [User B types password to unlock session]

yeah, but the switch might need to be explicit. It can take a few seconds (no 
joking here) to switch between virtual terminals :-(
Comment 9 Andrew Lake 2014-06-12 20:54:03 UTC
(In reply to comment #8)
> yeah, but the switch might need to be explicit. It can take a few seconds
> (no 
> joking here) to switch between virtual terminals :-(

What if the details of the general [User selects his/her avatar] mechanism looks like this:
1. User scrolls to or clicks desired avatar, bringing it front and center similar to the mockup.
2a. If the avatar represents the current session, the password field is shown and the button says "Unlock". The user enters their password.
2b. If the avatar represents an existing but not current session, the button under the avatar says "Switch to session"
2c. If the avatar represents a new session, the button under the avatar says "Start new session"
3. The user clicks the button.
4. The session unlocks, switches or starts as appropriate.

Hopefully that way the action triggering the session switch is explicit. Does that sound ok?
Comment 10 Martin Flöser 2014-06-13 06:42:28 UTC
> Hopefully that way the action triggering the session switch is explicit.
> Does that sound ok?

yes, that sounds good.
Comment 11 Andrew Lake 2014-06-13 17:14:11 UTC
(In reply to comment #10)
> yes, that sounds good.

Perfect. I'll assume then that the visual design feedback needed to fix this bug is available here. Let me know if there's anything else needed from the VDG side of things.
Comment 12 Aleix Pol 2014-06-13 22:12:05 UTC
Ok, I'll give it another go next week.
Comment 13 Martin Flöser 2014-06-14 06:57:35 UTC
(In reply to comment #12)
> Ok, I'll give it another go next week.

while you are at it - I noticed two more issues:
* messages from PAM are not shown (e.g. "incorrect password")
* password doesn't get selected after wrong password (that was discussed in the review request which brought back the lock interface in the first place)
Comment 14 Aleix Pol 2014-06-16 16:38:45 UTC
Git commit 92a0ab2857994abcfa63382ae3677d685025f62d by Aleix Pol.
Committed on 16/06/2014 at 16:33.
Pushed by apol into branch 'master'.

Make it possible to switch sessions from the lock screen
Related: bug 336324

M  +4    -5    lookandfeel/contents/components/UserDelegate.qml
M  +5    -0    lookandfeel/contents/components/UserList.qml
M  +2    -0    lookandfeel/contents/components/UserSelect.qml
M  +85   -4    lookandfeel/contents/lockscreen/LockScreen.qml

http://commits.kde.org/plasma-workspace/92a0ab2857994abcfa63382ae3677d685025f62d
Comment 15 Martin Flöser 2014-06-17 09:13:44 UTC
looks really good, thanks for fixing!

I just played around with it and noticed that I cannot navigate using keyboard. Especially I had problems going back from the change session mode to the password field.