Summary:
QQC2 StackView has a major behavioural difference
QQuickStackViewPrivate::setCurrentItem
item->setFocus(true);
This as a general rule makes sense, especially if you're pushing a whole
focus scope onto the stackView, it would automatically select the right
element. However as our base was not a focus scope the
SessionManagementScreen instance itself got focus, taking it away from
the child password box.
LockScreenUi has to be changed so that it sets the initial focus the
same even though the stackview is on QQC1.
Test Plan:
qmlscene in the sddm-theme directory with the dummydata setup
locked the screen regularly
Lots of gammaray
Reviewers: #plasma, ngraham
Reviewed By: ngraham
Subscribers: davidre, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D25261
Summary:
BUG: 414399
FIXED-IN: 5.18
Test Plan:
1. Lock screen
2. type something in the password field
3. Close lid/suspend system
4. Reopen Lid
Before:
Password text is kept as in step 2
After:
Password text is empty
Reviewers: #plasma, broulik, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D25487
Summary:
QQC2 StackView has a major behavioural difference
QQuickStackViewPrivate::setCurrentItem
item->setFocus(true);
This as a general rule makes sense, especially if you're pushing a whole
focus scope onto the stackView, it would automatically select the right
element. However as our base was not a focus scope the
SessionManagementScreen instance itself got focus, taking it away from
the child password box.
LockScreenUi has to be changed so that it sets the initial focus the
same even though the stackview is on QQC1.
Test Plan:
qmlscene in the sddm-theme directory with the dummydata setup
locked the screen regularly
Lots of gammaray
Reviewers: #plasma, ngraham
Reviewed By: ngraham
Subscribers: davidre, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D25261
Summary:
This patch removes some spacing which was making the 'switch users' button get slightly cut off on small displays (1366x768). Quite a few old laptops have screens of this size, so it is good to take into account that display size as well, as long as it doesn't negatively affect the appearance for large displays.
BUG: 410801
FIXED-IN: 5.17.0
Test Plan:
Lock screen when connected to a low-res display and check that the 'switch users' button isn't cut off.
**Before this patch:**
Lockscreen on small display (1366x768): {F7330101}
Lockscreen on big display (1920x1080): {F7330096}
**After this patch:**
Lockscreen on small display (1366x768): {F7342190}
Lockscreen on big display (1920x1080): {F7342191}
Reviewers: #plasma, #vdg, ngraham, filipf
Reviewed By: #vdg, ngraham, filipf
Subscribers: filipf, ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D23786
Summary:
TL;DR version: whenever you currently would be taken to a session switcher page where the only possible action is to go to SDDM and start a new session, instead just show SDDM immediately instead.
Currently, the session switcher screen suffers from a few UX problems:
- There's a fake "start new session" item that looks like a button but isn't clickable
- Asking to switch users always goes to the screen where you can switch to existing sessions even if there are no existing sessions to switch to, which is an unnecessary extra step
This patch aims to solve those problems in the following ways:
- Don't show a fake "start new session" item in the Breeze theme; instead add a real button in the UI to do this
- When asked to show the session management screen and there is only one session so the on;y thing you could do on that screen is create another session, instead just go to session creation directly
- For themes where the fake "start new session" button is shown, use a better icon that doesn't make it look like a clickable button
BUG: 386361
FIXED-IN: 5.17.0
Depends on D23279
Test Plan:
1. Have only one session > Kickoff/Kicker/dash/Krunner > Switch User -> you go directly to SDDM where you can start a new session
2. Start a new session, then Switch user again -> you go to the session management screen where you can switch to the other session, or start a new one
Videos:
Clicking "Switch User" when there are no other sessions: {F7264475}
Clicking "Switch User" when there is another session to switch to, and then switching to it: {F7264476}
Clicking "Switch User" when there is another session to switch to, and then starting a new session: {F7264480}
Switching between multiple sessions in the session switcher: {F7264483}
If the fake "New Session" item is shown (e.g in other themes), here's what it now looks like: {F7264485}
Reviewers: #plasma, #vdg, GB_2, mart
Reviewed By: #plasma, #vdg, GB_2, mart
Subscribers: GB_2, gregormi, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D23283
Summary:
Because the fake {nav Switch User} item in the switcher UI counts as a session, the button
was always being shown. But if and when that changes and the fake item is no longer shown,
the {nav Switch User} button itself will stops being shown potentially locking out
non-logged-in users in multi-user computers where the only logged-in user has locked the
screen.
This patch drops the conditional check entirely and always shows the {nav Switch User}
button when session creation/switching is possible.
Test Plan: No change; {nav Switch User} button is still shown.
Reviewers: mart, #plasma, #vdg, filipf
Reviewed By: #vdg, filipf
Subscribers: filipf, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D23279
Summary:
This patch:
- tells the login screen to modify the font size specified in theme.conf and the lock screen to modify the user's default theme's font size instead
- makes sure that the login screen session and keyboard buttons take this new approach too
- raises the font size of "Start New Session" on the lock screen (to match the rest)
- raises the artist/track font sizes (to match the password field)
Test Plan:
This patch resolves the problem of
(1) The fonts on the login screen and
{F6676520}
(2) the fonts on the lock screen
{F6676524}
not having matching sizes.
Reviewers: #vdg, #plasma, ngraham, filipf
Reviewed By: #vdg, ngraham, filipf
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Maniphest Tasks: T10325
Differential Revision: https://phabricator.kde.org/D19631
Summary: This patch removes the shadow from the usernames on the login and lock screens. It also restricts the clock shadow to just the opaque (unfocused) versions of each screen.
Test Plan:
{F6648570}
{F6648571}
Reviewers: #vdg, ngraham, filipf
Reviewed By: #vdg, ngraham, filipf
Subscribers: filipf, plasma-devel
Tags: #plasma
Maniphest Tasks: T10325
Differential Revision: https://phabricator.kde.org/D19468
Summary:
As requested in D16031, tweak the login and lock screens in only fairly non-controversial ways:
- Add a dark background behind the user avatar and a shadow behind the username
- Tweak the clock shadow to make it a tiny bit stronger
- Reduce clock shadow redundancy by moving it into the `Clock` item and out of the clients
- Don't use hardcoded shadow colors anymore
With the existing UI, these are very subtle changes that should barely be visible.
This diff does **NOT** include the following changes from D16031:
- Blur-less login screen
- New icons for the buttons
- Horizontal bar on the bottom to hold the buttons for the virtual keyboard, session chooser, and battery status
Test Plan:
Login screen:
{F6424115, size=full}
Lock screen:
{F6435507, size=full}
{F6435506, size=full}
{F6435519, size=full}
{F6435518, size=full}
{F6435517, size=full}
{F6435516, size=full}
{F6435515, size=full}
{F6435514, size=full}
{F6435513, size=full}
{F6435512, size=full}
{F6435511, size=full}
{F6435510, size=full}
{F6435523, size=full}
{F6435522, size=full}
{F6435521, size=full}
{F6435509, size=full}
{F6424114, size=full}
Reviewers: davidedmundson, #vdg, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: mart, rooty, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D16879
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