Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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
share|improve this question

4 Answers 4

up vote 2 down vote accepted

So here is my working xorg.conf for a three monitor setup. It's setup as two screens, which I didn't originally like, but I'm now pretty happy with. It allows me to run the two lcds like a normal dual monitor setup, and still display movies and stuff on my projector, all from the same computer. It's also nice that I can work on the dual-monitor setup, without having to turn on the projector because a window occasionally starts up on that screen, like it would if they were all the same xscreen.

Technically, I could run a fourth monitor! I think I'm more likely to invest in a new cpu and motherboard before I try that, though. It depends on how soon Starcraft 2 comes out.

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 1.0  (buildd@crested)  Sun Feb  1 20:25:37 UTC 2009
# edited by me (brendan) 2010-04-18


#   NVIDIA magic (something about glx-new?)
Section "Module"
    Load           "glx"
EndSection

Section "Extensions"
    Option         "Composite" "Enable"
EndSection



#   Keyboards and Mice
Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection




#   Physical Monitors:
Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Acer"
    ModelName      "Acer H233H"
    HorizSync       40.0 - 70.0
    VertRefresh     60.0
EndSection

Section "Monitor"
    Identifier      "Monitor1"
    VendorName     "Acer"
    ModelName      "Acer AL2216W"
    HorizSync       40.0 - 70.0
    VertRefresh     60.0
EndSection

Section "Monitor"
    Identifier     "Monitor2"
    VendorName     "BenQ"
    ModelName      "BenQ W500"
    HorizSync       44.955 - 45.0
    VertRefresh     59.94 - 60.0
EndSection




#   Physical Video Cards/Ports:
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 9800 GTX+"
#    Screen          0
    BusID          "PCI:5:0:0"
EndSection

Section "Device"
    Identifier    "Device2"
    Driver        "nvidia"
    VendorName    "nVidia Corporation"
    BoardName     "GeForce 7900 GT/GTO"
    BusID         "PCI:4:0:0"
    Option        "TVStandard" "HD720p"
EndSection




####    Default 3-monitor Layout 'default'

Section "ServerLayout"
    Identifier     "Default Layout"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen2" LeftOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "ServerFlags"
    Option         "Xinerama" "0"
EndSection


#   Virtual Screens
Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "1"
#    Option         "NoTwinViewXineramaInfo"
    Option         "metamodes" "DFP-0: 1920x1080 +1680+0, DFP-1: 1680x1050 +0+30"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen2"
    Device         "Device2"
    Monitor        "Monitor2"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "1280x720"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
share|improve this answer

I spent quite a while solving this issue for my Red Hat EL5 system with an ATI Radeon 6350 dual head. I could drag icons over from one screen to the other, but I still had two launcher bars on each screen and I couldn't drag windows from one screen to the other. What I needed was the following entry in my "ServerLayout" Section of my xorg.conf file.

Option "Xinerama"

Now I have only one laucher bar and can drag windows over fine.

share|improve this answer

I had the same problem, 4 monitors, 2 identical video cards, and was forced into having 2 Xscreens.

The solution I found meant buying some hardware, but it is working fine now (3 30" monitors, vertical orientation, Slackware64). It seems X-windows has to have all the monitors on a given Xsceen on the same video card. If you try it with your setup, you will see that you cannot have 1 monitor from each video card as 1 Xscreen, and the second on each video card as another Xscreen. They have to be on the same video card.

So I bought a video card, an MSI Radeon HD6990, which has 4 mini-display ports and 1 dual-link DVI port. I had to use the mini-dp ports on all three monitors--using the DVI port for one of the monitors meant buying a dual-link active adapter for $99.00. Note that the active adapter that came with the video card says it is active right on it, but it is a single-link active adapter, a distinction that escaped me till I saw a picture of the dual-link active dvi adapter--which has a usb cable for power as well as a dp cable. The cable supplied with the card will work, but limits you to a much smaller screen resolution.

This is an aside, but while running with 2 Xscreens, I only found 2 Linux programs that can switch between different X screens: Gimp has it on one of the menus, but it only switches the main graphic screen to the other Xscreen--menus stay put, and XEmacs, which has it on the menu and it works just fine.

share|improve this 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!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.