Xinerama (multiple monitors)
This is a nascent wiki entry, that will be updated & refactored as more information becomes available.
For now see the following forum threads / pages :
XineramaHowTo is a slightly older howto page that may be useful, especially for users wishing to use Xinerama without nVidia cards (Matrox for example)
It is advisable to install the graphics card's binary driver before configuring dual monitors. See BinaryDriverHowto.
Quick and dirty guide to using nVidia TwinView (two outputs on one card, a single desktop split across two monitors. 3d/video stuff works seamlessly across both).
Ok, the first thing to check is how many outputs your card has. Most of them tend to have a 15pin VGA output (the one your monitor is probably on) and a larger white DVI onnector. The ones with this DVI connector usually come with an adapter that converts it to a 15pin VGA socket - if you have this then you are ready for dualhead
Once you have two monitors hooked up, the magic all happens in the X config file (which will be /etc/X11/Xorg.conf or /etc/X11/XF86Config-4 depending on which version you are unning). It is all contained in the Device section.
Here is mine:
Section "Device" Identifier "Videocard0" Driver "nvidia" VendorName "Videocard vendor" BoardName "NVIDIA GeForce FX5900XT" Option "TwinView" "true" Option "RenderAccel" "true" Option "UseEdidFreqs" "true" Option "MetaModes" "1600x1200,1600x1200;1280x1024,1280x1024;1024x768,NULL;800x600,800x600;640x480,640x480" Option "SecondMonitorHorizSync" "30-110" Option "SecondMonitorVertRefresh" "50-160" EndSection
The most important is the "TwinView" one, which enables the dualhead support. "UseEdidFreqs" means to probe the monitors for the resolutions they support (more on that in a moment). The "MetaModes" is where the configuration really lies - this tells the driver how you want the displays configured. The first entry will be the default and each entry is separated by a semicolon (";"). The first entry in mine therefore is "1600x1200,1600x1200" which means that both monitors should be in a 1600x1200 screenmode, making the total X display 3200x1200. Same principle for 1280x1024,1280x1024. The next one is slightly different, "1024x768,NULL" means that the second monitor will display nothing, so this mode is a true 1024x768 mode on the first monitor only (I use this one for playing games so they don't cross the monitor boundary). Beyond that, the "SecondMonitor" options are because my second monitor doesn't support EDID frequency lookups, so I have to tell the driver its refresh rates.
The only other thing you need to change then is to tell X's "Screen" section about these sizes.
Here is mine:
Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "3200x1200" "2560x1024" "1024x768" "1600x600" "1280x480" EndSubSection EndSection
The "Modes" line being the important one here, you can see that it tells X the sizes the displays will be once the nvidia driver has set the monitors up with the metamodes above.
That should pretty much be it, just check you're not loading the Xinerama module in the config file, nvidia's driver provides its own xinerama extension. I strongly recommend reading the README included with nvidia's driver (also available in the Linux driver section on www.nvidia.com) as it contains a lot more information about twinview that might be relevant to your situation.
For users with an ati radeon card i found a xorg.conf which worked for me:
Section "Monitor" Identifier "Fujitsu0" Option "DPMS" EndSection Section "Monitor" Identifier "Fujitsu1" Option "DPMS" EndSection Section "Device" Identifier "ati0" Driver "radeon" BusID "PCI:1:0:0" Screen 0 EndSection Section "Device" Identifier "ati1" Driver "radeon" BusID "PCI:1:0:0" Screen 1 EndSection Section "Screen" Identifier "screen0" Device "ati0" Monitor "Fujitsu0" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1280x1024" EndSubSection EndSection Section "Screen" Identifier "screen1" Device "ati1" Monitor "Fujitsu1" 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