questions and sundry gripes about X11 multihead (it's a rant)

Brent Busby <[email protected]> Sun, 29 Dec 2013 23:51:03 -0600 (CST)
Newsgroups gmane.linux.gentoo.desktop
Message-ID <[email protected]>
After years of assuming I'd probably never set my system up with 
multiple monitors, I've decided to go ahead and do it.  I've watched 
with some interest as various new schemes for doing it have emerged over 
the years (Xinerama, and now lately RandR), but I've always assumed that 
if nothing else, good old Zaphod mode would always be around, since it's 
built right into the way X11 numbers $DISPLAY (0:0, 0:1, 0:2...etc.). 
It's been around so long, it's older than Linux itself.

Lately, I've been reading a lot of listserv and newsgroup posts from 
developers telling various people in forums that if they want Zaphod 
mode, they're more or less strange odd creatures who ought to be ashamed 
of themselves.  The driver developers don't want to support it anymore. 
It's not so much a problem in the X server as in each of the individual 
video drivers for the various cards.  I've probably read seven or eight 
different threads like this now, so it's odd that the common trend in 
all of them is that each of these users is told no one else but them 
uses it.  (Apparently a lot do.)

Anyway, Zaphod is what I want.  I don't care that it won't let me drag 
windows between monitors.  That's precisely the advantage of it.  Many 
applications are written with such an assumption of a single display 
that it's best not to disappoint them.  I don't want to worry about what 
a fullscreen game will think of my multihead setup.  I don't want to see 
dialog windows (or anything else really) popping up, half on one monitor 
and half on another.  I don't want to have to setup the arrangement of 
my desktop so that it's arranged to not look rediculous at the point 
where the two monitors divide the screen.  It's all just simpler if we 
have two screens that are completely separate, and the only magic object 
that's able to move between them is the mouse pointer.

X11 has been able to do this since the 80's.

But now we're in a brave new world where "nobody wants to do that" 
(other than seven or eight people on various forums, and those are just 
the ones who complained).  I suppose I shouldn't be surprised.  They say 
we have Wayland in our future too, which we're assured will have some 
kind of way to run apps on a remote desktop that will certainly be at 
least as good as running a VNC app on Windows (oh joy).  While we're at 
it, why don't we get rid of this multiple desktops thing that most X11 
window managers support -- nobody does that on Windows either, so surely 
that's probably another thing that nobody on Linux really uses.  We 
should definitely find all the window managers that support that and 
strip that feature out of them for everyone's own good.

Ok, I suppose I should quit ranting.  It's just been a trend now for the 
past five years or so that I've been seeing upstream developers making 
"improvements" to Linux that are so basic to the infrastructure that no 
distro can fight them (PolicyKit, Wayland, goodbye Zaphod, udev, etc.). 
I normally don't complain about what the developers do, since it's not 
me doing the programming, but I think we should be able to make an 
exception for things that, a) affect us all, and b) are so basic to the 
way modern Linux systems work that not even the leadership of a major 
distro can say jack about it.  In cases like this, I think we should 
have a right to complain, because in this instance, saying that if you 
don't like it you can start your own fork is like saying that you're 
free to fork the entire GNU/Linux platform.  Technically it's true, but 
it's also not reasonable or helpful.  (Nobody is going to do that.)

So I am a bit disappointed when they decide behavior that's been an 
assumed part of the way Unix systems act for over twenty years is 
something nobody cares about, when then users complain, each user is 
told individually that they're the only ones who use that feature...all 
of them.

I'm not complaining that we have RandR now.  I think it's great.  One of 
X11's greatest weaknesses has always been that before now, you couldn't 
really make any big configuration changes while the X server is running. 
Now, thanks to RandR, you can do almost anything with your desktop 
running and active, and you don't even need root access.  You can't 
configure Zaphod type multihead that way, but that's fine -- you 
couldn't do that before either (nothing gained, nothing lost).  But 
RandR lets you make almost any other desktop geometry change as a 
regular user without restarting X, and I think that's great.

RandR (and its predecessor, Xinerama) both assume though that if you're 
doing multihead, you want one big screen that spans multiple monitors. 
Nice if that's what you want, but as detailed above, there are good 
reasons why you might prefer otherwise.  For example, on my system, I 
have a landscape mode main monitor, and a secondary monitor rotated 
sideways (portrait mode) to the left of it.  That means that if I were 
to adopt some kind of RandR/Xinerama type spanned desktop, I'd have a 
choice:  I could have a desktop that's shaped like some kind of "L", or 
a desktop that's shaped like a sideways "T".  I don't think I really 
like either of those very much.  It's very weird, and many of my apps 
will probably think so too, especially when I try to fullscreen their 
windows.  Instead of desktops shaped like alphabet soup, why not have 
separate logical screens?  I don't mind that I can't move windows 
between them.  I don't want the desktops to know about eachother anyway. 
It's simpler that way.

There are Xinerama "hints" that apps which support Xinerama are supposed 
to use to help with this, which I think RandR is supposed to respect. 
The problem with this is the same as the problem with Wayland's 
expectation that clients will take care of their own network 
transparency needs:  As soon as you leave it to the individual programs, 
you will have varying levels of support in each one.  Some will be 
paragons of good behavior, others will be useless.  You can only make a 
feature truly available to all when it's provided as an OS feature. 
There will still be programs that misbehave, but they'll have to try 
much harder at it.

I think I'm probably most irked by the claims being made by some 
developers that X doesn't feature network transparency anyway, thus 
they're not really taking away anything that we really had.  This, in 
spite of the daily experiences of anyone who's ever done 'ssh -Y' and 
seen that, shockingly, it actually works pretty well.

-- 
+ Brent A. Busby	 + "We've all heard that a million monkeys
+ Sr. UNIX Systems Admin +  banging on a million typewriters will
+ University of Chicago	 +  eventually reproduce the entire works of
+ James Franck Institute +  Shakespeare.  Now, thanks to the Internet,
+ Materials Research Ctr +  we know this is not true." -Robert Wilensky