Advertisements

Xubuntu 12.10 vs. Dual Monitors: Regression

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…

Advertisements

  1. #1 by madbodger on 2013-02-09 - 10:26

    In the spirit of total unhelpfulness, I’ll point out that this is open source, and you could theoretically dive into the code and fix this yourself so it works exactly the way you want it to.

    • #2 by Ed on 2013-02-09 - 10:42

      Y’know, I’ve actually tried that in a different context, which gave me a visceral understanding of the term dependency hell. [heavy sigh]

      Used to be, I (thought I) understood this software stuff… now I know better!

      • #3 by Red County Pete on 2013-02-09 - 12:46

        Got that T-shirt! Circa Y2K I actually was fluent in Perl and so-so at *nix administration. Haven’t even looked at any Python documentation.

        Getting back into LinuxLand is, er, intimidating. Oh well, it’s the (pick 2 of 3) money, time, and quality issue, and money is the lacking item.

        • #4 by Ed on 2013-02-09 - 14:00

          Getting back into LinuxLand is, er, intimidating.

          From a user’s standpoint, I think it’s no less weird than, say, Windows 8. I set up an Xubuntu box for Mary’s father, after the Win XP box suffered a hostile takeover, and he didn’t have much trouble at all.

          Now, from a programmer’s standpoint, I just heaved a stack of books on the subject: they were all out of date, after just a few years…

        • #5 by Red County Pete on 2013-02-09 - 18:39

          It’s programming that’s the bit. Use is fairly easy. I’m trying to bring up the Vaio as a MIDI controller with a Mac-oriented interface. I know it can be done, not sure if I can do it. There’s some sketchy driver code to let me talk to a Mac serial interface using a USB port, and driver code for the MIDI box. My hardware programming was at a higher level, so it’s gonna be fun. I hope.

          We have an offer to upgrade the Windows on Julie’s laptop to 8. I’m sticking with 7. I have enough grey hair.

          • #6 by Ed on 2013-02-10 - 08:31

            I’m sticking with 7

            You and a lot of others, from what I read. If you want something weird and tablety, you can dual-boot Unity… for free!

      • #7 by ewf on 2013-02-09 - 12:51

        Someone discovered that too many users were able to understand how things work … time for a change!

        • #8 by Ed on 2013-02-09 - 13:56

          time for a change!

          These days, pretty nearly everything the classic books tell you about how Unix-oid systems operate is wrong… and even the more recent references aren’t much help.

          When I unleash Google on a problem, restricting the search to, say, the last year weeds out much of the clutter, but it’s still a challenge. As nearly as I can tell, there’s not much point in actually buying a reference book these days. Sic transit, etc.

  2. #9 by david on 2013-02-09 - 17:42

    Thanks for reminding me why I never, ever upgrade anything unless I absolutely cannot live without some new feature (this happens way less often than you might think, and bugfixes I can generally backport.)

    • #10 by Ed on 2013-02-10 - 08:25

      why I never, ever upgrade anything

      Me, neither!

      This was a fresh install on a new-to-me Optiplex, replacing something from about 2006 that was running Xubuntu 10.10 and falling off the thick edge of the wedge. It had increasing trouble installing software that wasn’t in an Ubuntu repository: out-of-date libraries and suchlike. Given the fragility of X vs. multiple monitors, I expected trouble and I definitely wasn’t disappointed.

  3. #11 by przemek on 2013-02-12 - 11:01

    You can always mess with X from the text consoles. It used to be that consoles 1-5 or so were text, and the X ran in Console 6, so if you were in GUI mode you would press Ctrl-Alt-F1 to see the text login prompt; you could go back to X via Alt-F6 (it’s not symmetric because Alt-Fx was supposed to switch consoles except that Alt-Fx is sometimes used in X so they added Ctrl to the required key events).

    More recently, console1 tends to get X and text consoles are on 2-5.

    When you are in the text console, you can killlall X or tellinit 3 to get to text mode. In text mode, startx is supposed to start standard X session, and when it gets killed or dies you get the text prompt back so it’s good for debugging. If there are error messages from X, ‘startx 2>&1 | less’ will capture that output

    • #12 by Ed on 2013-02-12 - 12:22

      You can always mess with X from the text consoles

      I’m a big, big fan of switching to VT1 to get things done when X has a bellyache, but I’ve had limited success with killing / adjusting / restarting X on the fly.

      As nearly as I can tell, all the things that I knew for sure just aren’t so any more, right down to the active run level in graphics mode, which runlevel says is 2, and X accessible on the screen (or whatever) activated with Ctrl-Alt-7.

      Ain’t nothin’ the same any more!

    • #13 by Ed on 2013-02-18 - 07:46

      startx is supposed to start standard X session

      For some reason that I don’t understand, the wait-for-NFS-mount hack I put into the lightdm script occasionally doesn’t trigger, which stalls at the usual text-mode login screen on VT1. Logging in and typing startx doesn’t automagically start lightdm, which produces predictably distressing side effects…

      Everything I thought I knew is definitely wrong and there’s no (easy) way to debug it!

      Fortunately, starting lightdm manually does produce the expected GUI login screen…

  1. Force-fitting a PCI-E Video Card in an Optiplex 780 SFF « The Smell of Molten Projects in the Morning
  2. Dual Monitors: devilspie2 FTW! | The Smell of Molten Projects in the Morning
  3. Devilspie2: Lua Scripts | The Smell of Molten Projects in the Morning