For once it would appear that I have a positive update on the subject of Nvidia drivers. It would seem that patching the latest (319.23) driver is no longer required on Linux. Even better, there is a way to achieve a working T221 setup without RandR getting in the way by insisting the two halves are separate monitors. I covered the issues with Nvidia drivers in a previous article.
The build part now works as expected out of the box. Simply:
export IGNORE_XEN_PRESENCE=1 bash ./NVIDIA-Linux-x86_64-319.23.run
and everything should “just work”.
Best of all, there appears to be a workaround for the RandR information being visible even when Xinerama is being overridden. It turns out, Ximerama and RandR seem to be mutually exclusive. So even though the option disabling RandR explicitly seems to get silently ignored, enabling Xinerama fixes that problem. And since the Nvidia driver’s Xinerama info override still works, this solves the problem!
You may recall from a previous article the following in xorg.conf:
[...] Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 Option "Xinerama" "0" EndSection [...] Section "Screen" Identifier "Screen0" [...] Option "NoTwinViewXineramaInfo" "True" Option "TwinView" "1" Option "TwinViewOrientation" "RightOf" Option "metamodes" "DFP-0:1920x2400, DFP-3:1920x2400" [...] EndSection
It turns out the solution is to simply enable Xinerama:
Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 Option "Xinerama" "1" EndSection
This implicitly disables RandR and Nvidia driver’s Xinerama info override takes care of the rest. Magic.
If you are still having problems when using KDE, there is another trick you can use to force xinerama and disable RandR. Ammend the following line in kdmrc:
/etc/kde/kdm/kdmrc: ServerArgsLocal=-extension RANDR +xinerama -nr -nolisten tcp