January 29, 2009

The Joy of X

I've been doing some work with Lenny in its current pre-released state. It's actually pretty stable and usable, with one 1000-pound gorilla exception: X.

In case you are as new to Linux as I was last year, the X Window System (or simply X) is the name of the service that provides graphics in Linux. There used to be competing flavors of X, but now the world has pretty much settled on the version offered by the X.Org project. In contrast with the myriad choices for file managers, text editors, window managers, etc. that characterizes the rest of Linux, if you want graphics (i.e., GUI), you need to deal with X, and you will almost certainly be dealing with X.Org's implementation.

Right now I kinda wish you didn't.

The 1000-pound issue with the latest (i.e., found in Lenny) version of X involves automatic modes detection. In Etch, when you installed X the installer ran a script that made a reasonable guess concerning what your video system was capable of and then asked you if it got it right. Then it would write the data to /etc/X11/xorg.conf and use that data when delivering services. If you changed/added monitors or video cards you had to rerun the config routine with

# dpkg-reconfigure -phigh xserver-xorg

(as root) and that would generate a new xorg.conf file. The syntax of the xorg.conf file is really painful, especially for your grandmother, but if for some reason you needed to optimize some settings manually, you could. This hasn't been needed on any of the four SkinnyDebbie systems I use. Overall, the arrangement was not ideal, but it was workable.

Then the X people decided to make it ideal. The idea(l) is that the video system should tell the X server what the video system is capable of when the X-session starts up, and X should then use that data. If you change/add hardware, all you need to do is restart your X session. Beautiful.

Except in my Lenny experience a lot of video cards and monitors (especially slightly older ones) do not (correctly) tell the system what they are able to do. And while you can still hand-edit the xorg.conf file to force it to tell X what the video system can do, there is no way to get the data into the xorg.conf file without teaching your grandmother the painful xorg.conf syntax. In other words as near as I can tell, dpkg-reconfigure -phigh xserver-xorg doesn't have a "manual override" mode. Ugh.

Just as bad:
The standard Linux program for resizing/rotating your display is called xrandr. Among its jobs are reporting back to you what the X system says you can set for resolution and refresh rate and allowing you to select the mode you want to use. Except it hasn't worked with any setup I've used using totally autoconfigured X.

I really, really hope this one gets worked out.

No comments: