Please, please me

Good to see Jono is on board with my plea for someone (or many people) to help the Xorg project with the simple, no eye candy, missing features related to rotation, mirroring, and dual head.

I think that perhaps I need to clarify what’s wrong and some ideas of how I’d like things to be (although, unfortunately I have no idea where or how to start coding X ro the relevant drivers).

Rotation

Why is rotation important?

  • LCDs. Most LCDs have the ability to rotate from landscape to portrait mode. There are some situations where this might be useful, for example DTP page layout. Also, if you happen to watch it, in Twelve weeks with geeks check outJoel Spolsky’s desk – two Dell widescreens (I assume 21’’ 2005FPW) rotated and in dual screen mode (talk about double hell to try and configure in Linux, dual head and rotation).
  • Tablets. While the jury is still out on whether tablet pc’s (or the new Origami form factor) will ever take off in the general market – I think they will be relevant in certain vertical markets, for example education and design.

There is some support for rotation in the xrandr (X Resize and Rotate) extension. This is the extension that’s used in the screen size applets in Gnome and KDE that allows dynamic resizing of the display – which is great, however in my experience there aren’t any open-source drivers that support rotation, except the specialised ones for the ipaq and Nokia 770.

So the missing features are;

  • consistent rotation support across the most common drivers e.g. ati, radeon, nv, i810 (anyone for any others?).
  • ability to individually rotate screens in dual head setup

Dual head

Why is dual head important?

  • Hardware wise it’s becoming easy and cheap – even bottom end cards have two outputs, and the price of monitors is always falling. Most laptops have graphics chipsets that can drive two screens.
  • Many developers that I know either use laptops with an external monitor, or a desktop with two screens, in dual head mode. Again, look at 12 weeks with geeks – all the interns had dual screen desktop machines.

The good news is that most of the drivers I’ve played with support dual head. The bad news is that it’s tricky to setup and requires a restart of X to switch from single head to dual head and back to single head.

So the missing features are;

  • Abliity to dynamically switch (i.e. without restarting X) between single and dual head mode.
  • Ability to change the resolution of each head independently – of course without needing to restart X
  • Autodetection of a monitor as it’s attached – I realise this is a big ask. Windows doesn’t always deal with this well (probably a driver problem), OS X does well in my experience, but it should as Apple have control of all the hardware.

Mirroring

Why is mirroring important?

Do I really need to explain? Goto any conference, goto to any Universtiy, goto any corporate office, goto any sales meeting, and you will see laptops and projectors.

So the missing features are;

  • Ability to turn mirroring on and off
  • Auto negotiation of the best compatible resolution between the laptop screen and the projector.
  • Just like dual head – autodetection of a monitor as it’s attached. The ability to choose between mirror or dual head setup.

Final stuff

I imagine all of this is difficult, but is it more difficult than Xgl or AIGLX? My guess is probably, simply because of the reverse engineering of the hardware needed to drive the features of the chipset. However I would point out that for dual head the basic functionality is already there – it just doesn’t happen in a Just Works way.

Leave a comment