Linux – Setting Up a Triple Monitor Display

displaylinuxmultiple-monitorsxorgxrandr

I'm hoping there are some xorg gurus out there.

I'm trying to get a three monitor setup working in linux. I have 2 lcd monitors and a tv, all different resolutions. I'm using 2 video cards; a 9800 GTX and 7900Gt.

I've seen a lot of different posts about people trying to make this work, and in every case, they either gave up, or Xinerama magically solved all their problems.

Basically, my main problem is that I cannot get Xinerama to work. Every time I turn it on in the options, my machine gets stuck in a neverending boot cycle. If I disable Xinerama, I just have three Xorg screens, but I can't drag windows from one to the other.

I can get the 2 lcds on Twinview, and the tv on a separate Xorg screen no problem. But I don't really like this solution. I'd rather have them all on separate screens and stitch them together with Xinerama.

Has anyone done this?

Here's my xorg.conf for reference.

p.s. This took me all of 30 seconds to set up in Windows XP!
p.s.s. I've seen somewhere that maybe randr can solve my problems? But I'm not quite sure how?

Section "Monitor"
 Identifier "Main1"
 VendorName "Acer"
 ModelName "H233H"
 HorizSync 40-70
 VertRefresh 60
 Option "dpms"
EndSection

#Section "Monitor"
# Identifier "Main2"
# VendorName "Acer"
# ModelName "AL2216W"
# HorizSync 40-70
# VertRefresh 60
# Option "dpms"
#EndSection

Section "Monitor"
 Identifier "Projector"
 VendorName "BenQ"
 ModelName "W500"
 HorizSync 44.955-45
 VertRefresh 59.94-60
 Option "dpms"
EndSection

Section "Device"
 Identifier "Card1"
 Driver "nvidia"
 VendorName "nvidia"
 BusID "PCI:5:0:0"
 BoardName "nVidia Corporation G92 [GeForce 9800 GTX+]"
 Option "ConnectedMonitor" "DFP,DFP"
 Option "NvAGP" "0"
 Option "NoLogo" "True"
 #Option "TVStandard" "HD720p"
EndSection

Section "Device"
 Identifier "Card2"
 Driver "nvidia"
 VendorName "nvidia"
 BusID "PCI:4:0:0"
 BoardName "nVidia Corporation G71 [GeForce 7900 GT/GTO]"
 Option "NvAGP" "0"
 Option "NoLogo" "True"
 Option "TVStandard" "HD720p"
EndSection

Section "Module"
 Load "glx"
EndSection

Section "Screen"
 Identifier "ScreenMain-0"
 Device "Card1-0"
 Monitor "Main1"
 DefaultDepth 24
 Option "Twinview"
 Option "TwinViewOrientation" "RightOf"
 Option "MetaModes"   "DFP-0: 1920x1080; DFP-1: 1680x1050"
 Option "HorizSync"   "DFP-0: 40-70; DFP-1: 40-70"
     Option "VertRefresh" "DFP-0: 60; DFP-1: 60"
 #SubSection "Display"
        #    Depth           24
        #    Virtual         4880 1080
        #EndSubSection
EndSection

Section "Screen"
 Identifier "ScreenProjector"
 Device "Card2"
 Monitor "Projector"
 DefaultDepth 24
 Option "MetaModes"   "TV-0: 1280x720"
 Option "HorizSync"   "TV-0: 44.955-45"
    Option "VertRefresh" "TV-0: 59.94-60"
EndSection

Section "ServerLayout"
     Identifier  "BothTwinView"
     Screen      "ScreenMain-0"
 Screen      "ScreenProjector" LeftOf "ScreenMain-0"
     #Option     "Xinerama" "on" # most important option let you window expand to three monitors
EndSection

Best Answer

Scarily you and I have almost the exact same setup. I have a 9800GTX Ultra and a 7900GS KO. My problem is that Xinerama doesn't work with such different GPUs. Xrandr was designed to replace xinerama, but one of the biggest features of xinerama (stitching screens together) wasn't kept ported for some reason.

Using the nvidia approach, I have basically what you've settled for; dual monitors + another monitor. My problem is that using this approach, none of the window managers can determine that there are actually two monitors on the left, and so maximized windows (and things like the panel) are stretched across both monitors

I was hoping nouveau would be my knight in shining armor, but strangely no matter what I do I can't get even dual monitor to work using the nouveau drivers, using several versions (the defaults, ones from a PPA, built from source).

I know of at least a few other people that have similar setups to us, at least one friend has gotten his setup to somewhat work using fakexinerama which basically just lies to the X server about the monitors to force it to work.

Hopefully my input helps you find your way to a better solution. Please keep us updated if you find anything new!