It used to be that using two monitors with two separate X sessions in Linux actually worked. Then they improved things so it stopped working out of the box, but you could force it to work with a bit of effort. Further improvements made the workarounds more difficult. Now, with Xubuntu 12.10, it seems impossible.
This. Is. Not. Progress.
Experimenting will require considerable restarting of the X server, which nowadays requires, by default, rebooting the box. In the Bad Old Days, you could hit Ctrl-Alt-Backspace
to restart the X server (and, en passant, blow away all unsaved data in your session). My suggestions about re-enabling it no longer work and, worse, the suggestions there about:
- Pressing
Right-Alt + Sysreq + K
- Enabling
DontZap
do not work, either. I’m no longer surprised by any of this.
Fortunately, as suggested at the same spot, this works:
- Create if missing:
~/.xprofile
- Add:
setxkbmap -option terminate:ctrl_alt_bksp
- Make it executable:
chmod u+x .xprofile
But it’s per-user, so it works only while you’re logged in, which means you can’t restart X from the login screen. This is marginally OK.
So. We begin.
This box (an off-lease Dell Optiplex 780, Core 2 Duo E8400 3.0 GHz) now has a Jaton GeForce GT430 nVidia video card with two DVI outputs.
In order to get decent performance, you must use the nVidia proprietary driver. Installing the nvidia-current
package pulls in, as of this writing, 304. The nVidia driver now ignores the rotate
option and the randrrotation
option in xorg.conf
. Adding the {Rotation=Left}
meta-option to the portrait monitor or enabling Xinerama kills xrandr
.
Not having xrandr used to not be fatal, but now OpenSCAD (among others) requires xrandr
to be both present and active. Any solution that doesn’t allow xrandr
isn’t feasible.
Despite notes suggesting that nVidia’s TwinView kills xrandr
, it doesn’t (perversely, Xinerama should allow it and doesn’t; perhaps I misunderstand what’s going on). Add another line to .xprofile
:
xrandr --output DVI-I-3 --rotate left
You discover which output to use by parsing the output of xrandr
without any parameters:
$ xrandr Screen 0: minimum 8 x 8, current 2650 x 1680, maximum 16384 x 16384 DVI-I-0 disconnected (normal left inverted right x axis y axis) DVI-I-1 disconnected (normal left inverted right x axis y axis) DVI-I-2 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 367mm x 275mm 1600x1200 60.0*+ 1280x1024 75.0 60.0 1152x864 75.0 1024x768 75.0 60.0 800x600 75.0 60.3 640x480 75.0 59.9 DVI-I-3 connected 1050x1680+1600+0 left (normal left inverted right x axis y axis) 434mm x 270mm 1680x1050 59.9*+ 1280x1024 75.0 60.0 1152x864 75.0 1024x768 75.0 60.0 800x600 75.0 60.3 640x480 75.0 59.9 HDMI-0 disconnected (normal left inverted right x axis y axis)
Why DVI-I-0 and DVI-I-1 are disconnected is not explained. There is an HDMI jack that I’m not using, so that one does make sense. The output shows the portrait monitor on DVI-I-3 as rotated.
This is a single X session, so the two monitors show sections of a larger workspace. The cursor moves freely across the junction, it doesn’t vanish below the landscape montitor, and windows maximize properly to fill the single monitor they start in.
This is not what I want, because I cannot independently flip the workspaces on the two monitors. It’s possible to force one of the windows on the portrait monitor to “always on top”, but that means I have only one program accessible on that monitor, which isn’t usually the case.
This. Is. Not. Progress.
But it seems to be as good as it gets these days…