Scarily you and I have almost the exact same setup. I have a 9800GTX Ultra and a 7900GS KO. My problem is that Xinerama doesn't work with such different GPUs. Xrandr was designed to replace xinerama, but one of the biggest features of xinerama (stitching screens together) wasn't kept ported for some reason.
Using the nvidia approach, I have basically what you've settled for; dual monitors + another monitor. My problem is that using this approach, none of the window managers can determine that there are actually two monitors on the left, and so maximized windows (and things like the panel) are stretched across both monitors
I was hoping nouveau would be my knight in shining armor, but strangely no matter what I do I can't get even dual monitor to work using the nouveau drivers, using several versions (the defaults, ones from a PPA, built from source).
I know of at least a few other people that have similar setups to us, at least one friend has gotten his setup to somewhat work using fakexinerama which basically just lies to the X server about the monitors to force it to work.
Hopefully my input helps you find your way to a better solution. Please keep us updated if you find anything new!
I realize this is a belated reply, but there is an answer, and it may not have existed a year ago.
First the limitation (I think in X itself) is that X wants all screens that get hooked together into 1 big xscreen to be on the same video card.
So solutions (as far as I know) that include 2 video cards will let your cursor traverse all 3 monitors (across both xscreens
) but windows cannot be dragged across to the 3rd monitor (or vise versa).
To get 1 big Xscreen and windows to slide everywhere I believe you need to have all three monitors hooked to the same video card.
So you need to find a card that does 3 or more monitors from the same card.
I'm a big nvidia fan, but I could not find one recently that did more than 2 monitors per card. There are some cards that have 3 ports, but you only can use 2 of the 3 at a time. You have to read the fine print carefully.
The only cards I found that would do more than 2 monitors at a time were some Matrox cards and some newer ATI cards. The Matrox cards had limits of how big the total display could be in pixels and limits of resolutions for each monitor too. There are several ATI cards that support 3+ monitors in Linux, I bought an MSI Radeon 6990 card that has 5 monitor ports and can by splitting one port support 6 monitors, though I cannot get a clear answer how splitting will impose limits on the monitor sizes for the split ports.
I am only using 3 ports now and they all support 2560x1600 per Mini-DisplayPort.
My son has a different card, in the 5xxx series that has 6 Mini-DisplayPort connectors on it and it supports up to 6 monitors as well and is cheaper–so I know there is more than one card that can be used, not sure of model number of the other cards.
The other part of your question, about compiz
, I cannot answer that, but once you get all monitors on one video card, I suspect compiz
might work, since you will not need xinerama
.
After the 3 are up and running, you will probably need to arrange them to each other with xrandr. once you issue the correct commands from the command line, you can put them in a script file and have them run every time you start up to save you typing and remembering.
My script for my setup has 3 lines:
xrandr --output DFP1 --mode 2560x1600 --rotate left
xrandr --output DFP2 --mode 2560x1600 --rotate left --pos 1600x0
xrandr --output DFP3 --mode 2560x1600 --rotate left --pos 3200x0
Your output devices and options will be different.
Best Answer
This is a script I made on Linux Mint with XFCE for the same kind of setup. Not using Xinerama. My setup was 1st monitor portrait, 2nd and 3rd, landscape. Worked like a charm. The 5 second pause at start was because it was set to start with session, and if it was run too early, it was not working correctly.
Note also that in my specific example, I had to align screens on bottom as one was higher than the others. Aligning on top was not giving the expected behavior.
In the end, using xrandr was the only way I got it work the way I wanted.
Give it a try with your own settings
I made an article on my blog, however this is in french: https://akim.sissaoui.com/linux-attitude/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques/