Created attachment 144305 [details] X11 desktop at 100%, 200% and with variable set SUMMARY On X11 desktops, when the environment variable `PLASMA_USE_QT_SCALING=1` is set, the Pager widget only shows the first quarter of the desktop (in the case of 200% scaling). When the variable is not present, the pager works correctly when Plasma's global scale set to 100% and 200%. Wayland is not affected and works as expected, even with the variable set. Perhaps there needs to be a condition to divide the global scale (e.g. 200% = 2) when X11 is in use and the environment variable is present? STEPS TO REPRODUCE A HiDPI display is useful, but not required. 1. Set the global scale to 200%. 2. echo "PLASMA_USE_QT_SCALING=1" >> .bash_profile 3. Log out and back in 4. Observe the Pager widget on the panel and open some windows in the top-left and bottom-right regions. OBSERVED RESULT On X11 desktops, the window outlines on the widget are not accurately shown when PLASMA_USE_QT_SCALING is set. EXPECTED RESULT The pager shows the correct position/size of windows for a virtual desktop. SOFTWARE/OS VERSIONS OS: Arch Linux KDE Plasma Version: 5.23.4 KDE Frameworks Version: 5.88.0 Qt Version: 5.15.2 ADDITIONAL INFORMATION See attachments for screenshots.
Can confirm.
The thing this is a blocker for (Bug 356446) is closed now, and doing this was never supported anyway. Unfortunately I think we have to close this. Folks who want a decent hidpi experience will have to use Wayland and look forward to upcoming changes to improve the experience for XWayland apps in particular. Sorry everyone. :(
*** Bug 448967 has been marked as a duplicate of this bug. ***
Can reproduce
PLASMA_USE_QT_SCALING=1 is still not supported, so these kinds of issues when using it on X11 can be expected. If you'd like to re-open and fix this, we should re-open the parent bug and all the other blockers too, and implement your proposed UI to let the user choose what kind of scaling they want in the KScreen KCM on X11. Would you like to start on that?
(In reply to Nate Graham from comment #5) > PLASMA_USE_QT_SCALING=1 is still not supported, so these kinds of issues > when using it on X11 can be expected. > > If you'd like to re-open and fix this, we should re-open the parent bug and > all the other blockers too, and implement your proposed UI to let the user > choose what kind of scaling they want in the KScreen KCM on X11. > > Would you like to start on that? The bug seems to be fixable within my knowledge level and I am working on this. I can't say other blockers can be fixed but at least I will take this bug. Marked it as LATER now.
https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/848
Git commit 16d44ae2cb5e680f03a7414afe94f92d49fdcb37 by Nate Graham, on behalf of Fushan Wen. Committed on 21/02/2022 at 18:13. Pushed by ngraham into branch 'master'. applet/pager: Divide window size by devicePixelRatio on X11 when it's >1 KWindowInfoPrivateX11::frameGeometry() returns the true geometry of a window, so dividing the window size by devicePixelRatio is needed to get the correct size when it's greater than 1. FIXED-IN: 5.24.2 M +18 -12 applets/pager/plugin/windowmodel.cpp https://invent.kde.org/plasma/plasma-desktop/commit/16d44ae2cb5e680f03a7414afe94f92d49fdcb37
Git commit 78b1d26134647d890ee55e1ad7607cbd77e538be by Nate Graham, on behalf of Fushan Wen. Committed on 21/02/2022 at 18:16. Pushed by ngraham into branch 'Plasma/5.24'. applet/pager: Divide window size by devicePixelRatio on X11 when it's >1 KWindowInfoPrivateX11::frameGeometry() returns the true geometry of a window, so dividing the window size by devicePixelRatio is needed to get the correct size when it's greater than 1. FIXED-IN: 5.24.2 (cherry picked from commit 16d44ae2cb5e680f03a7414afe94f92d49fdcb37) M +18 -12 applets/pager/plugin/windowmodel.cpp https://invent.kde.org/plasma/plasma-desktop/commit/78b1d26134647d890ee55e1ad7607cbd77e538be
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1674
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1676
Git commit 18b91601b3ded2e6359ce51b7e983717cd49df12 by Fushan Wen. Committed on 22/08/2023 at 07:05. Pushed by fusionfuture into branch 'master'. applets/pager: fix window/screen size/position when using Qt scaling On X11, the rect returned from QScreen::virtualGeometry cannot be used as the whole screen rect. Instead, compute the whole screen rect manually, and map all windows/screens to the non-scaled coordinate system on X11 to make windows show in right positions in the pager applet. FIXED-IN: 5.27.8 M +38 -20 applets/pager/plugin/pagermodel.cpp M +3 -0 applets/pager/plugin/pagermodel.h M +13 -13 applets/pager/plugin/windowmodel.cpp M +5 -0 applets/pager/plugin/windowmodel.h https://invent.kde.org/plasma/plasma-desktop/-/commit/18b91601b3ded2e6359ce51b7e983717cd49df12
Git commit 879492370e9b8193dc76b59a266fbdc410a7c45a by Fushan Wen. Committed on 23/08/2023 at 02:49. Pushed by fusionfuture into branch 'Plasma/5.27'. applets/pager: fix window/screen size/position when using Qt scaling On X11, the rect returned from QScreen::virtualGeometry cannot be used as the whole screen rect. Instead, compute the whole screen rect manually, and map all windows/screens to the non-scaled coordinate system on X11 to make windows show in right positions in the pager applet. FIXED-IN: 5.27.8 (cherry picked from commit 18b91601b3ded2e6359ce51b7e983717cd49df12) M +39 -20 applets/pager/plugin/pagermodel.cpp M +3 -0 applets/pager/plugin/pagermodel.h M +15 -25 applets/pager/plugin/windowmodel.cpp M +3 -0 applets/pager/plugin/windowmodel.h https://invent.kde.org/plasma/plasma-desktop/-/commit/879492370e9b8193dc76b59a266fbdc410a7c45a