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.