Bug 454335 - 3rd party window decorations settings not opening
Summary: 3rd party window decorations settings not opening
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_kwindecoration (other bugs)
Version First Reported In: 5.24.90
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Alexander Lohnau
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2022-05-24 14:01 UTC by Nico
Modified: 2022-08-11 10:49 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Screen recording showing the behavior (708.04 KB, video/mp4)
2022-05-24 14:01 UTC, Nico
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nico 2022-05-24 14:01:13 UTC
Created attachment 149169 [details]
Screen recording showing the behavior

SUMMARY
3rd party window decorations settings not opening


STEPS TO REPRODUCE
1. Install a third party window decoration (e.g. Sierra Breeze or Lightly)
2. Try to click on the pencil icon to configure it

OBSERVED RESULT
Settings do not open, no console output

EXPECTED RESULT
Settings should open

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Arch Linux
KDE Plasma Version: 5.24.90
KDE Frameworks Version: 5.94.0
Qt Version: 5.15.4

ADDITIONAL INFORMATION
It only happens with 3rd party decorations that provide a custom configuration screen. I think it's only the ones written in C++.
Comment 1 Nate Graham 2022-05-24 16:43:24 UTC
Cannot reproduce. The config window for the Lightly theme opens just fine for me on git master.

Maybe it got fixed already? Alexander, does this ring any bells?
Comment 2 Alexander Lohnau 2022-05-24 17:39:05 UTC
I can not reproduce too.

From looking at the code, we always go through `KDecoration2::Preview::PreviewBridge::configure`. Here we create a KCM from the KPluginFactory we load as a plugin. Breeze has it's own plugin with the id "org.kde.breeze", other plugins use the org.kde.kwin.aurorae factory which dynamically loads their QML config assets.

Maybe the plugin loading fails or the plugin does not exist.

Please run `qtpaths --plugin-dir ` and add "org.kde.kdecoration2" to the returned path. The run an "ls" in the full path. Hopefully a kwin5_aurorae.so plugin shows up :)

Please also check the logs, by running "kcmshell5 kcm_kwindecoration" in the terminal.
Comment 3 Nico 2022-05-24 19:43:19 UTC
ls `qtpaths --plugin-dir`/org.kde.kdecoration2

Result:
breezedecoration.so  hellodecoration.so  kwin5_aurorae.so  lightlydecoration.so  sierrabreeze.so


kcmshell5 kcm_kwindecoration

Opens the KCM in a seperate window and it still doesn't work.

Output:
```
kf.kirigami: Units.devicePixelRatio is deprecated (since 5.86): This returns 1 when using Qt HiDPI scaling.
file:///usr/lib/qt/qml/org/kde/kirigami.2/PlaceholderMessage.qml:235:5: QML Heading: Binding loop detected for property "verticalAlignment"
kf.coreaddons: KPluginFactory could not load the plugin "/usr/lib/qt/plugins/org.kde.kdecoration2/sierrabreeze.so"
kf.coreaddons: KPluginFactory could not load the plugin "/usr/lib/qt/plugins/org.kde.kdecoration2/breezedecoration.so"
kf.coreaddons: KPluginFactory could not load the plugin "/usr/lib/qt/plugins/org.kde.kdecoration2/hellodecoration.so"
kf.coreaddons: KPluginFactory could not load the plugin "/usr/lib/qt/plugins/org.kde.kdecoration2/lightlydecoration.so"
Module 'org.kde.kwin.decoration' does not contain a module identifier directive - it cannot be protected from external registrations.
```
Comment 4 Alexander Lohnau 2022-05-25 06:41:43 UTC
From where/how have you installed those window decorations?

>kf.coreaddons: KPluginFactory could not load the plugin "/usr/lib/qt/plugins/org.kde.kdecoration2/breezedecoration.so"

This really makes me wonder, because it is a first party plugin. Do you have it up to date or at the same version as KWin?
Comment 5 Nico 2022-05-25 16:20:44 UTC
I installed them all from the AUR. I just tried to recompile them (I'm not sure if I did before) but that didn't help.
Breeze is at version 5.24.90-1 from the kde-unstable repo.
Comment 6 Alexander Lohnau 2022-05-27 18:46:44 UTC
What is the version of KWin you use?
Comment 7 Nico 2022-05-27 18:47:46 UTC
pacman -Qi kwin

```
Name            : kwin
Version         : 5.24.90-2
Description     : An easy to use, but flexible, composited Window Manager
Architecture    : x86_64
URL             : https://kde.org/plasma-desktop/
Licenses        : LGPL
Groups          : plasma
Provides        : None
Depends On      : kscreenlocker  xcb-util-cursor  plasma-framework  kcmutils  breeze  pipewire-session-manager  libqaccessibilityclient  lcms2
                  libxcvt
Optional Deps   : maliit-keyboard: virtual keyboard for kwin-wayland
Required By     : hello-kde-git  kwin-effects-sliding-notifications  kwin-effects-yet-another-magic-lamp  kwin-scripts-forceblur  plasma-workspace
                  sierrabreeze-kwin-decoration-git
Optional For    : None
Conflicts With  : None
Replaces        : kwayland-server
Installed Size  : 24.47 MiB
Packager        : Antonio Rojas <arojas@archlinux.org>
Build Date      : Thu 19 May 2022 08:33:44 PM CEST
Install Date    : Thu 19 May 2022 10:24:37 PM CEST
Install Reason  : Explicitly installed
Install Script  : Yes
Validated By    : Signature
```
Comment 8 Alexander Lohnau 2022-05-27 18:48:42 UTC
>From where/how have you installed those window decorations?(In reply to Alexander Lohnau from comment #4)
> From where/how have you installed those window decorations?

Please provide this info and the version of these decorations you have installed. That might help reproducing the issue.
Comment 9 Nico 2022-05-27 18:50:25 UTC
pacman -Qi lightly-git

```
Name            : lightly-git
Version         : r2172.121a61e5-1
Description     : A modern style for qt applications
Architecture    : x86_64
URL             : https://github.com/Luwx/Lightly
Licenses        : GPL2
Groups          : None
Provides        : lightly-qt
Depends On      : frameworkintegration  kdecoration  breeze-icons  kwayland  hicolor-icon-theme
Optional Deps   : None
Required By     : None
Optional For    : None
Conflicts With  : lightly-qt
Replaces        : None
Installed Size  : 1078.06 KiB
Packager        : Unknown Packager
Build Date      : Wed 25 May 2022 06:19:26 PM CEST
Install Date    : Wed 25 May 2022 06:19:32 PM CEST
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : None
```

pacman -Qi sierrabreeze-kwin-decoration-git

```
Name            : sierrabreeze-kwin-decoration-git
Version         : r70.c2776ee-1
Description     : OSX-like window decoration for KDE Plasma written in C++ (git version)
Architecture    : x86_64
URL             : https://github.com/kay0u/SierraBreeze
Licenses        : GPL2
Groups          : None
Provides        : None
Depends On      : kwin
Optional Deps   : breezemite-yakuake-git: Matching theme for Yakuake
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 302.38 KiB
Packager        : Unknown Packager
Build Date      : Thu 19 May 2022 10:34:50 PM CEST
Install Date    : Thu 19 May 2022 10:34:56 PM CEST
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : None
```
Comment 10 Nico 2022-05-27 18:51:00 UTC
I'm gonna try to reproduce this in a clean Arch or Neon VM and provide the steps I used
Comment 11 Alexander Lohnau 2022-05-27 19:14:43 UTC
Thanks for the additional info. I think it might be due to plugin loading API which got deprecated a while ago in KWin and has been removed now.
Comment 12 Alexander Lohnau 2022-06-06 09:40:43 UTC
I have created Pull Requests in the two affected repositories, though there was no response from the maintainers yet.
Comment 13 Nico 2022-06-06 19:51:24 UTC
Thank you for your efforts! I have applied the patch for the `lightly-git` AUR package. For the SierraBreeze one, I asked the maintainer of the AUR package if they could apply it too.
Comment 14 Alexander Lohnau 2022-08-11 10:49:10 UTC
Those two PRs have been merged.