dvratil created this revision. dvratil added reviewers: sebas, davidedmundson. Restricted Application added a project: Plasma. Restricted Application added a subscriber: plasma-devel.
REVISION SUMMARY Add support for reading and updating output scaling. Unlike Wayland, XRandR supports non-integer scaling factors so a new Config feature has been introduced for XRandR to be able to tell clients that it supports non-integer scaling factors. The scaling is represented as a QTransformation matrix on CRTC and is applied before RRSetCrtcConfig call. This becomes useful for people who combine HiDPI and non-HiDPI screens. In my case, I found out that the only really working solution is to not scale the applications (since that does not work as you move windows between screens), but instead of scale the non-HiDPI screen in XRandR by 1.5, thus achieving a similarily-sized windows on both screens. To make this persistent, KScreen needs to remember not just resolution and rotation of each screen, but also their scale, so that it can be applied during session start. TEST PLAN Set scaling on one screen to 1.5 xrandr --output DVI-I-1 --scale 1.5x1.5 Logout, log back in, observe KScreen has correctly restored screen configuration, including the scaling. REPOSITORY R110 KScreen Library REVISION DETAIL https://phabricator.kde.org/D9463 AFFECTED FILES CMakeLists.txt backends/xcbwrapper.h backends/xrandr/xrandr.cpp backends/xrandr/xrandr.h backends/xrandr/xrandrconfig.cpp backends/xrandr/xrandrcrtc.cpp backends/xrandr/xrandrcrtc.h backends/xrandr/xrandroutput.cpp src/config.h To: dvratil, sebas, davidedmundson Cc: plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart