Setting up dual monitors in xorg.conf

Posted on

Problem :

I have a dual-monitor setup where the second (smaller) monitor extends the desktop of the first one.

This works perfectly fine using the KDE monitor settings/XRandr, but Xorg’s default behaviour is to clone the first monitor and setting it to a lower resolution, causing two modesets: One from the correct resolutions (set by radeon while booting) to the cloned view on the KDM login screen, and a second one after the login.

Now I’d like to have the correct setup in xorg.conf.
As far as I know, I have to enable the merged framebuffer as described here, however I do not know how a complete, working configuration should look like.

So far, I managed to disable the unnecessary modesetting, but the second screen is still cloning (and now cropping) the frist one:

Section "Screen"
        Identifier "First Screen"
        DefaultDepth 24
        SubSection "Display"
                Depth 24
                Modes "1920x1080"
        EndSubSection
EndSection

Section "Screen"
        Identifier "Second Screen"
        DefaultDepth 24
        SubSection "Display"
                Depth 24
                Modes "1280x1024"
        EndSubSection
EndSection

Section "Device"
        Identifier "ATI"
        Driver "radeon"
        Option "MergedFB" "true"
        Option "MergedNonRectangular" "true"
        Option "CRT2Position" "RightOf"
        Option "MetaModes" "1920x1080-1280x1024"
EndSection

I am aware that I have to specify Virtual 3200 1080 somewhere in a “Display” SubSection. I tried putting it in both of the existing ones, in an additional SubSection, and in an additional “Screen” Section, but none proved successful.

Solution :

The important lines are the metamodes and TwinViewOrientation in the Screen section. You need to find the names of your monitors and set them correctly. The easiest way to do this would be to install the proprietary drivers and then use aticonfig to generate your xorg.conf.

I am not an expert but after a lot of attempts I have correctly configured my own xorg.conf to do what you need. I am posting the relevant sections of my xorg.conf, you should be able to adapt it to suit your needs. I have commented (comments begin with #) the lines that are most important to the best of my knowledge:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0 # This sets the orientation of the monitors
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Seiko/Epson"
    HorizSync       37.2 - 55.8
    VertRefresh     40.0 - 60.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro FX 880M"
EndSection

## Note that there is only one Screen section, I believe this is what makes 
## the extended desktop. 
Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    ## This line sets the resolutions for each monitor
    Option         "metamodes" "DP-3: 1600x900, VGA-0: 1440x900"
    ## This sets monitor0 to extend the screen to the right
    Option         "TwinViewOrientation" "RightOf"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Leave a Reply

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