xorg.conf with two adapters and three monitors.

My current setup is three monitors on two VGA adapters using the nVidia proprietary drivers, and the optimal setup would allow me to move anything I want between all three monitors. Unfortunately, this isn’t as easy as in Windows (7), and I had to mess about for a while before getting (almost) there.

Setting up a display on each monitor isn’t a big issue. Define three X screens with one monitor per screen, make sure you position them correctly, and restart X. This works, but doesn’t allow you to move anything (except the cursor) between the monitors.

The next thing I tried was to enable Xinerama, which supposedly allows X to send things between monitors. This actually works with all three monitors on separate screens, but is a real pain in the arse every other minute or so, when X appear to freeze for a few seconds. Also, if you’re moving eg. VLC between monitors while watching a movie, everything grinds to a halt for almost a minute. Which means that it’s more or less unusable in the long run, especially for playing games. Oh, and Xinerama isn’t compatible with composite-dependant applications, such as Compiz.

The last thing I tried was to disable Xinerama, and use Twinview instead. Twinview allows the VGA adapter to basically extend the display from one monitor, which is actually what I wanted. Unfortunately this only works for the monitors within one screen, which means that my last monitor is on a separate X screen, and I cannot drag and drop things between that and the others. But at least nothing hangs, freeze or slows down any longer.

Click on the link below for the complete xorg.conf file I’m currently using.


# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 304.51  (buildmeister@swio-display-x86-rhel47-08.nvidia.com)  Tue Sep 18 18:26:23 PDT 2012

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
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

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

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Chi Mei Optoelectronics corp. CMC 22 W"
    HorizSync       30.0 - 82.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Philips 150X"
    HorizSync       30.0 - 61.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 560 Ti"
    BusID          "PCI:3:0:0"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8400GS"
    BusID          "PCI:4:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "DFP-0: 1680x1050_60 +0+0, DFP-1: 1920x1080_60 +1680+0; DFP-0: nvidia-auto-select +0+0; DFP-0: 1680x1050 +0+0; DFP-0: 1680x1050_60 +0+0; DFP-0: 1440x900 +0+0; DFP-0: 1440x900_75 +0+0; DFP-0: 1440x900_60 +0+0; DFP-0: 1360x765 +0+0; DFP-0: 1360x765_60 +0+0; DFP-0: 1280x1024 +0+0; DFP-0: 1280x1024_75 +0+0; DFP-0: 1280x1024_60 +0+0; DFP-0: 1280x960 +0+0; DFP-0: 1280x960_60 +0+0; DFP-0: 1280x720 +0+0; DFP-0: 1280x720_60 +0+0; DFP-0: 1152x864 +0+0; DFP-0: 1152x864_75 +0+0; DFP-0: 1024x768 +0+0; DFP-0: 1024x768_75 +0+0; DFP-0: 1024x768_70 +0+0; DFP-0: 1024x768_60 +0+0; DFP-0: 800x600 +0+0; DFP-0: 800x600_75 +0+0; DFP-0: 800x600_72 +0+0; DFP-0: 800x600_60 +0+0; DFP-0: 800x600_56 +0+0; DFP-0: 640x480 +0+0; DFP-0: 640x480_75 +0+0; DFP-0: 640x480_72 +0+0; DFP-0: 640x480_60 +0+0; DFP-0: nvidia-auto-select +0+0; DFP-0: nvidia-auto-select +0+0; DFP-0: 1680x1050 +0+0; DFP-0: 1680x1050_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "1024x768 +0+0; nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

 

Leave a Reply

Your email address will not be published. Required fields are marked *