SUMMARY Since 20.08.0, Yakuake jumps between my left and middle (primary) displays every time it shows up or is resized. Rolled Yakuake back to 20.04.3 while keeping everything else still on 20.08.0 as a temporary solution. STEPS TO REPRODUCE 1. Open Yakuake 2. Resize or hide & summon Yakuake OBSERVED RESULT Yakuake jumps between my left and middle displays. If I move my cursor to the display on the right, Yakuake then stays in my middle display. EXPECTED RESULT Yakuake stays in the same display unless mouse cursor moves to another. SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.19.4 KDE Frameworks Version: 5.73.0 Qt Version: 5.15.0 Kernel Version: 5.8.1-zen1-1-zen OS Type: 64-bit Processors: 8 × Intel® Core™ i7-6820HK CPU @ 2.70GHz Memory: 31.3 GiB of RAM Graphics Processor: GeForce GTX 980M/PCIe/SSE2 ADDITIONAL INFORMATION Using nvidia proprietary driver 450.57, multi-head, X11, two 1080p displays scaled by 2.0 using xrandr, KDE global scale 2.0.
Can you provide your window settings and also try to reset them. This might be related to the display scaling which I cant test right now. If possible could you test it without the scaling?
It seems that KDE global scale caused the issue. First of all, my tests were run after patching Yakuake with the file from Nicolas at https://bugs.kde.org/show_bug.cgi?id=275433 (without this patch the window size is never correct on multi-head w/ different resolutions in the first place). KScreen D-Bus service is also disabled. 1. KDE global scale disabled, XRandR scale disabled or 2.0 Works normally. 2. KDE global scale 2.0, XRandR scale disabled Yakuake stays on my left display after start, occupying the full horizontal space of it. If I resize Yakuake horizontally, it immediately jumps to the middle of my left and middle display (so it's half on my left display and half on my middle one).
Just to be sure, does that also happen without the patch applied? To rule out the possibility that this affects it.
Might be related to bug 383555.
Yes I can confirm this also happens without the patch.
Alright, thanks for confirming!
I can still reproduce this issue using Yakuake 20.08.2, Framework 5.75.0 and Desktop 5.20.0.
Still happens using 20.12.0.
Created attachment 134633 [details] yakuake aligned left on the monitor at right
I want to add some info about my setup, which I think experiences the same bug. Laptop eDP connected primary 1920x1080+0+0 @60.01 same as preferred External HDMI-A-0 connected 1920x1080+1920+0 @60.00 preferred is 1680x1050 @59.95 On Primary Yakuake behaves as configured with single monitor, centered. On external it snaps/aligns at left monitor edge. While external is focused and yakuake open, I open settings and change screen alignment to left or right. After saving, yakuake uses the saved setting but assumes there is one monitor the size of X Screen (2 monitors side by side). Yakuake: yakuake 20.12.0(-1) Operating System: Arch Linux KDE Plasma Version: 5.20.5 KDE Frameworks Version: 5.77.0 Qt Version: 5.15.2 Kernel Version: 5.10.4-arch2-1 OS Type: 64-bit Processors: 8 × AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx Memory: 6.8 GiB of RAM Graphics Processor: AMD Radeon™ Vega 8 Graphics
Maybe devs with more knowledge in KWin and multi monitors might be able to get the reason for this, so adding them to CC.
I spent some time to bisect this today: # bad: [e1e49a6e2498c78ed57d0bf14b9efc5d5c11ac20] GIT_SILENT Upgrade release service version to 20.08.0. # good: [d9a4f52107b0f558ba6a08fe66e8f7063fcffc9f] Merge branch 'release/20.04' git bisect start 'v20.08.0' 'd9a4f52' # bad: [481f39fb8f2092a919b1a9f2ba9a408e12ba27e5] Fix missing main menu after disabling systray icon git bisect bad 481f39fb8f2092a919b1a9f2ba9a408e12ba27e5 # bad: [491f5a2098fae018d35f9095e7675d294eafa9c6] Fix computing screen geometry on multiple HiDPI monitors git bisect bad 491f5a2098fae018d35f9095e7675d294eafa9c6 # good: [aecc1961d7f291ff59165589176c088eb0ecc78b] GIT_SILENT made messages (after extraction) git bisect good aecc1961d7f291ff59165589176c088eb0ecc78b # first bad commit: [491f5a2098fae018d35f9095e7675d294eafa9c6] Fix computing screen geometry on multiple HiDPI monitors Then after spending some time on this, it seems that this line is causing issue in my case: screenGeometry.moveTo(screenGeometry.topLeft() / screen->devicePixelRatio()); I removed '/ screen->devicePixelRatio()' and the issue is gone. So along with the patch from Bug 275433, changes I've made on top of v21.04.1 to make it work: diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp index a9e953f..79612d0 100644 --- a/app/mainwindow.cpp +++ b/app/mainwindow.cpp @@ -1510,9 +1510,9 @@ int MainWindow::getScreen() QRect MainWindow::getScreenGeometry() { QScreen *screen = QGuiApplication::screens().at(getScreen()); QRect screenGeometry = screen->geometry(); - screenGeometry.moveTo(screenGeometry.topLeft() / screen->devicePixelRatio()); + screenGeometry.moveTo(screenGeometry.topLeft()); return screenGeometry; } QRect MainWindow::getDesktopGeometry() @@ -1523,9 +1523,9 @@ QRect MainWindow::getDesktopGeometry() if (action->isChecked()) return screenGeometry; - if (m_isWayland) { + if (m_isWayland || true) { // on Wayland it's not possible to get the work area from KWindowSystem // but plasmashell provides this through dbus return m_availableScreenRect.isValid() ? m_availableScreenRect : screenGeometry; } Hope this helps.
Please feel free to submit a merge request at https://invent.kde.org/utilities/yakuake/-/merge_requests/! Even if it's imperfect, the folks there can hopefully give you come pointers on improving it.
Submitted: https://invent.kde.org/utilities/yakuake/-/merge_requests/45 I proposed a different solution which doesn't need the Bug 275433 patch. Let's see how it goes :P