Dual Head With X.org, Radeon 7000, and GNOME

Posted by Eric Stein - April 16, 2006 CE @ 00:45:12 UTC
I've wanted to have dual monitors for a very long time. I recently bought another Dell E193FP 19" LCD to match the one I already had. Of course I wanted to be using it as soon as possible, so I went over to my brother's place and we found a card I could use:
eastein@pippin:~$ lspci|grep VGA
0000:02:00.0 VGA compatible controller: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE]
eastein@pippin:~$

X.org

I browsed around on the Ubuntu Wiki and found the page on setting up Xinerama with multiple monitors. After a fair bit two days of tinkering, I came up with this xorg.conf:
Section "Files"
        FontPath        "/usr/share/X11/fonts/misc"
        FontPath        "/usr/share/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/share/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/share/X11/fonts/Type1"
        FontPath        "/usr/share/X11/fonts/CID"
        FontPath        "/usr/share/X11/fonts/100dpi"
        FontPath        "/usr/share/X11/fonts/75dpi"
        # paths to defoma fonts
        FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
        FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"
EndSection

Section "Module"
        Load    "GLcore"
        Load    "bitmap"
        Load    "ddc"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "int10"
        Load    "type1"
        Load    "vbe"
EndSection

Section "InputDevice"
        Identifier      "keyboard1"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"    "xorg"
        Option          "XkbModel"    "pc104"
        Option          "XkbLayout"   "us"
EndSection

Section "InputDevice"
        Identifier      "mouse1"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Device"              "/dev/input/mice"
        Option          "Protocol"            "ImPS/2"
        Option          "Emulate3Buttons"     "true"
        Option          "ZAxisMapping"                "4 5"
EndSection

Section "Monitor"
        Identifier "Dell0"
        Option  "DPMS"
EndSection
Section "Monitor"
        Identifier "Dell1"
        Option  "DPMS"
EndSection

Section "Device"
        Identifier      "ati0"
        Driver          "radeon"
        BusID           "PCI:2:0:0"
        Screen          0
EndSection

Section "Device"
        Identifier      "ati1"
        Driver          "radeon"
        BusID           "PCI:2:0:0"
        Screen          1
EndSection

Section "Screen"
        Identifier      "screen0"
        Device          "ati0"
        Monitor         "Dell0"
        DefaultDepth    24
        SubSection "Display"
                Depth   24
                Modes   "1280x1024"
        EndSubSection
EndSection

Section "Screen"
        Identifier      "screen1"
        Device          "ati1"
        Monitor         "Dell1"
        DefaultDepth    24
        SubSection "Display"
                Depth   24
                Modes   "1280x1024"
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "Multihead"
        Screen          "screen0"
        Screen          "screen1" RightOf "screen0"
        InputDevice     "mouse1" "CorePointer"
        InputDevice     "keyboard1" "CoreKeyboard"
        Option          "Xinerama"
EndSection

Section "DRI"
        Mode    0666
EndSection
This wasn't the first xorg.conf I worked with - I used another earlier that seemed to work until I realized I needed to set the gamma correction on each head separately. The previous one used only one device section - a problem if you want to set gamma correction independently. In my case, the second head's gamma was too high by default, resulting in a washed out look. When you have two separate screens, you can set the gamma correction like so:
eastein@pippin:~$ xgamma -screen 0 -gamma 0.92
-> Red  0.800, Green  0.900, Blue  0.900
<- Red  0.920, Green  0.920, Blue  0.920
eastein@pippin:~$ xgamma -screen 0 -rgamma 0.8
-> Red  0.920, Green  0.920, Blue  0.920
<- Red  0.800, Green  0.920, Blue  0.920
eastein@pippin:~$ xgamma -screen 1 -gamma 0.7
-> Red  0.700, Green  0.700, Blue  0.700
<- Red  0.700, Green  0.700, Blue  0.700
eastein@pippin:~$ xgamma -screen 1 -rgamma 0.65
-> Red  0.700, Green  0.700, Blue  0.700
<- Red  0.650, Green  0.700, Blue  0.700
eastein@pippin:~$

GNOME

Setting up GNOME to work with my new setup didn't even require editing config files. All my old panels were on screen 0 and there were no panels on screen 1. Adding panels and dragging them around was intuitive.

Moving Between Screens

Items on panels, windows, the mouse, and items on the desktop are easily moved from one screen to the other. When you drag a maximized window from one screen to the other, it unmaximizes even if you drag it back. Applications that use fullscreen seem to use screen 0 nearly exclusively, however - even if the app was running on screen 1.

Conclusion

X.org, GNOME, and dual monitors in general are definitely my thing.

Comments

There are no comments yet.

Post a Comment

Name
Email (not published, I won't spam you)
URL (optional)
Title
Comment
adult kitten?
Worth Saying
Valid XHTML, CSS, RSS | 5ms | Copyright 2004-2025 Eric Stein