Linux GUIs are, according to the Slashdot weenies, anyway, the one thing hindering adoption of desktop Linux. And I can sort of see their point.

Why do Linux GUIs suck?

It's not because of XFree86, as again some of the Slashdot weenies have said. XFree86 is a great, network transparent graphics architecture. Sure, it's not suited to games and whatnot but the Xouvert project seems to rectify some of these problems, and whatever happens, Xouvert will make the Linux desktop slightly more beautiful.

The problem with the Linux GUIs isn't because of X, or any other one software stumbling block. In actual fact, it is due to what some regard as one of Linux's trump cards-its compatibility and diversity.

How does this diversity and compatibility make Linux GUIs suck?

Linux-really X-can support a neverending stream of window managers, from minimalistic WM only things (like OpenBox and Fluxbox) to fully fledged MS Windows aping desktop environments, like KDE and GNOME. The problem is that all of these systems use radically different toolkits-that is, they all use different programming code to render what, to the user, is just a button, scrollbar or slider (known as a widget). KDE uses Trolltech's QT toolkit to draw its widgets, while GNOME uses GTK. Each of these have a veritable amount of applications, tied to that particular toolkit. For instance, for email I like to use Ximian Evolution, which was made for GNOME. To play my music, I like to use JuK, which was made for KDE. Then I might want to use BitTorrent, which uses a different GTK version to GNOME and therefore looks ever so slightly different. And then, to muddy the waters, I might want to watch CNNNN in RealPlayer-and RealPlayer uses neither QT or GTK.

"So?", you might be saying. Well, the thing is, all of these toolkits look radically different. QT and GTK look drop dead gorgeous at their best, but they still look different to each other-one might have round buttons and a blue colour scheme, the other a yellow colour scheme with square buttons. RealPlayer uses Motif, which is completely butt-ugly (if fast). And following on from all of these comes the variety of "1 app only" toolkits. The DVD and video player Xine uses its own widgets, which no other app uses (these are also butt-ugly, but less so than Motif). While a Linux veteran might consider it a niggle, to a Linux newbie it ranges from ugly to intolerable.

The newbie likes consistency. He/she likes the file menu to be in the right place, and the save button to be just so. He wants the file save dialogs to look the same whether he's using the GIMP or Kopete. The GTK file selector and the QT one look, once again, totally different and work in a completely different manner. This results in confusion. Again, the hardened Linux vet* might be OK with this, and takes it as part of life, but it's likely to piss off the newbie to the extent that they just get pissed off with the whole Linux idea and walk away.

So what needs to be done?

To get Linux on the desktop we need to, if not eliminate one of the major toolkits (I vote GTK, if only because I adore KDE), at least make them look the same or combine them into one. Red Hat did the former and created the Bluecurve theme. This was a nice idea, but in practise GTK and QT apps still looked quite different when you put them side to side, and Motif apps were eye-rapingly ugly as usual.

As I said at the start, X is not the problem, though nor is it the solution. The solution lies with accepting that we have to standardise on one toolkit at the expense of all others if the Linux community is to gain consistency through all applications and therefore users on the desktop.

*I could make a joke about taking a penguin to a hardened vet, but that sounds quite disturbing now I think of it...
artoodeetoo: The GTKQT thing has a few rough edges. I used it for a while and I'm of the firm opinion that it's crap. The OO.o stuff looks cool though.

I've been using using Linux with GUIs for about four years now. Many of the e2 nodes dealing with GNU/Linux in general that I've seen are from several years ago, whining about technology that has evolved dramatically in the past few years (and indeed, the same arguments exist still outside of e2). Here's one that's more recent, however.

Interestingly, the competing toolkit problem looks to be one that too will soon be overcome. But in the past three days, the KDE people have announced the QtGTK library which integrates the Qt and Glib event loops (the dialogs, DCOP, etc.); the GTK-Qt Theme Engine, which is a GTK theme that acts as a connectivity layer to Qt, making GTK apps mimic the look of Qt ones; and the OpenOffice.org KDE Native Widget Framework, which will integrate Qt settings into OpenOffice.org.

Of course, this is all initial-release alpha stuff right now, and I wouldn't recommend casual users even try to get the aforementioned software running on their boxen--I certainly won't just yet. Still, given the pace at which I've seen Free/Open Source Software develop over the years, hopefully they'll be release-ready soon.


Update: lj (who is doubtless more technically savvy than I am) says: Something to consider about wrapping GTK into QT is that the two toolkits are unlikely to be 100% compatible in behaviour - with Java/AWT, it was supposed to be possible to create an application that behaved like whatever operating it was being run on, but what you actually ended up with was an application that behaved like a Java application, and looked superficially similar to the OS it was running on (for example, running on Windows with Windows widgets, but no file menu).
(In my opinion), unless the two toolkits can agree on how applications should behave as well as look, there will always be incosistencies when apps from each toolkit are used side-by-side.

My reply: I may very well be way off-base here, but I believe this is what the QtGTK library is supposed to accomplish: "This makes it possible to freely use KDE dialogs, DCOP, KDE IO and other KDE technology in any GTK+ application just like they would be native." (see QtGTK article below)


Further reading:
  • KDE.OpenOffice.org: Native Widget Framework Available (8 Jan 2004): http://dot.kde.org/1073557624/
  • GTK-Qt Theme Engine Does Cross-Desktop Styling (8 Jan 2004): http://dot.kde.org/1073599985/
  • QtGTK: GTK+ Apps Get Free Reign on KDE Technology (9 Jan 2004): http://dot.kde.org/1073668213/
  • /.: GNOME/KDE Integration Gets A Few Boosts (9 Jan 2004): http://developers.slashdot.org/article.pl?sid=04/01/10/1750257

Log in or register to write something here or to contact authors.