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