Summary:
In the lock screen, pressing the enter key while the UI is not yet
visible ends up trying to unlock (and would usually fail because the
password field is empty).
Ensure that the UI is visible before unlocking.
BUG: 395671
Test Plan:
Lock the session, press enter. The UI should appear without any
"Unlocking failed" message.
Reviewers: #plasma, #vdg, ngraham, davidedmundson
Reviewed By: #plasma, #vdg, ngraham, davidedmundson
Subscribers: ngraham, davidedmundson, abetts, filipf, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D16219
Summary:
Years ago support was added for the lockscreen to default into switch user
mode. The goal being to simplify one more task from ksmserver.
It got postponed because it clashed with a change Kai made at the time.
Now I'm restoring that.
The code broke in the lockscreen rewrite.
Test Plan:
Called the switchUser DBus method
Lockscreen spawned on the right page
Locked screen normally, got the normal page
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15185
The Lock Screen implements its own OSD as the OSD will not render ontop of the lock screen.
This patch makes it apply the same long fadeout it has in the normal window.
Also add some spacing to the bottom of the screen. I did not place it exactly where the regular one would be
as the bottom placement was somewhat done to avoid it covering the password input.
Differential Revision: https://phabricator.kde.org/D12549
Summary:
I tend to press left control to wake my screen. This doesn't reveal the controls
which I found mildly annoying.
Test Plan:
Locked screen pressed random letter, it removed blur and appeared in textbox
Locked screen pressed shift, it removed blur and didn't alter textbox. It timed out as before
Pressed escape. Toggles as before
Reviewers: #plasma, broulik, ngraham
Reviewed By: #plasma, broulik, ngraham
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D12494
Summary:
for both lockscreen and login screen:
* display the wallpaper and the clock with a shadow by default
* at the first mouse or keyboard input, make the input fields appear
* the actual controls appear pretty fast
* the wallpaper starts to blur, desaturate and fade to darker
* after 10 seconds make the controls disappear again
* as soon as anything is written in the password field never fade out the controls
* if the virtual keyboard is open, never fade out the controls
* if anything is pushed on the stack, like "switch user", never fade the controls
* Esc clears the field and makes controls disappear (closing keyboard if needed)
the fade won't happen if the background is a simple color
BUG: 369676
BUG: 388622
FIXED-IN: 5.13
Depends on D12314
Recommended D11309 and D11308 to change the default wallpaper to plasma wallpaper
Test Plan: tested the behavior of all the above points
Reviewers: #plasma, #vdg, ngraham
Reviewed By: #vdg, ngraham
Subscribers: zzag, abetts, davidedmundson, ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D11928
Summary:
BUG: 382834
Per the QML specification, the animation Easing.InQuad should be specified with easing.type, not easing.
Test Plan:
run kscreenlocker --testing
The console output should not display a warning about the animation.
Reviewers: davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6970
Summary:
When clicking the hide button provided by the virtual keyboard, the
keyboard hides, but the state is not updated. This means the animation
for hide is not triggered and even more important the next call to
showHide sets a wrong state. The state assumes it is in visible, when
clicking it goes to hidden. So the virtual keyboard is not getting shown
when clicking the show virtual keyboard button.
To address this problem a change handler for keyboardActive is added
which ensures the state is correct whenever the keyboardActive value
changes.
BUG: 381833
FIXED-IN: 5.10.4
Reviewers: #plasma, sitter
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6456
Summary:
use a state machine to define in a cleaner way
the layout of the lock screen when the keyboard is
open on closed. animate between the state changes with
a slide animation
Depends on D4870
Test Plan:
tested opening the keyboard with different screen locker sizes
to see the text field and the button always stay visible
Reviewers: graesslin, #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4893
Summary:
Just like in the lock screen this adds support for virtual keyboard.
Note: this requires adjustments in sddm, the greeter must specify the
env variable QT_IM_MODULE=qtvirtualkeyboard to have the virtual keyboard
shown.
If the virtual keyboard is not available, the button to enable it will
not be shown.
Test Plan: run in qmlscene
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5061
Summary:
If the Loader fails to load we do not need to show the virtual keyboard
button. It won't be functional.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5062
Summary:
This change integrates QtVirtualKeyboard into the Lock screen UI.
A new button is added to the bottom row to toggle the appearance of the
virtual keyboard. The actual keyboard is integrated through a Loader so
that not having qtvirtualkeyboard plugin installed results in a graceful
error instead of a failing lock screen.
When the virtual keyboard is shown the remaining UI shifts upwards. This
is done through adding the stack view into a ColumnLayout. Unfortunately
this can result in an overlap with the clock. This needs some general
improvement as on e.g. my system the clock is never really visible.
To have the virtual keyboard working in the lock screen one also needs
another change to kscreenlocker_greet.
Test Plan: See screenshots
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4870
Summary:
The clock so far was manually positioned in a hard coded way which could
result in the clock not being visible or only partly visible. This is the
case for example on my high dpi system with Wayland. See F2672846 for an
example.
This changes the layouting of the clock to use a ColumnLayout, with
spacer elements to ensure that the clock stays visible. It is possible
that the position of the clock now does no longer fully reflects the
ideas of the VDG.
Test Plan: Looks better on my system ;-)
Reviewers: #plasma, #vdg
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4877
Only show the button if there's a session to switch to and/or the user is allowed to launch a new session.
Differential Revision: https://phabricator.kde.org/D3231
Ask the model instead. The entry might not be there if the user is not allowed to start a new session
Differential Revision: https://phabricator.kde.org/D3232
Several small improvements to design and usability of the lockscreen:
- Keyboard focus changes to switchSessionPage (typing password and issuing
unlock requests in this view not any longer possible) and other way around
- Keyboard commands for switchSessionPage: Left/Right, Return, Enter, Escape
- Password field is cleaned on changing back to the main screen or session
- Quick fade in of input elements on invocation of lockscreen
- Animating slide out of clock and input elements when switching user, which
is in line with the other sliding animation of the Stackview. It also helps
to easen the transition, when the users have different themes or languages
Reviewers: davidedmundson
Tags: #plasma #vdg
Differential Revision: https://phabricator.kde.org/D3055
Instead of showing the "New Session" item on the main lockscreen and
the subpage switchSessionPage, we only show it on the second one.
The lockscreen's functionality is in the first place to lock the
screen and therefore it shouldn't largely advertise the possibility
of creating a new session.
That's why we move the creation of a new session completely to the
subpage switchSessionPage, where it fits better to the other
possibility of switching to an already existing one.
Reviewers: davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3034
Summary:
This (optionally) appends an entry to the SessionsModel to append a "New
Session" option. The lock screen / user switcher are then modified to
use it.
Messages.sh is modified so all components are covered by the same pot.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2594
load the lockscreen wallpaper immediately and don't bother
to load the actual ui.
after it's done (we get a frameswapped) load the rest of
the ui in a loader.
this will end up in the lockscreen loading actually
slower in absolute times, but in the *perception* it
will look like radically faster.
REVIEW:126837
This migrates the Lock Screen qml from using ksmserver's Session model
to the new one provided by components.
Changes:
- It now shows the user avatar and full name in the user switcher
- It only offers to switch sessions if there are any
REVIEW: 125774
All UI is put into a loader to get the actual lock screen loaded faster.
This gets the creation of two views down to about < 600 msec from before
around 1.8 sec. The initial startup time is extremely important to ensure
the screen is properly locked when going to suspend.
REVIEW: 124933
This fixes type errors shown on startup:
TypeError: Cannot read property 'showPassword' of undefined
TypeError: Cannot read property 'ButtonLabel' of undefined
REVIEW: 124931
Clear the password field if no input happened for 30 sec. This is
intended for cases that the user starts entering the password and
then moves away from the system leaving it in a state where anyone
could unlock the session by just pressing enter.
BUG: 326633
FIXED-IN: 5.3.0
REVIEW: 122511
This ensures that the password field is cleared if the user changes
to the switch session entry. It's a kind of "protect user from own
stupidity" change. If the user enters the password, then decides to
switch user any user would be able to unlock the session.
KSld connects to the DBus signals for the OnScreenDisplay and forwards
them to the greeter application through the private Wayland protocol.
The idea here is to not have the greeter connect to the DBus as in future
it would be preferable if the greeter cannot connect to DBus.
The lookandfeel package might expose an object called "onScreenDisplay".
Whenever an OSD message is recieved by the greeter it looks for such an
object and updates the osd specific properties.
The default breeze lookandfeel package integrates the OsdItem from the
same lookandfeel package.
REVIEW: 122452
Don't use a separate label which causes the layout to shift but just use the
notification label and prepend the warning to any actual message.
REVIEW: 121419
When navigating the listview with the keyboard, the focus of the
password field can get lost as it moves to the button. This patch
reclaims the focus whenever the password field becomes visible.
REVIEW:121253
Logging out from the locked screen is impossible. Logging out means
interaction with the session due to the session manager. The session
manager asks all applications to quit and applications are allowed to
ask for example saving changes. The session manager stopps the
logout in this case and asks the window manager to focus this window
and the session manager will only continue the logout once the
application resolved the situation. At any time in this process the
user is still able to abort the logout!
Switching to the application which needs interaction is impossible,
though as the screen is still locked. The result is a seemingly
frozen system as the logout cannot continue and there is no indication
what is going on.
Of course the lock screen cannot unlock the session for the logout as
that would circumvent the security. If the lock screen would unlock
one would just have to click the button and abort the logout really
fast to have the system unlocked. So this is clearly not an option.
The result is: we cannot implement this functionality in a working
and secure manner, so it's better to remove it.
REVIEW: 120577
BUG: 339453
FIXED-IN: 5.1.1