Bug 381541

Summary: KWin/Wayland integration broken with Qt >= 5.8
Product: [Applications] yakuake Reporter: Martin Flöser <mgraesslin>
Component: generalAssignee: Eike Hein <hein>
Status: RESOLVED FIXED    
Severity: normal CC: nicolas.fella, notuxius, oded
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Martin Flöser 2017-06-22 18:43:24 UTC
With Qt 5.8 the Wayland integration for the Yakuake window does not work any more. It looks like a normal window to KWin.

Most likely needs adjustments similar to the other areas.
Comment 1 Alexander Mentyu 2018-07-10 18:49:43 UTC
How to differentiate if there is or there is no Wayland integration? Yakuake window is shown in Alt+Tab both in Wayland and in X 

Plasma: 5.13.2
Apps: 18.04.2
Frameworks: 5.47.0
Qt: 5.11.1
Kernel: 4.18.0-1-MANJARO
OS: Netrunner Rolling
Video: Intel 4400
Driver: xf86-video-intel 1:2.99.917+831+ge7bfc906-1
Mesa 3D: 18.1.3
Screen: 1600x900
Xorg: 1.20
Wayland: 1.15.0-1
Wayland Protocols: 1.14-1
Comment 2 Oded Arbel 2021-09-18 14:42:59 UTC
Still an issue: Yakuake 21.11.70; Plasma 5.23.80; Frameworks 5.86.0; Qt 5.15.3
Comment 3 Oded Arbel 2022-10-03 17:59:33 UTC
This issue should be solved by merge request 81 (https://invent.kde.org/utilities/yakuake/-/merge_requests/81) when it is accepted.
Comment 4 Nicolas Fella 2022-12-20 21:59:15 UTC
Git commit f0a2c72a6c52a16a0f74382e3c5d3218daa4363d by Nicolas Fella, on behalf of Oded Arbel.
Committed on 20/12/2022 at 21:59.
Pushed by nicolasfella into branch 'master'.

Reduce use of KWindowSystem on Wayland
Related: bug 402634

This patchset was originally part of MR !81.

Problem description: Currently most of KWindowSystem standard API does not work on Wayland, on purpose - the code for Wayland support was actually removed from the KWindowSystem framework into a standalone [plasma/kwayland-integration](https://invent.kde.org/plasma/kwayland-integration) where [src/windowsystem/windowsystem.cpp](https://invent.kde.org/plasma/kwayland-integration/-/blob/master/src/windowsystem/windowsystem.cpp) has almost all API implementations empty and just issue warnings in the form of "This plugin does not support...".

Additionally, in [bug report 442662: KWindowSystem on Wayland is missing many signals, some of which are needed by Yakuake](https://bugs.kde.org/show_bug.cgi?id=442662#c1) David Edmundson says "Wayland is different, trying to shoehorn that into the exact same abstractions simply won't work. Lets split this up as individual bugs on yakuake".

So this is some of that work of changing Yakuake Wayland behavior to not rely on non-working (or mostly non-working) KWindowSystem and replace with operations using Wayland APIs directly, or Qt API that is known to work with Wayland.

This patch set is not complete in that:
a. There are some operations that are as of yet not possible under Wayland (for example - set visible on all desktops), so removing those code calls under Wayland will hide warnings that we may want to keep to remind us there is missing behavior.
b. There are still some wayland-integration warnings that are shown when running Yakuake on kwin_wayland. I did not work on these because changes do not affect my use case (also see (a) above). If there is need, I can review more APIs and do more KWindowSystem reduction.

M  +17   -7    app/mainwindow.cpp

https://invent.kde.org/utilities/yakuake/commit/f0a2c72a6c52a16a0f74382e3c5d3218daa4363d
Comment 5 Nicolas Fella 2022-12-20 22:08:40 UTC
Commit message is slightly misleading because I accidentally squash-merged.

skip taskbar/switcher was set in https://invent.kde.org/utilities/yakuake/-/commit/d4a83a080a39c0dfb39884a9f048449bc6711bd7, but I can only speculate what the original issues was about
Comment 6 Oded Arbel 2022-12-20 22:13:33 UTC
(In reply to Nicolas Fella from comment #5)
> skip taskbar/switcher was set in
> https://invent.kde.org/utilities/yakuake/-/commit/
> d4a83a080a39c0dfb39884a9f048449bc6711bd7, but I can only speculate what the
> original issues was about

The main issue was that under Wayland you could ALT-TAB to the yakuake window, which you shouldn't have been able to - which is fixed by the skip settings. The secondary issues are the missing support for "always on top" and "on all desktops" - which is still not possible with kwin_wayland at this point, and I use a kwin rule to workaround this.