Stretch Desktop With the fglrx Driver

I have a new PC under my desk, and it seems that I now have my X setup the way I want it. The problem was with the dual head support: I wanted one desktop stretched across the two monitors, so I can drag windows across from one monitor to the other.

The default configuration merely mirrored one screen onto two monitors: a waste of desktop real estate. What I had before did put different X displays on the monitors: good but not great because I couldn’t drag across. On my old machine I could use the Xinerama extension to achieve the what I wanted, but turning that on made the driver for the new card (ATI’s proprietary fglrx) crash when the screensaver kicked in.

What seems to make it work on Ubuntu Gutsy is to use the aticonfig program that comes with the driver package like so:

  • Install the xorg-driver-fglrx package
  • Run sudo aticonfig --initial=dual-head --screen-layout=right
    --dtop-horizontal -i /etc/X11/xorg.conf --force

This puts a couple of configuration options in xorg.conf, notably:


Section "ServerLayout"
    Identifier "Default Layout"
    Screen 0 "aticonfig-Screen[0]" 0 0
    InputDevice "Generic Keyboard"
    InputDevice "Configured Mouse"
EndSection

Section "Monitor"
    Identifier "aticonfig-Monitor[0]"
    Option "VendorName" "ATI Proprietary Driver"
    Option "ModelName" "Generic Autodetecting Monitor"
    Option "DPMS" "true"
EndSection

Section "Monitor"
    Identifier "aticonfig-Monitor[1]"
    Option "VendorName" "ATI Proprietary Driver"
    Option "ModelName" "Generic Autodetecting Monitor"
    Option "DPMS" "true"
EndSection

Section "Device"
    Identifier "aticonfig-Device[0]"
    Driver "fglrx"
    Option "DesktopSetup" "horizontal"
    BusID "PCI:1:0:0"
EndSection

Section "Device"
    Identifier "aticonfig-Device[1]"
    Driver "fglrx"
    BusID "PCI:1:0:0"
    Screen 1
EndSection

Section "Screen"
    Identifier "aticonfig-Screen[0]"
    Device "aticonfig-Device[0]"
    Monitor "aticonfig-Monitor[0]"
    DefaultDepth 24
    SubSection "Display"
        Viewport 0 0
        Depth 24
    EndSubSection
EndSection

Section "Screen"
    Identifier "aticonfig-Screen[1]"
    Device "aticonfig-Device[1]"
    Monitor "aticonfig-Monitor[1]"
    DefaultDepth 24
    SubSection "Display"
        Viewport 0 0
        Depth 24
    EndSubSection
EndSection

Note there is lots of overlap, there are even two Device sections for the same PCI bus id and the X server bitches in a minor way about the absence of a section for the 1:0:1 slot on the PCI bus… in any case that Option "DesktopSetup" "horizontal" thingy seems to do some magic because that’s really the only exotic entry in the entire config file.

There is a missing symbol emit in the log file that goes away when I disable the broken extension after a Googled suggestion:


Section "ServerFlags"
    Option "AIGLX" "off"
EndSection
Section "Extensions"
    Option "Composite" "Disable"
EndSection

Be Sociable, Share!