You are here: Home Old redinnovation.com blog single-head
Personal tools

single-head

2007-03-25

A cold cup of Linux and many monitors

It's 2007. Linux still cannot manage two monitors properly - something that Windows did this back in 1995.

The Linux show stopper for my work is using two monitors (a.k.a. dual-head). Monitor management generally is major Pain In The Ass in Linux. It is possible, but good end user tools are missing and you need to choose one of many different far-from-perfect technical approaches.

X server, which manages Linux desktop visual interaction, doesn't provide a real interface to manage several monitors. It would require a co-operation from display driver vendors, user-land application developers (Gnome and KDE), Linux distribution teams  and X.org team to come up with a solution. Because many different parties are involved and the problem falls to "no one's land" the progress has stagnated in this area. People still need to fire up their text editors and manually edit cryptic config files and type terminal commands to get something done.

Windows did this back in '95. Display driver vendors have made up their own driver hacks to workaround the problem, but because the hacky nature of driver hacks, they will be never usable enough for average end users. There is no technical limitation why this wouldn't work, since Windows and MacOS X have been doing this many many years.


When one is not enough


People need two monitors when
  • They do presentations (PowerPoint)
  • Work with software development environments
  • Artists

Here is what kind of display set-ups ATI driver provides
  • Laptop Mode (toggle between internal or external screen)
  • Clone Mode (same content on both screens)
  • Big Desktop (one desktop stretched across two screens)
  • Dual Head (separate instances of X running on each screen)

Big Desktop mode is what most people want. This means that the same desktop is shared between both monitors. You can drag and drop windows from one monitor to another. NVIDIA's corresponding technology is called "TwinView".

Unfortunately, Big Desktop is a awful hack. Setting up Big Desktop requires going to command line and/or poking around configuration files manually. Or, in worst cases, to put it bluntly, it just doesn't work. Big Desktop (TwinView)  relies on making a  fake screen resolution which is the sum of all screens. Each physical monitor has a viewport into this total area. The total screen resolution is monitor 1 width + monitor 2 width X maximum of monitor heights.

What works for me now is "dual head" configuration. Both monitors have their own X server running. Set up worked like a charm and both screens have their correct display resolution. But charm ends there. Since both screens have their own X process and X doesn't have "inter-x-process" communication mechanism, working with this kind of set-up is pain
  • You cannot configure screen resolution and layout with end user applications
  • You cannot drag windows from a screen to another
  • Application are not aware of the existence of the second monitor
  • Clicking link on a screen where Firefox is not running results to an error dialog "Firefox is already running, but is not responding"
  • Both monitors have duplicate task bars, star menus and other shared desktop stuff
  • etc.
The only thing that actually works is dragging desktop icons from screen to another. I can drag icons, why I cannot drag windows?

In Big Desktop (TwinView) you get another bunch of problems
  • You cannot configure screen resolution and layout with end user applications
  • Started application windows are opened on the wrong monitor
  • Applications don't necessary know on what monitor they are and are opening dialogs to wrong monitors
  • If screen resolutions don't match, which they rarely do, there is some mysterious empty space around the smaller resolution monitor and you can move mouse cursor off screen. This is very annoying since it makes hitting the scrollbar at the right edge of the screen with mouse cursor very difficult.
  • Size estimations fail in applications because of fake total screen resolution
  • Monitor specific taskbar and other panels don't necessary work
Again, Windows and MacOS X don't suffer from these problems.

Monitor hot-plug woes


Hot-plugging monitors, e.g. video projector for presentation, gives its own number of problems. At least in Ubuntu and ATI's proprietary display driver, the wish to just go to somewhere, plug-in monitor and have a slide presentation is the worth of bagful air.
  • Nothing happens when monitor is hot-plugged
  • You need to reboot to make monitor detected
  • You need to run aticonfig to set-up correct resolution for the video
  • You need to reboot again
  • You need to hope that in this step everything works and presention can be started

Conclusion


As long as display driver vendors, X.org and co. cannot come up with real standard way to manage many screens in Linux, there is no progress in userland applications. Functionality like TV out, correct resolutions and monitor layout setup will require rebooting and command-line hacking. The Year or Linux Desktop cannot be declared until these kind of basics issues for desktop working have been solved.




Syndication
Atom
RDF
RSS 2.0
Available for work
Need Web/Usability/Python/Plone/Django expert?
Hire us!