XRandRoll: a new program to configure displays
TL; DR: I wrote a experimental tool to support X display configurations which I think is, or at least will be, better than others, and you can check it out at https://github.com/ralsina/xrandroll
Now the real post:
I have been using a dual monitor configuration for a little while. However it's a slightly special one.
One monitor is a normal samsung 27" 1080P monitor. But it's in a monitor stand that allows it to rotate. So it's either horizontal or vertical.
The other monitor is the laptop's. BUT ... it's a 2-in-1 so it can be in "normal" or "tent" or "tablet" positions. And when it changes position it reconfigures itself automatically using KDE's awesome support for it. So it can be in 4 different orientations.
So, if you are counting, that gives me 8 different possible monitor configurations.
Also, another thing is that while both screens have the same resolution, they have very different physical dimensions. Display configuration tools usually don't care for that (maybe with good reason!)
So, I wanted to experiment with how a tool would work that:
Looked / worked more or less like current tools
Allowed a little more flexibility
Did some fancy scale things with physical dimensions
Tried to support xrandr features that are ignored by most tools
Got its configuration from xrandr itself.
Applied its configuration via xrandr
Did screen mirroring better (say: exact mirroring when monitors are not the same mode? It does that)
So, xrandroll starts with several "philosophical" opinions in place.
In principle, it stores no configuration. It should obtain the state from xrandr. So it starts with a real reflection of your system as it exists.
It allows more display scaling flexibility. Independent scales per axis! A widget that does all the silly calculations to make things the same size!
It sort of does what I want now? In a prototypey-this-code-needs-to-be-rewritten way?
For the future, I intend to add capability to monitor your monitors (heh) and refresh itself if, for example, you plug in a monitor to your computer with xrandroll running. Also, some sort of service that configures monitors automatically as they are added / removed.
So, it may be worth taking a look at it. If you find bugs (there are bound to be dozens) you can file a bug attaching your xrandr output and I can debug them!
Interaction, UX, etc are still a WIP and subject to change. Experiments are being made. But it should be unable to destroy your system! You can probably even go back to whatever working config you had by clicking "Reset"!
Have fun and keep me posted.