Tri-Monitors

By Paulus, 30 September, 2007

I've acquired another 19" LCD monitor from a customer who said that he no longer needed it as the DVI IN no longer functions. Setting up Dual monitors is pretty easy. Unfortunately, there's a problem when using Linux and multiple monitors. The problem is that the window manager does not handle them correctly (or like Windows does.)

If you've ever set up dual monitors on a Windows machine you can 'Attach' the second output via the Display Properties. There is also an option that allows you to extend the desktop to the second monitor. When you extend the desktop to the second monitor and you maximize a window, the window will take up both screens. If you simply 'Attach' the monitor then when you maximize the window, it will fill up the screen that it is on. There's also a bonus here, you can drag the window to the other screen with out any problems.

In Linux you can do one of two things:

  1. You can extend the display to all the monitors, which will make all connected monitors one massive screen.
  2. Setup individual screens. The draw backs to this is that each screen will have a separate instance of the Windows Manager of your choice, you can not run multiple instances of some programs such as Fire Fox, and finally you can not drag windows from one screen to the other.

When I dug out a PCI video card from my collection of computer parts and installed it into my AMD Athlon 64 6000+ system, I thought that getting a Window Manager on all three monitors would be a piece of cake. Simply add a device, screen, monitor, and modify the ServerLayout Section for the new card. After modifying the /etc/X11/xorg.conf file I started X and had one of two things happen:

  1. The new video card would be blank, as in no video.
  2. The second head on my GF-6800 would lose video as soon as the driver started. ( no video )

The most common problem I had when I fooled around with the xorg.conf was that the second video card was not working. I looked at the output and saw that there was "No matching device section for PCI:1:6:0" which was the second video card that I just installed. I scoured the internet looking for an answer but was unable to find any. I posted on a few forums, but no one had an answer. What I ended up doing was enabling the twinview option on the GF6800, so two screens would be one large one, then I took the other screen and added that into the mix which I then extended the desktop to that one.

Under the ServerLayout section I added the second monitor's output:

...
Screen 0 "Screen-GF6800-TV" 0 0
Screen 1 "Screen-MX440" RrightOf "Screen-GF6800-TV"
Option "Xinerama" # If this option is omitted, then the desktop won't expand past the two monitors connected to the dual head GF6800
...

I added/modified the second head for the GF6800:

...
Identifier "GF6800-TV"
Driver "nvidia"
...
BusID "PCI:7:0:0"
Option "TwinView"
Option "NoTwinViewXineramaInfo" "true"
Option "TwinViewOrientation" "LeftOf"
Option "ConnectedMonitor" "crt,crt"
...

The driver that I used for the MX440 is the nv, I could use the nvidia drivers but I would have to revert back to an older driver because I couldn't have both a legacy and a new driver installed and in memory.

It's not the exact way I wanted it, but it'll have to do. My desktop is currently spanning three monitors. I just have to remember that I can not hit the maximize button.

You can download the xorg.conf file here.