Hidden Preferences Considered Harmful
I’ve been meaning for a while to write this, but this recent discussion about the Evolution default signature has prompted me to actually do so.
The typical argument for not exposing a preference in the UI goes like this: the user can set the wrong setting by accident and make the application unusable. So for power users, there is gconf or manually editing configuration files. Let’s hide it. Unfortunately, this mindset only works in the ideal world of software designers where nobody ever seeks to escape their Vision™.
Real-world users want power over their own systems. They want to personalize their desktops and make them stand out from the default settings. They want to tailor their systems into configurations convenient for them—with their own shortcuts, colors, and button placement. If you take this freedom away from them when there is no technical obstacle for that, you’re provoking them into seeking other, potentially more dangerous ways to get what they want.
Here is a concrete example. In comments to my previous post, I saw these comments:
And yep, in every install of Ubuntu 10.04, the very first thing I have to do is download Ubuntu Tweak and revert the Window button placement. Sure, I could use another theme, but Ambiance is otherwise pretty good.
...
Worth noting that I didn’t even know about Ubuntu-Tweak until the buttons thread raised its existence. As long as Ubuntu-Tweak exists with options like this, I’m sad to say that Ayatana has failed.
Let me reiterate. All this fuss over the button order placement that ended with the bug being stamped as “Opinion(*)” (read: feel free to continue your discussion but we’re ignoring you) could have been avoided if only an option existed in the UI to configure button placement. No, I don’t mean descending into the depths of gconf and changing the option there. I can understand not exposing settings that actually have the potential to leave the user with an unusable system; but seriously, window buttons? There is another well-known desktop environment that allows the user to do that, and it’s completely harmless.
So the user, disgruntled, downloaded a third-party application that was rejected from the Ubuntu archive on the grounds of inherent security issues, like Automatix before it. In doing so, they created a bigger problem than hiding the preference was supposed to solve in the first place—not to mention, possibly left the user disgruntled with their own system for treating them like a child that needs to be kept away from dangerous toys.
Ultimately, the problem with software like Automatix and Ubuntu Tweak is that it exists—or rather, that users feel they have the need to exist, that there is a genuine need they solve. Fortunately, the need for Automatix (which was the more dangerous of the two) was more or less removed by the introduction of the restricted extras packages and the spread of the PPA culture, but Ubuntu Tweak combines its own independent package and package source manager (dangerous) with minor UI preferences that should have been in their corresponding configuration utilities in the first place (completely harmless). Ubuntu has the power to make that second part redundant by putting their preferences where they belong: into configuration windows for these programs themselves.
If this was being done out of fear of diverging too far from upstream GNOME (perhaps I should do a separate post on that), I’d at least semi-understand. But this applies to Ayatana’s original initiatives too. Notify OSD was introduced in Jaunty. That’s a year and a half ago. Since then, Ubuntu has got indicators, and Unity and the global menu were written from scratch in the span of a single release cycle. And yet Notify OSD remains completely unconfigurable, with all its preferences hardcoded. There are no technical reasons for not making it configurable. Third-party enthusiasts have done so. The first links a typical user will find in Google for “configure notify-osd” will point to PPAs, to a third-party application that configures a patched non-standard version.
In short, when the user faces a desktop feature they wish to configure but can’t, they won’t just give up—they’ll turn to the Internet for information on how to do so. And more often they not, the advice they’ll get will be dubious or dangerous. Third-party software, manually tweaking gconf (which gives users unpleasant memories of the dreaded Windows registry), hackish shell scripts, manually editing text configuration files, executing commands as root… These solutions have far worse possible repercussions than just introducing one stupid little checkbox ever would.
This is a case where technical issues are overblown, and people switch distributions and desktop environments out of perceived “we know better than you” developer mentality. Put the users in control; they deserve that much.
(*) I find it enlightening that Launchpad worked perfectly well without yet another “won’t fix” status until an evident shift developed in the developer attitude. Incidentally, for my little personal project (Steadyflow), I wanted a bug status that would mean “I have a different opinion than the users, but I’ll leave this bug open and change my mind if enough people are in favor of this change.” Turned out there wasn’t one.


Oh hey, anybody found what binary I need to edit with ghex to make the arrow go away on the gnome main menu panel applet? Just kidding. I mean, I’m not really kidding, but that’s not the point. Seriously, let me know.
But I really agree with this. Window control positions? one radio button. Global menu bar should also be one radio button.
Third party software is, basically, dangerous. If users are installing it, Ubuntu should provide them the opportunity to tell Canonical why so it can be resolved.