Like most long-time computer users, I remember the good old days when it took five minutes to boot my PS/2 machine into Windows 3.11 for Workgroups, and running Word and Excel at the same time was about as adventuresome as one could get on a machine. I remember being amazed at how I could play Tetris while installing my first Linux distribution (Caldera OpenLinux, made by--shhh!--SCO), which convinced me forever that Linux was better at handling system resources.
We have all become accustomed to having new features added to our operating systems and applications: plug and play, USB support, browser extensions, docking station support, dual-head display settings. It's a nice feeling to play with new tools.
Except, of course, when some of these features are removed in newer versions of the software later on.
That is, unfortunately, the case for the last two features on my up-to-date openSUSE system. Once upon a time, I could hot/warm undock my laptop from its docking station with the push of a button (and vice versa) and have the display settings immediately adjust to the new configuration. Now, I can't.
I could also set up dual-head display on my docked laptop just once and have it boot to the correct settings no matter what the configuration was. Since 11.2, I had to set the configurations with xrandr every time I use two monitors. Which is usually every day.
This is a little bit frustrating for me, because once upon a time I could do all of these things practically out of the box with openSUSE (or other distributions). It worked, and life was good. So, where are they now?
The reason, I have learned for both of these issues, is related: the openSUSE team decided to remove xorg.conf and the SaX2 configuration tool beginning at openSUSE 11.2 and replace them with the Hardware Abstraction Layer (HAL) system. Now, I have heard that there were a lot of good reasons for this, and indeed, HAL has been in openSUSE since 10.0, though not as the primary device manager--until now.
From what I have been able to glean, the new solution to my problem is to get into the policy files HAL uses and configure them so the changes I need will be persistent between sessions. Prior to this, SaX2 would edit the xorg.conf file in much the same way. It was a bit advanced, but the GUI app made it relatively simple.
Now, however, I am having trouble finding any documentation on how to configure those policy files, and some of the links to people.freedesktop.org that look promising appear to be broken of late.
So, the real solution? Since I upgraded to openSUSE 11.2 instead of doing a clean install, I still have SaX2 available, and I can re-create the settings under xorg.conf. xorg.conf will override HAL, and make my changes session-proof.
But it shouldn't have to be this way. Moving to a new system is all well and good, if it's more efficient, but shouldn't at least the same functionality come across? Is it necessary to have to resort to older tools to keep features on our machines?
This is a problem that's not just endemic to openSUSE, so don't think I am picking on just them. There are examples of this all over the open source (and even proprietary) software world: features that once worked but were sacrificed in order to build something in a completely different way. These are not just bugs in the new version, but planned decisions.
This is why I believe the user experience is such a key part of the development process. When developers think about the feature set as a whole instead of their own little corners of the code, then things like this are bound to happen less. Or, if they do happen, at least the users might find out why.