Commit graph

1207 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
0296b746ce desktoppackage: Use Kirigami.AboutItem for the widget About page
Instead of keeping a copy of Kirigami's About page adapted to
KPluginMetaData, pass the widget's metadata to Kirigami.AboutItem.
This also brings Kirigami's reflowed license text, so the license no
longer shows the hard line breaks of the license file.

BUG: 486305
2026-10-28 11:56:46 +01:00
Niccolò Venerandi
0c45326f57 activitymanager: Crop activity wallpapers instead of stretching them
We use PreserveAspectCrop for the 16:9 card preview of the wallpaper
instead of stretching them. We also request a square thumbnail so that
wallpapers narrower than 16:9 come at least as wide as the card and do
no need to be upscaled.

BUG: 478784
2026-10-23 11:52:39 +02: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
Marco Martin
9eff3057ef Shell package: correct size and position for the activity switcher
since the activity switcher/widget explorer are dock windows,
positioning
is completely managed by layershell, and we can't put it on top
of another panel, so if there are horizontal panels, make the
window less tall to accomodate that.

BUG:527158
2026-10-21 15:32:36 +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
Devin Lin
e9eb3c9da8 panel: Factor in vkbd state for floating panel state
BUG: 515103

Currently when the vkbd opens, the panel floats because KWin resizes the
window away from the panel (even for fullscreen windows). Factor in the
virtual keyboard state into whether the panel should be floating.
2026-10-06 22:56:52 -04:00
l10n daemon script
ac251b9878 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-10-05 01:51:33 +00:00
l10n daemon script
be905c9e6f SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-09-27 01:44:33 +00:00
l10n daemon script
73bc5b4527 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-09-23 02:00:31 +00:00
Christoph Wolk
df21c90259 desktopppackage/configuration: fix GridViewKCM detection
The Widget configuration dialog is supposed to only show a top and
bottom separator if the contents are scrollable, but not if it's a
List/Gridview-based kcm (as those handle scrolling internally). The
GridViewKCM detection is broken though: it tests whether the page's
flickable is an instance of GridViewKCM, but it isn't - the page itself
is the GridViewKCM, not it's flickable, so it will treat it like a
regular page and draw the separators if the GridView is flickable.

Instead, test whether the current page is a GridViewKCM. This only
affects the Sticky Note config dialog, as it's the only GridView-
based one.
2026-09-20 15:01:58 +00: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
Nate Graham
3757f38ccd activitymanager: improve button accessibility
- Make sure all buttons have text set
- Make sure all buttons have tooltips that appear on focus
- Disambiguate the two "Configure" buttons so that screen users can tell
  them apart, especially when using a screen reader

BUG: 519306
FIXED-IN: 6.8.0
2026-08-19 09:14:08 -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
l10n daemon script
0bb5d72061 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-08-12 01:45:36 +00:00
Ramil Nurmanov
18cd295a21 kcms/ksmserver: Match logout preview active screen behavior
Now the logout screen's interactive controls are displayed only on the
active screen and follow the pointer when it moves between screens,
matching the behavior of the lock screen.

ENHANCEMENT: 431382
FIXED-IN: 6.8.0
2026-08-11 16:15:29 -04:00
Zhora Zmeykin
766eafc357 desktop: Do not overwrite wallpaper-provided accent color
Amends 06675e18ef.

When a wallpaper provides an explicit accent color, Desktop.qml assigns
it to the desktop. However, the following independent if statement
immediately replaces it with the dominant color calculated from the
wallpaper image. 

BUG: 514656
2026-08-10 14:50:23 +00:00
l10n daemon script
f4460d43a4 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-07-23 01:40:11 +00:00
Marco Martin
ac21bc6a1e PanelConfiguration: adapt to the new api panel.moveToScreen()
In https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6792
a new api was introduced for actually moving a panel between two
screens,
which is the moveToScren Q_INVOKABLE,
which also syncs the containment->screen() id besides moving the view to
a different screen

needs https://invent.kde.org/plasma/libplasma/-/merge_requests/1541 and https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6792
2026-07-16 12:11:32 +02:00
Nicolas Fella
4cc678d9f4 desktoppackage/logout: Don't force root item size
The backend sizes the root object to the screen already
2026-07-14 14:00:12 +02: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
David Edmundson
45e43be515 desktoppackage: Import logout QML files into desktop package
Also import the test
2026-07-01 16:08:49 +02:00
Marco Martin
352054f723 AppletConfiguration.qml: immediately close the dialog on Ok
Immediately close the configuration on Ok and then actually apply the
configuration, which works fine as the dialog is not immediately
deleted.

In combination with
https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6766
It makes possible to not reopen the configuration dialog after ok
is clicked to accept a containment layout change

BUG:389109
2026-06-18 11:13:49 +02:00
David Edmundson
ac1ebb8419 desktoppackage: Drop X11 usages 2026-06-15 14:45:59 +02:00
Nicolas Fella
75f1ec08fb Port to new import for Panel enum 2026-06-12 08:35:37 +02:00
Nicolas Fella
fc619e9544 PanelConfiguration: Drop unsupported configuration handling
This was only used on X11
2026-06-11 11:30:05 +02:00
Akseli Lahtinen
9f40c9069b ActivityManager: Remove version numbering, set dropEnabled return true
Remove version numbering like from elsewhere to avoid any
issues with matching the surrounding system.

ActivityItem was unclickable due to the dropEnabled setting
the visibility of dropArea false, and that caused the
onClicked signal never fire as it did not listen for clicks.
Set it to true instead.
2026-06-09 15:41:24 +03:00
Nicolas Fella
e75ad68849 Fix unqualified property lookup 2026-06-09 12:17:05 +02:00
Nicolas Fella
e6735a65eb Use specific QML property type 2026-06-09 12:17:05 +02: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
Akseli Lahtinen
2fd41a0729
CompactApplet: Enable mainItem based on dialog visibility
If there are multiple windows under a parent window as
their transientparent, and if there is one visible
child window in the focus, all the windows will
report being active.
See QTBUG-146992 for more.

When dialog is not visible, set the mainItem disabled,
so that we do not send any unnecessary keyboard shortcut
signals to anything it holds, as they still are
active even if they're not visible.

BUG: 515280
2026-05-27 17:04:08 +03: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
Tobias Fella
cd7fcbb502 Fix top padding in widgetexplorer
Before:

![image](/uploads/4cad121af358d3f071713bc1d5cb9ef5/image.png){width=789 height=153}

After: 
![image](/uploads/9ea2fe9897c0bcf95ca8dfa78ae52492/image.png){width=773 height=144}
2026-04-28 14:30:50 +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
Antti Savolainen
7065107d2e Move margins separator from widget menu to panel settings
<!-- Thank you for submitting a merge request to make KDE Software better! Use the information from the commit message(s) to fill in the template below.

(For future reference, follow the guidelines at https://cbea.ms/git-commit/#seven-rules)
-->

### Original commit message(s)

* Adjust CMakeLists

* Move margins separator to plasma-workspace

* Add margins separator menu item

### Reason for the change

Similar to [panel spacer](93305c464e) the margins separator should not be placed on the desktop because it does nothing there

Sibling merge request: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6494

<!--
If this merge request change is resolving a problem, describe the problem and explain why the approach taken here is the correct way to resolve it.

If the merge request adds a new feature or UI change, explain the benefits of the change.
-->

### Test plan

<!--
Extend any related autotests with new test cases to validate your changes. If none exist, consider adding one if you have the technical skills to do so.

Otherwise, at least describe how you tested the change, and how someone reviewing this merge request can test it themselves. No need to mention obvious things like "Apply the changes".
-->

### Screenshots or screen recordings

![image](/uploads/a615acdcaa9413d0a4b92c85b2dfadf7/image.png){width=555 height=561}

<!--
If this merge request introduces a visual change, please add before-and-after screenshots in the following format:

| Before | After |
| ------ | ----- |
| [drag "before" screenshot here] | [drag "after" screenshot here] |
-->

### Bugs fixed

<!--
If the changes in this merge request fix any Bugzilla tickets, add the following keyword for each one:

BUG: [number of the bug report]
-->
2026-04-16 08:08:29 -06:00
Hynek Schlindenbuch
b5bd3f9846 Add support for per-output virtual desktops
See [kwin MR](https://invent.kde.org/plasma/kwin/-/merge_requests/8602) for more details.
2026-04-14 08:12:12 +00:00
Nate Graham
0883984d23 Hyphenate "newly-installed" when used as an adjective
Multi-word adjectives get hyphenated in English. Not nouns, only
adjectives.
2026-04-09 10:34:08 +02:00
Nate Graham
e9fd8f9052 Port badges to Kirigami.Badge
Let's use the common implementation now.
2026-04-08 01:42:47 -06:00
Christoph Wolk
4a59c15020 desktoppackage/configuration: allow modifier-only panel focus
The panel focusing shortcut requires modifier+key shortcuts, but
activating widgets can be done modifier-only. This feels inconsistent,
and having a modifier-only shortcut to focus the panel may be convenient
for some users.

Instead, allow modifier-only shortcuts for the panel focus shortcut as
well.
2026-03-17 17:34:26 +00:00