Archive for July 1st, 2006

One more Gnome rant

I was thinking yesterday about Matthew Garrett who made a Guadec presentation about “Bluetooth in Gnome” and how it can become more complete. For once more though I could not stop thinking that without integration with the underlying system you can never have a GUI that works as the user expects it. The way Windows and OSX and BeOS work that is.

For example, you might have a Bluetooth/IrDA GUI to send files to another such device, but you don’t have a GUI to start/stop the Bluetooth service or to pair the two devices in the first place. Or, you might have gnome-power-manager, but you don’t have a GUI to really configure ACPI (g-p-m expects that the underlying scripts are already configured by the distro). Or that you might have a mouse preference panel, but you don’t have a way to configure the laptop’s touchpad properly. How many times we have asked for a feature in a Gnome app and the reply we got was “I can’t add this feature because it’s distro-specific“.

Some will take the easy way out and say: “this is the distribution’s job”. I beg to differ: Different implementations/scripts by different distros have created the incompatible forked chaos we have today in desktop Linux. LSB came in too late and it doesn’t cover all aspects. If Gnome was to have GUIs for more underlying works, it would force other distros to become more compatible. At the end, the user and the desktop will be the winner of the situation.

In essence, I would like to see Gnome fully supporting the internals of the 3 most popular Linux distros: with Ubuntu, SuSE and Fedora being the primary targets (and Debian and Mandriva being the underdogs). Please note that I don’t use any of these distros, I use Arch Linux instead. But I recognize the need for uniformity and access to the internals of the most popular systems. The desktop Linux will gain more followers if the GUI was more powerful and did what the user needed to do instead of having to resort to either the command line or the distro-specific preference panels (which sometimes don’t exist for specific operations especially in the Ubuntu’s case).

Please be very careful: I am not suggesting that Gnome (or KDE for that matter) rewrites all the system panels of these distros. This is NOT what I advocate. What I am suggesting though is that Gnome finds a way of “understanding” the architecture/scripts/philosophy of these few supported distros and so when there is a GUI Gnome app that needs to be written, it uses 100% the system in a way that gives power to the user the way he would have that power with OSX and Windows. For example, if a user wants to send a file via Bluetooth, Gnome should ask “Bluetooth is currently OFF. Start it? Yes/No” and have Gnome “understand” where the service is and how to start it (given that the permissions of the system allow this operation). You see, without such power within Gnome and its apps, having a dry “obex BT file exchange” utility only does HALF of the job for that user that recently came from Windows or OSX. Integration is what’s missing from the Linux desktop today.

Here is my train of thought: if Gnome could do the above, it would properly serve 90% of its desktop Linux users. If Gnome continues to try to be as OS/distro-non-specific as it is today, it will cover 100% of the userbase, but it will serve them in a mediocre way. If there are 10 million Gnome users today, it means that it screws 9 million users because of that other 1 million users who use the least popular OSes/distros (distros that will eventually add support for the new Gnome requirements anyway). It’s a hard decision to take, but this is the kind of decision that a true leader would be able to get. Unfortunately, Gnome is leaderless. Its Foundation can’t get such decisions and the maintainers don’t have such power.

And we, the users, are back to the command line, editing Xorg.conf to make our touchpad scroll. :P