Plasma Desktop merge requestshttps://invent.kde.org/plasma/plasma-desktop/-/merge_requests2024-03-27T10:10:19Zhttps://invent.kde.org/plasma/plasma-desktop/-/merge_requests/2152kcms/mouse: Sync values when layout becomes enabled2024-03-27T10:10:19ZDavid Redondokcms/mouse: Sync values when layout becomes enabledAll the loading functions bail out when the layout is not enabled.
However the order of events can be that the loading function is
invoked by the backend before the page is enabled by the
ColumnView.All the loading functions bail out when the layout is not enabled.
However the order of events can be that the loading function is
invoked by the backend before the page is enabled by the
ColumnView.https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/2084kicker: When filtering, execute the first result when accepting the text field2024-03-08T23:47:42ZAleix Pol Gonzalezkicker: When filtering, execute the first result when accepting the text fieldIt's weird that we can't execute what we search.
Changed from TextEdit to TextInput to have the accepted signal but also
so it doesn't do multiline, which we don't need.It's weird that we can't execute what we search.
Changed from TextEdit to TextInput to have the accepted signal but also
so it doesn't do multiline, which we don't need.https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/2082kcms/mouse: Make QML more declarative2024-03-27T14:58:21ZJakob Petsovitskcms/mouse: Make QML more declarativeA lot of that imperative logic can be replaced with bindings,
which simplifies the code quite a bit. The "Reset" button is now
also properly disabled once settings are reverted to the last
saved state.
The C++ changes primarily ensure t...A lot of that imperative logic can be replaced with bindings,
which simplifies the code quite a bit. The "Reset" button is now
also properly disabled once settings are reverted to the last
saved state.
The C++ changes primarily ensure that change notification signals
are emitted when the value changes. On the QML side, the "deviceless"
variant is not needed anymore and the regular main.qml covers both
Wayland as well as "deviceless" X11 with visibility conditions for
form controls.
---
Includes MR !2067 which should be reviewed first so GitLab stops showing it in the diff. Part of the larger effort outlined in #117.
My favorite part:
```
git show --stat
(...)
12 files changed, 202 insertions(+), 513 deletions(-)
```6.1https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/2053foldermodel: Export urls to the Desktop Portal on drag and copy2024-03-08T21:33:41ZKarol Kosekfoldermodel: Export urls to the Desktop Portal on drag and copyThis change will make dragged or copied files from the desktop be accessible for sandboxed apps.
(I made a sample project for testing that case, it might helpful, idk :^) https://invent.kde.org/krkk/drop-test)This change will make dragged or copied files from the desktop be accessible for sandboxed apps.
(I made a sample project for testing that case, it might helpful, idk :^) https://invent.kde.org/krkk/drop-test)6https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1923Draft: Fix: per-layout hotkey changes in window policy2023-12-15T15:19:39ZMihail MilevDraft: Fix: per-layout hotkey changes in window policyBUG: 467992
As stated in the bug report, if we have configured spare layouts and
we've chosen per-window layout policy, the hotkeys for changing to
individual layouts get mixed up when switching between windows.
I modified the code, so...BUG: 467992
As stated in the bug report, if we have configured spare layouts and
we've chosen per-window layout policy, the hotkeys for changing to
individual layouts get mixed up when switching between windows.
I modified the code, so that hotkeys don't get modified when a spare
layout is used, but their target indexes stay the same. This involved
also changing the behavior of getLayout(), because the applet in the
dock displayed the wrong information. Accordingly, also getLayoutsList()
was modified.
After these changes, I saw an opportunity to make the LRU functionality
work more streamlined, so changed also that.https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1831Panel config dialog: resize with long text2023-11-20T19:56:27ZBharadwaj RajuPanel config dialog: resize with long textWe switch to using a GridLayout instead of multiple Row/ColumnLayouts, with the new `uniformCellWidths` option (since Qt 6.6). Also, Comboboxes now have an implicitContentWidth of their widest option.
For English, there should be no vis...We switch to using a GridLayout instead of multiple Row/ColumnLayouts, with the new `uniformCellWidths` option (since Qt 6.6). Also, Comboboxes now have an implicitContentWidth of their widest option.
For English, there should be no visual differences (for now). However, this greatly improves the appearance in cases where languages have longer text, or where comboboxes have multiple options whose text is wider than the minimum width (eg with !1813).
cc @teams/vdg
Replaces !18286https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1546Fix Meta+A order issues for Activity switching2024-03-16T18:03:30ZJakob PetsovitsFix Meta+A order issues for Activity switchingBecause the activity switcher shows up only after a timed delay,
the corresponding `SortedActivitiesModel::setInhibitUpdates(true)`
happened too late to freeze the current order of activities
at the time of keypress. This messed up both ...Because the activity switcher shows up only after a timed delay,
the corresponding `SortedActivitiesModel::setInhibitUpdates(true)`
happened too late to freeze the current order of activities
at the time of keypress. This messed up both the display and
effective switching order of activities in an unintuitive way.
This commit introduces a call to `setInhibitUpdates(true)` at the
beginning of `SwitcherBackend::keybdSwitchedToAnotherActivity()`,
prior to spawning the sequence of signals and slots that will
eventually determine whether the activity switcher should be shown.
`SwitcherBackend::setShouldShowSwitcher()` in turn is modified to
call `setInhibitUpdates()` indiscriminately, not just when its
boolean value is changed. With a simplification of modifier checks,
we make sure that `SwitcherBackend::showActivitySwitcherIfNeeded()`
will always call `setShouldShowSwitcher()` to ensure updates are
allowed again after determining whether to show it.
As a related fix, `setShouldShowSwitcher()` will now only delete
the Wayland-specific modifier key input window if we decided not
to show the activity switcher. If it remains shown, we still want
the input window to stick around so it can continue to query
whether e.g. the Meta key is still pressed.
BUG: [419499](https://bugs.kde.org/show_bug.cgi?id=419499#c11)6.1https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1456RecentFiles kcm: avoid adding an unused config to the KCMModule2023-04-08T15:36:11ZMéven CarRecentFiles kcm: avoid adding an unused config to the KCMModuleBUG: 466072
`virtualDesktopSwitchEnabled` is unused in this KCM and resourceScoringEnabled is manually handled.
Adding multiple config to KCMModule with the same widget is not really supported.
Can be cherry-picked to masterBUG: 466072
`virtualDesktopSwitchEnabled` is unused in this KCM and resourceScoringEnabled is manually handled.
Adding multiple config to KCMModule with the same widget is not really supported.
Can be cherry-picked to masterhttps://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1454solid-automounter: check partition attachment time matches drive2023-11-08T18:54:23ZDavid Edmundsonsolid-automounter: check partition attachment time matches driveCurrently unmounting certain SD cards can trigger an immediate remount
when using "automount on attach" setting.
SD card readers have the "MediaRemovable" flag set in UDisks:
https://github.com/storaged-project/udisks/blob/2.9.x-branch/...Currently unmounting certain SD cards can trigger an immediate remount
when using "automount on attach" setting.
SD card readers have the "MediaRemovable" flag set in UDisks:
https://github.com/storaged-project/udisks/blob/2.9.x-branch/src/udiskslinuxdrive.c#L368
This, according to the UDisks documentation, seems to only mean that
"the media can be removed from the drive".
However, Solid uses that information to decide whether to _eject_ the
volume when the user tries to "Safely remove" the volume from the
desktop. The "Ejectable" flag from UDisks was previously used for this
purpose but it was discarded because it was considered broken
(6d260195cf75604d835235d2a1b02166ee8b514a)
The UDisks Eject command runs /usr/bin/eject under the hood, but this
won't actually eject the card from the reader. This causes udev to
trigger remove and add events for the partitions.
Because of these remove+add events, if "Automount all known devices on
attach" is set under the removable devices settings and you try to
safely remove an SD card then the volume is immediately re-mounted
again.
Solution is lifted from logic in Gnome which has a fix for a different
use case - handling repartitioning, which sounds like logic we would
want too.
BUG: 467751
Testing done:
- set automount all to true
- inserted SD card
- unmounted all partitions with UI
- checked via `mount`
----
Cherry-picking is potentially sane, but it would require ifdef guards on the newly exposed solid line.
As an aside I wish all bug reports were that good. It had a complete explanation and basically a link to the fix.https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1397Use floating svg for the min size of the floating panel2023-04-13T17:10:13ZNiccolò VenerandiUse floating svg for the min size of the floating panelBUG:466098
Requires https://invent.kde.org/frameworks/plasma-framework/-/merge_requests/736; with that MR, the panel will now use 2*corner radius as a min size for the panel when floating, and 1*corner radius when it's not, as -probably...BUG:466098
Requires https://invent.kde.org/frameworks/plasma-framework/-/merge_requests/736; with that MR, the panel will now use 2*corner radius as a min size for the panel when floating, and 1*corner radius when it's not, as -probably- expected.5.27Niccolò VenerandiNiccolò Venerandihttps://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1141UX Improvements to activity switcher2023-10-21T22:12:03ZEric Edlundericedlund2017@gmail.comUX Improvements to activity switcher@teams/usability
Provide better feedback after switching activities with Meta-Tab by showing the switcher for 1 second after the Meta key is released. This will help confused users who accidently switched activities.
BUG: 349004
I also...@teams/usability
Provide better feedback after switching activities with Meta-Tab by showing the switcher for 1 second after the Meta key is released. This will help confused users who accidently switched activities.
BUG: 349004
I also did some reorganizing inside `SwitcherBackend` and added comments.
Also, I'm unable to get "drop mode" to work on this MR or on master so I can't test that.https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1125Draft: containments/desktop: Store Folder View configuration paths relative t...2024-02-02T22:39:51ZAlexander WilmsDraft: containments/desktop: Store Folder View configuration paths relative to desktopThe Folder View widget used to show .desktop files' filenames instead of desktop entries' Name properties when using a user-specified path.
**How to test:**
1. Create a folder below `xdg-user-dir DESKTOP` and drag and drop an entry fro...The Folder View widget used to show .desktop files' filenames instead of desktop entries' Name properties when using a user-specified path.
**How to test:**
1. Create a folder below `xdg-user-dir DESKTOP` and drag and drop an entry from Kickoff to this folder
2. In the Desktop Settings, make sure `Layout` is set to `Desktop`
4. Open the Folder View widget's settings
5. Choose the `Custom path` option and select the folder created in step 1
6. Before, the URI would use the file:// protocol, which would result in the file names of the desktop files being shown in the Folder View widget
7. Now it automatically converts it to a desktop:// URI, which results in the application names being shown in the `Folder View` widget
| before | after |
| ------ | ------ |
| ![grafik](/uploads/70eb4ec9a7b3af52eb9ae22084590a05/grafik.png) | ![grafik](/uploads/3c95ea6cca8037008b4655c5f07c96a1/grafik.png)
| ![grafik](/uploads/531f1ac9385e1374a93050433445f9a1/grafik.png) |![grafik](/uploads/516decfa21e10a5636db78a3722fed24/grafik.png) |
This MR converts all `file://` paths below `xdg-user-dir DESKTOP` to relative ones using the `desktop://` scheme.
[BUG: 458400](https://bugs.kde.org/show_bug.cgi?id=458400)
@hein @ngraham5.27https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/951kcms/keyboard: Initialize keyboard layout after attaching any input device2024-01-14T21:48:19ZSlava Aseevkcms/keyboard: Initialize keyboard layout after attaching any input deviceLooks like Xorg server resets xkb mappings after attaching any
input device, not only the keyboard or mouse (for example, after
attaching a web camera device). So attaching an input device that is not keyboard/mouse may cause shortcuts t...Looks like Xorg server resets xkb mappings after attaching any
input device, not only the keyboard or mouse (for example, after
attaching a web camera device). So attaching an input device that is not keyboard/mouse may cause shortcuts to stop working.
How to reproduce:
1. View current mappings via `setxkbmap -print -verbose 10`
2. Attach (or re-attach) webcam:
- this can be used for integrated web cameras on laptops:
```bash
# Enables webcam
echo "1" > /sys/bus/usb/devices/1-7/bConfigurationValue
# Disables webcam
echo "0" > /sys/bus/usb/devices/1-7/bConfigurationValue
```
- or this to simply re-add `uvcvideo` module:
```bash
modprobe -r uvcvideo
modprobe uvcvideo
```
3. View mappings again via `setxkbmap -print -verbose 10`: it will look reset. Hotkeys may stop working after switching the active window.
This is not a final change, perhaps `DEVICE_KEYBOARD` should be removed, because it actually doing the same as `DEVICE_ANY`.
EDIT @butirsky:\
might fix BUG: 4707375.26https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/491Draft: fix keyboard layout OSD on X2023-01-31T12:32:46ZAndrey ButirskyDraft: fix keyboard layout OSD on XOSD for alternative shortcut has been removed in 9021b3cb,
because that approach don't work well with new layout applet.
New approach intends to make OSD behavior almost identical on X11/
Wayland - OSD should only pop up on keyboard sho...OSD for alternative shortcut has been removed in 9021b3cb,
because that approach don't work well with new layout applet.
New approach intends to make OSD behavior almost identical on X11/
Wayland - OSD should only pop up on keyboard shortcut and not on the
applet click/mouse wheeling.
Also, it implements OSD for the Main shortcut.
BUG: 408928
_This is a prove of concept version, for proper shortcuts handling we would need to grab only keys we are interested in (that is - producing `XK_ISO_Next_Group` keysym), as KGlobalAccel does:
https://code.woboq.org/qt5/kf5/kglobalaccel/src/runtime/plugins/xcb/kglobalaccel_x11.cpp.html#125_5.27Andrey ButirskyAndrey Butirsky