Keith Packard is one of the main X developers and currently works at Intel to improve their graphic drivers for X and to improve X in general. He had a talk at this year’s akademy titled “Multi-Head RandR” and I was eager to get my hands on the slides since I was not able to attend akademy.
Today he sent me an e-mail noting that he finally found the time to put the slides of his presentation online – and they give a pretty good impression what we will see in X in the close future! I will try to set these things into context:
Since the XFree86 project broke apart and the development of the X.Org Server started off, quite a lot of developments happened. For the users the most notable improvement is AIGLX and similar techniques. The developers (and distributers) were happy to see that X is now modularized, which means that X is easier to maintain, package and deliver.
However, there are still quite a lot of problems left: X was only sufficient when you a single monitor or a set of monitors (or output devices) with a specific and fixed geometry. As soon as you started changing the geometry, or even to switch the number of monitors on the fly you run into trouble: X was designed to know everything from the beginning – there was no flexibility once X was running, so everything started with a restart of X. Also, changing
xorg.conf to add another monitor was a science for itself.
To address these problems new solutions were brought in: Xinerama, the VidModeExtension and RandR fixed specific problems. Xinerama merged all monitors into one screen and made multi-head-setups easier to manage. VidModeExtension and RandR made it possible to change the size and the monitor mode without restarting.
For RandR the situation improved at least a bit with the latest X.Org version, 7.1. Quite a lot of resolution information are read in automatically, and do not appear in
xorg.conf at all. But for all of the other problems, especially for on-the-fly-plugging-in of video projectors and related to that for live Xinerama changes no solution was in sight: everything had to be pre-configured in
xorg.conf before start up.
The solution: Hotpluggy Sweetness
The solution is called “Hotpluggy Sweetness” – or, at least, that’s how Keith Packard calls it ;)
It will mix all features from the above mentioned solutions – but will also make these available on the fly, dynamically. Without restarting X (which is quite embarrassing when you want to give a presentation). The idea is also that is is supposed to expose all system capabilities to the applications so that these apps can work together with X in a complete new level.
This new tool can become the perfect-all-in-one tool for X in the daily live – and I hope that some smart people will integrate it into apps as soon as possible. It is expected, by the way in X version 7.3, so in spring 2007.
Btw., the English language really lacks a term to describe such “fits-it-all” things – in German we say “Eierlegende Wollmilchsau”, roughly translated: an egg laying pig with woolen skin that produces also milk :)
What you can do with it
There are several situations where I really would love to have this flexibility right now: first of all, and probably most important is the need to a usable way in X to work with external video projectors. Restart is just not an option!
And second, there is one thing every Apple user with the program keynote knows of, and which is also possible with PowerPoint on Windows: different outputs for different devices while you are running a presentation. The keynote page explains the presentation view very well, PowerPoint Howtos about this feature are also available.
OpenOffice does not has anyting like that, also it can maybe expected in version 2.1.
In any case, X is not able to do this dynamically at the moment – but with the new feaures it will be.
So the close future of X.Org will be very interesting – but also full of work for the developers because all the drivers have to be modified to work together with the new features. The first will be the Intel drivers (obviously), I hope the Open Source ATI drivers will follow pretty soon.
Just to make that clear: the features developed by Keith will find their way into XRandR version 1.2. XRandR is well known for changing resolutions and such stuff, so it will be a huge extension to an existing program, not an entirely new program.