Commit graph

34 commits

Author SHA1 Message Date
Yago Raña Gayoso
a7f07dabe0
lockscreen: Make the virtual keyboard button follow HIG
Match with the changes in 15ff08317e
2026-11-01 15:59:29 +01:00
Niccolò Venerandi
5a5e864c61 Do not show login interface when receiving empty messages
BUG: 527262
2026-10-29 18:11:35 +01:00
Niccolò Venerandi
71b7f850e0 Do not use wallpaper context variable binding as it changes value incorrectly
BUG: 527569
2026-10-22 15:18:41 +02:00
Harald Sitter
20a488b700 lockscreen: make unlocked state tracking more robust
in the no-password scenario we previously ended up unlocking even
further, causing unexpected auto-unlocks. instead stop the
authenticators machinery and do not try to unlock when already unlocked

CCBUG: 526194
2026-10-08 22:31:47 +02:00
Harald Sitter
55930290fe lockscreen: make unlocked state tracking more robust
when we deal with no password scenarios we previously entered a not very
well defined unlocked state where the user had to click a button to
actually get rid of the ui. instead encode this as a property and stop
the authenticate machinery when unlocked. notably prevents automatic
unlocks because of the start timer

CCBUG: 526194
2026-10-08 22:31:47 +02:00
Harald Sitter
e66c360142 lockscreenui: only show prompt when authenticator needs it
this restores previous behavior where the password authentication is not
showing the prompt by default.

this can be enabled by the user with the kscreenlockerrc config

```ini
[UI]
ShowPromptInRegularAuthenticator=true
```
2026-09-19 18:16:04 +02:00
Fabian Vogt
7565acdade Revert "Port lockscreen/SDDM footer to a reuseable component"
This reverts commit 1e77a2df15.

Some references to the footer were not fixed, breaking the login method:

file:///usr/share/sddm/themes/breeze/Login.qml:65: ReferenceError: footer is not defined

It removed sessionButton which is still needed and referenced, which
also broke login:

file:///usr/share/sddm/themes/breeze/Main.qml:245: ReferenceError: sessionButton is not defined
2026-09-14 08:43:51 +00:00
Fabian Vogt
5d9ee5b130 Revert "lockscreen: pass new footer to WallpaperFader"
This reverts commit c0cbc9df38.
2026-09-14 08:43:51 +00:00
Kristen McWilliam
c0cbc9df38
lockscreen: pass new footer to WallpaperFader
Given it a new id that doesn't shadow the `footer` property inherited
from base qml objects.
2026-09-04 16:45:25 -04:00
Nate Graham
dd3247de5f LockScreenUI: re-add still needed PlasmaComponents3 import
Amends 1e77a2df15

CCMAIL: kristen@kde.org
CCMAIL: sitter@kde.org
2026-08-27 21:06:21 -06:00
Kristen McWilliam
1e77a2df15 Port lockscreen/SDDM footer to a reuseable component
Had comments noting to keep the implementations in sync between the
lockscreen and sddm versions, not ideal.

Port to a reusable component in plasma-workspace, so they can both use
the same one without concern of keeping them in sync. Also will allow
plasma-login-manager to become the 3rd consumer of this component
without further duplicating code.
2026-08-26 20:53:04 -04:00
Harald Sitter
e5616c6afc lockscreen: implement authenticator switching
allows the user to select an authenticator (e.g. face or smart card) and
authenticate using that instead of the regular pam configuration
2026-08-18 13:24:13 +02:00
Ramil Nurmanov
98c5d8c217 lockscreen: Fix multiline action button alignment 2026-08-16 23:30:31 -04:00
Kristen McWilliam
568514271d
lockscreen: drop vkb wrapper, use KWinVirtualKeyboard directly
Wrapper existed to support both X11 and Wayland, since we only support
Wayland now we can use KWinVirtualKeyboard directly.
2026-08-12 14:18:44 -04:00
Christoph Grüninger
2dbff7fd0c Revert "Remove unused imports of Qt5Compat.GraphicalEffects"
This reverts commit 338bcd698a.

Pushed by mistake to branch "master".
2026-07-11 16:47:39 +02:00
Christoph Grüninger
338bcd698a Remove unused imports of Qt5Compat.GraphicalEffects 2026-07-11 16:35:33 +02:00
Samuel Plavec
304ef10545 lockscreen: use the new activityMonitor interface to detect when the cursor leaves the screen
(See the MR linked below for more explanation.)

Depends: kscreenlocker!342

~Depends: kscreenlocker!339~

BUG: 521361
2026-07-08 12:49:45 +00:00
Martin Riethmayer
4ab5ef6bfb Show message on LockScreen if SlowKeys are enabled
If a user has enbled the SlowKeys filter in Accessibility settings, show
this in the lock screen. This is similar to CapsLock being enabled, as
it might be very confusing for a user that forgot about SlowKeys.

Depends On: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6626

I've decided **not** to include the feedback from [https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3660](https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3660) . I could not continue that MR as I failed to push to that branch again (I'm new to git, it's most likely something I've done wrong in my setup, sorry!)

Reason for not including the feedback: 
There's currently three potential messages that could be shown: CapsLock Enabled, SlowKeys Enabled, and "root notification" (which I'm not quite sure what they are). Having something along the line of "CapsLock and SlowKeys are enabled" as suggested would potentially become quite complicated, if we also show more message, e.g. "Bounce Keys Enabled". This would lead to quite some possible combinations, blowing up the code and having multiple strings to translate.

I'm open to boldening parts of the string (e.g. **CapsLock** or **SlowKeys** etc.), though the root.notifications are probably not bold ?

| After | Before |
| ------ | ------ |
| ![Screenshot_20260520_092019](/uploads/1ff9287a557fa310c4f92d1946e2fa2d/Screenshot_20260520_092019.png){width=375 height=600}       | ![Screenshot_20260520_091851](/uploads/fb2329aafe52737368b63d87e505878d/Screenshot_20260520_091851.png){width=375 height=600}       |


@teams/vdg
@teams/usability
2026-05-28 07:59:14 -06:00
Tobias Fella
72640611b1 Improve failed password authentication flow
Instead of blocking password entry for a fixed time in QML (regardless of the actual timeout pam configures),
we instantly allow sending a new password attempt. If this attempt comes in while we're still in the actual pam timeout,
we queue it to be applied after the timeout ended and disable the password field while it is queued.
2026-05-27 09:25:11 +00:00
David Edmundson
f1160a8b91 lockscreen: Use existing QML import for SessionManagement
The lockscreen has a button for suspend that was written in early days
of QML where we were injectinng context properties and introspecting the
metaobject of the root object.

Since then we have a QML import for suspend and hibernate. We were using
this import already for various features.

This allows for cleanup on the kscreenlocker side.
2026-04-24 14:52:20 +01:00
Oliver Beard
a71b5db277 lockscreen: Activate window for lockscreen window showing greeter
The lockscreen window showing the greeter should be the window with focus and receiving keyboard input.

This also fixes the case where the greeter window initially featuring the cursor may not be the one that receives keyboard input.

BUG: 512028
2026-01-15 16:39:49 +00:00
Christoph Wolk
9c1becd7bb add translation contexts
This change adds translation contexts to all translatable strings in qml
files that did not have any. Occasionally, the existing translation
contexts are updated for consistency with the newly added ones.

The string themselves are unchanged, save for one instance where the
Accessible strings were somewhat awkward and were a bit streamlined, and
one set of accessible  strings in PanelConfiguration that were not
marked as translatable, but are now.

Co-authored-by: Nate Graham <nate@kde.org>
2026-01-07 10:44:24 +00:00
Christoph Wolk
e3c6922869 desktoppackage: basic linting
Some low-hanging fruit for linting:
- qualify acces where easily possible
- no custom-parsed PropertyChanges
- drop unused imports
- explicit parameters for signal handlers
- no explicit widths/heights in layouts
- ComponentBehavior: Bound in very simple cases
2025-12-09 20:38:12 +01:00
Tobias Fella
5a8f353c41 Remove all qml import version numbers 2025-12-01 15:40:46 +00:00
Marc Payne
c0d12c5219 lockscreen: prevent immediate prompting for the password
As of Qt 6.8.2, the fix for QTBUG-127122 causes a positionChanged event
to be emitted when handling QEvent::HoverEnter.

The lockscreen creates a full screen MouseArea on every connected
screen, one of which will cover the current position of the mouse
pointer. This causes QEvent::HoverEnter and then the positionChanged
event to be raised immediately. The mouse position did not change.
Ignore the spurious (first) positionChanged event, show the password UI
as usual in response to further events.

BUG: 499637
2025-07-11 11:01:52 -06:00
Yifan Zhu
305d88e050 lockscreen: only show UI on screen with mouse
Otherwise one appears on every screen, which is awkward. However, forcing it
to be on a particular screen is undesirable, since if that screen is turned off
but not unplugged, it may still be sending a signal to the OS and show up as a
valid screen to show things on.

To alleviate that concern, always show the UI on the screen with
pointer.

Test plan:
- use multiscreen setup and lock screen
- move mouse across screens, verify that only screen with pointer shows controls
- type some password without pressing enter, and repeat previous point

BUG: 409226
CCBUG: 465566
2025-03-25 16:03:38 +00:00
Thomas Duckworth
5dda024496 lockscreen: Lighter clock shadow with vertical offset; don't display when bg is blurred 2025-03-08 23:22:12 +00:00
Kai Uwe Broulik
053eebd8a9 Lock Screen: Restore option to show clock only during unlock prompt
Originally, the clock was always shown on the logout prompt.
However, this was changed, and now the clock is either always there
or never there.

This adds a third option restoring original behavior and allowing
a proper screen saver use case again (e.g. no clock when idle
but the clock when the logout prompt is shown)

BUG: 493422
2025-03-07 22:18:45 +01:00
Kai Uwe Broulik
b6e385a63a lockscreen: Add explicit mnemonics
Ensures they're consistent with the logout prompt, i.e. have
Suspend be always P and reserve S for Shut down rather than Switch user.
2024-12-29 12:48:34 +01:00
Be Ing
7a98fd6fb6 Use simple toggle to hide/show clock on lock screen
Part of https://invent.kde.org/plasma/plasma-desktop/-/issues/133.

This replaces the existing option "Clock: Keep visible when
unlocking prompt disappears" with a simple toggle that controls
whether the clock is always or never shown on the lock screen.

From the discussion when the old option was implemented,
(https://phabricator.kde.org/D24893) the use case for the old
option was for users who want an unobstructed view of the lock
screen background. This use case can still be satisfied by the new
option, and perhaps the simplicity of the new option will make it
easier to discover, as the old description in the UI was rather
awkward.

The difference with the new option is that it does not
matter whether the user is currently typing their password. With
the old option, the clock would still be shown when the user moved
the mouse or started typing, which didn't give users a choice to
not see a clock at all.

FEATURE: 472587
FIXED-IN: 6.2.0
2024-08-09 17:22:09 +00:00
Noah Davis
a66329e8fc lockscreen: update for ActionButton modernization 2024-07-09 22:25:02 +00:00
Xaver Hugl
4654e3474c lockscreen: fix the check for authentication prompts
Storing the state for this in qml is problematic, because it gets reset on screen changes

BUG: 485520
2024-07-02 22:05:53 +02:00
Albert Astals Cid
78aef886fc Use the proper translation domain
plasma_lookandfeel_org.kde.lookandfeel doesn't exist here
2024-06-21 22:40:01 +00:00
Marco Martin
5a782c7be3 Move lockscreen into shell package
This is the lockscreen copied and unmodified from the
look and feel package, move it here in order to remove
potentially dangerous code in lnf themes which should become just configuration repos
2024-04-02 10:02:22 +00:00