Today's task: rewrite KWin's screen handling to use XRandR directly instead of relying on QDesktopWidget.
Obviously I wanted to have unit tests for the new code. But that's the problem. Xvfb doesn't support XRandR at all. So we need a different "virtual" X as the unit test should not mess up the setup of whoever runs the unit test and we want to have it run on the CI which doesn't have a real X. My unit test is now starting Xephyr to run the test.
But that's unfortunately not a much better solution. It supports XRandR, but a few cases I am not able to test. I failed with disabling all screens (KWin should always have at least one fake screen - this is now not tested) and multiple outputs is also something I failed to get.
And there's another problem: Qt and my test are now connected to a different X Server. Qt connects to the X server already present when starting the test and the tested code against the Xephyr started by the test. Because of that I'm unable to use QX11Info and have to mock the API. Oh the fun, oh the fun.
Now I'm looking forward to the four day weekend :-D