Inconsistent GUIs on Linux
It’s a commonly repeated opinion, that on Linux all application GUIs look different, but on Windows all/most applications feel like Windows applications.
Now obviously people mean the difference between, for instance, KDE and Gnome apps, and they mostly also refer to even more horrible toolkits like whatever it is that xine-ui uses.
But if you actually looked closely at Windows applications, you’d notice that every major MS application uses different toolkits and “skins”, and so do all the other applications from other companies. In fact Win32 only offers a few basic controls, namely:
- push-buttons
- scrollbars
- really basic menus
- combo boxes
The menus that win32 offers are so basic that nobody uses them, they implement their own so they can add things like icons, and menu-separators.
In my opinion, the reasons that Windows applications are consistent are:
- Consistent fonts
- Consistent colours.
Absolutely the number one reason is fonts. Windows offers a default font that GUI controls like menus, buttons and text widgets use. Apparently, the API for drawing text is different on Windows compared to X11 in that it developers end up using the right font when they roll their own widgets. On Windows, all text looks consistent.
Colours are almost as important. On Windows the colorscheme is a globally accesible property, on Linux schemes are toolkit/desktop specific. If toolkits just used the same colours, people wouldn’t notice small, or even larger differences in the widget styling.
So in conclusion, if Linux just standardised fonts and colors I think applications would feel consistent, just like they do on Windows. If toolkits did just these two things, their other differences would not be nearly as noticeable in general use. Frankly I feel if Linux could do these things, we’d be more consistent, since if you use mostly KDE apps, they have far more internal consistency than the Microsoft port-folio.
Disclaimers
Of course there are other more subtle considerations, like one toolkit on linux has 4 pixel bevels. It just looks ugly, there’s no way to hide that. But if it had consistent fonts and colouring it’d look a lot better and would fit in with a KDE desktop more easily.
It is also true that Windows appliations copy whatever is the latest MS-app appearance. MS Office 2003 has a neat style that has rapidly been copied and emulated in all other major toolkits, ie check out the latest version of Delphi, it looks similar to Office 2003, but the similarity is subtely different, eg. menus are narrower and more compact. And this makes sense since MS didn’t release any API or DLL to allow you to use the Office 2003 style, so Borland implemented their own clone. Trolltech even claimed to considering emulating it when I attended their roadshow in Cambridge. My point in this paragraph is that Windows apps emulate a general “Windows” consensus that is defined by MS, so this helps somewhat.
And yes, I’m just ranting an opinion here, maybe someone who reads this would like to do something about it, as I’m not the man for that job.

Thanks for this wonderful explanation! This bothered me for a long time too, but I’m glad someone wrote it in a well readable form.
Biggest difference in Windows GUI’s (except for the Office2003 look that is), are toolkits that have an icon in the OK and Cancel buttons. Or gui’s that still use those old Windows95 toolbar styles.
Diederik August 21st, 2006 at 17:26I think that would not be enough. File dialogs and printing dialogs come to mind. They’re vastly different in KDE and GTK, both in look and in behaviour and funcionality.
Anonymous August 21st, 2006 at 17:29I used to make replies sort of like this on slashdot whenever I’d see someone claiming there are too many toolkits on Linux. They’d inevitably cite some program in Motif that no average user would consider.
So I’d point out that Visual Studio uses a different toolkit than IE, both of which use different toolkits than Office. Firefox is different, windows media player is different, winamp is different, iTunes is different, AOL Instant Messenger is different. Any DVD app you use is different. Adobe uses some of their own stuff that doesn’t look quite right. And if you have any Java apps, they don’t blend either. Et cetera. And lots of the things mentioned above are common occurrences on an average Windows desktop, unlike, say, XPDF, which simply won’t be available by default on a common KDE or Gnome-based distro.
My conclusion always was that Windows apps are so inconsistent as a rule that people just didn’t notice, whereas Linux desktops based around KDE and Gnome are close enough to being consistent that the few odds and ends that aren’t consistent actually get noticed. However, the idea that Linux apps need to be more consistent “like Windows apps,” is absurd, because Windows apps are anything but if you actually look at them.
Anonymous August 21st, 2006 at 18:38What you say is true, only if you are using different tool kits. What you call unstandarized, i call choice.
If an app uses kde it looks just like my other kde apps. If an app uses gnome it looks just like my other gnome apps (which look just like my kde apps thanks to qt-gtk). Or if not for qt-gtk i could use themes in gnome and kde that complement each other such as clearlooks and the gnome equivalent.
Now, if i have a bunch of kde or gnome apps open and i open a native X app or a TK app then it will look off. But those times are rare indeed.
Bearcat M. Sandor August 21st, 2006 at 18:47Not only the font but the API used to render the font.
With my linux desktop, kde apps and gnome apps have different :
- different DPI settings
- different anti-aliasing settings.
If you run the same app under gnome or under kde, it does not have the same look !
Anonymous August 21st, 2006 at 19:45I agree. I setup the Gtk-Qt (or Qt-GTK? the thing to make GTK apps draw with Qt) and eventually I turned it off since its pretty buggy. But what stayed behind was the config file that made all Gtk apps use the colors and fonts of KDE. This made things much better and was really the best part of Gtk-Qt.
Ian Monroe August 21st, 2006 at 20:59I wish colors and fonts settings were accessible through DCOP.
That would allow any scripty to pick up the schema and use that.
If I knew how to pickup the color / font scheme using some simple “shell-command-like” way, things like Plastik skin for YaKuake would actually follow the user’s colors. Unfortunately, now, it comes only in “my” version of plastik.
Here’s to exposing these settings through DBus in KDE4!
Daniel August 21st, 2006 at 22:39Yeah, after using Linux for several years and hearing lots of complaints about GUI inconsistencies, I’ve realized how crappy Windows apps are in this regard.
I honestly think I’ve been pampered by GNOME’s high standard when it comes to GUI consistency.
GameGod August 22nd, 2006 at 3:31Windows actually has more than one widget set: Office has its own widget set implementation, so does (AFAIK) IE. They’re different tookits, just like it happens with gtk/qt. They just _look_ the same. Gnome and KDE could make the world so much better if they shared a sort of “common theme API” so that a theme engine could be used in both desktops - all apps would look the same (except menues etc)
- August 22nd, 2006 at 15:50And don’t you just love the consistency when using another language in Windows. You get really funny results like “Vill du fortsätta”, “Yes/No”. First the message in Swedish and then the choices in English gr8 consistency.
Micke August 23rd, 2006 at 6:50Hell, No! Every Windows box I’ve come across has the same old, same old taudry look that I would find hard to confront on a daily basis year after year, it’s like having a wardrobe full of identical everything just like the TV soaps where it’s used to identify characters, probably with partially sighted viewers in mind. I and I should think most people would not want the same meals to eat every day or the same clothing, so long live variety, said to be the spice of life.
Sid Boyce August 23rd, 2006 at 10:29I believe that if all the toolkits just make everything configurable some distro maintainers (like with SUSE) can make most UIs look and feel the same.
Hans August 23rd, 2006 at 12:08My gripe with Gnome is that I cant get the silly icons on buttons switched off!! (no setting for it, or I cant find it) one of the first things I do in KDE.
This is amazing.
What he’s saying in teh article is that people “think” windows apps are “consistent” because they all use the same fonts, and color scheme and that’s it. Even Firefox (which is what I’m using now) has exactly the same color scheme and font layout as IE, Office, etc. etc. Even though everyone of them have different file, edit, view etc. menus.
People “THINK” Windows is consistent because of that. However, I don’t think Linux needs to or should worry too much about that. Why? Because the appearance is part of what makes Gnome, KDE, XFCE, etc unique. I like KDE, you may like Gnome, and that is fine with me. I believe people need to get a grip and realize that a Gnome app is NOT going to look like a KDE app.
Howard August 23rd, 2006 at 13:20Well, those who say Windows is chaos..I would say there is order in the chaos.
I too like to work on Linux, I’m a moderate geek. But users who are not geeks need consistent look and feel.
Just look at how the ‘O’ and “P” are rendered in the Linux. you need a magnifier to look at the ‘O’.
Please stop comparing with Windows and do something to make it appealing to Windows users (normal ..no geeks)
Also I feel that it’s a conspiracy by geeks at Linux to keep the UI undesirable and revel in their geek snobbery
Siva August 23rd, 2006 at 13:28I guess this is the thing that LINUX users would call as a non-standard gui, that is the differences between KDE and GNOME and what they look like. The interaction with the two is the problem that a person would say, shows a dektop environment that is not consistent. But as far as I can tell and judging by what I see on my own deskto (openSUSE 10.1) kde looks very consistent with the rest of the applications and these are the most used ones for me. For example: Kaffeine, Amarok, kpdf, kopete. And then comes the issue of using Firefox, OpenOffice, Smart, Azureus and so on and so on. On in order for us to have these other applications fit well in KDE we use qt-gtk and even then are limited by a handfull of themes/styles that would make everything look just the same. I had the famous problem of the baghira qt/gtk crash. If I wanted baghira to run on my pc to make everything look neat then nothing that used GTK would open up. That sucked because of the important nature of the apps I wanted to use. And of course I didn’t like the qt/gtk theme. It makes my KDE look like Gnome! That’s exactly what I don’t want”!, so, searching here and there I understood that the GTK engine would not work well with baghira and on a support forum about openSUSE I found a patched qt/gtk library that now makes my shiny desktop have Baghira for every application (you should see FIrefox with this native brushed theme, boy!!!) I have plus I have xgl and compiz-quinn.
Now Windows has an (in my opinion) ugly and difficult to customize gui, if you wanted to do something to change that you have to look for an extra (and often times paid) application. And I agree with the view that applications on windows are not united in the gui. Even windows branded programs have this “problem”. Windows Media Player for example has this very beautiful kind of interface until you open one of its menus and there you see the effort of these good programers who make this very futuristic kind of front interface but don’t work at all at the menus that look just like any other menu in Windows, like the ones you see once you open Internet Explorer.
So, my point is Windows does not have a united graphical interface and if one wants to have that has to do some searching in order to get that unity. KDE/GNOME interfaces are very unique in nature and the many distributions don look very hard for a unified graphical interface between the two, if you want that you have to do some searching too, but the applications will not be paid ones, will be easier to apply to the desktop and theming therefore, will be easier to get. Another thing is that you may not like what’s available to customize your desktop in either OS and will have to live with that until OS developers and Software developers look for unity in the desktop (which most of the time they don’t look for.) Because this may not be an objective when making software.
Andy August 23rd, 2006 at 13:43Siva, I consider myself a geek and this inconsistency is one of the things I despite about the Linux desktop. That’s why I use KDE and I try to keep my usage of GTK programs to a minimum.
Anonymous August 23rd, 2006 at 22:29I’d be intrigued to understand better the differences between what I wrote and what people read.
Max Howell August 25th, 2006 at 14:321. Who said Windows applications aren’t consistent?
Sure there are differences in look and feel but the basics are always there:
a) Menus - all of them have at least File, Edit, View, Help menus in that order
b) Toolbars - if they have it there is a standard one with Open, Save, Print, etc buttons
c) Keyboard shortcuts - In Windows F1 is always Help while in Linux it can even do some horrible things depending on the application used, Ctrl+S is Save, Ctrl+O is Open, hopefully you get the idea
d) Common Dialogs - File, Print and Color picker are the same for all applications except perhaps for some ported ones which do not use system dialogs
e) Fonts - I can’t stress enough how much better font rendering looks in Windows and MacOS than in any Linux distro or desktop environment seen so far and I seen them all
Now to the point of consistency — if you think it is all about look and feel then you do not understand it at all. For people to be productive they have to be able to find things in the same place. People like order. If you want people to change from one flavor of something to another, you copy the interface, instead of designing a new one.
It is easy to prove this, just take a car, reverse the gas and brake pedals and see how many good drivers will be able to successfully drive such car.
Sure they will adapt but they will have to waste considerable time and effort, making the whole idea of transition to a new sistem mighty unpopular.
Moreover, changing the interface is justified only if it enables people to do more or to do it easier. Otherwise it is a waste of time and energy.
2. Who said freedom of choice?
Sure we all like the freedom of choice but face it — not all of us are smart enough to be given that freedom. People get confused by too many choices. You surely remember the story about a donkey which died from hunger because he couldn’t decide which haystack he liked more?
Same thing in Linux. You have Gnome and KDE. Both serve the same basic purpose — they let you launch applications, arrange files and windows. All other differences are unimportant for the user as long as that job is performed correctly. With that in mind why do we need two (or even more) desktop environments?
Compare latest Mac OS codenamed Leopard and Linux and observe the completely opposite philosophy:
- In Linux user has to be able to pick right download of the application he wants to use. First he has to chose between various CPU architectures, then he has to pick executable based on whether it has been linked to static or dynamic libraries, then the right toolkit for the desktop environment he uses and lastly if there is no prebuilt binary for his distribution he has to download source and to spend hours chasing library dependencies and compiling it. If the application is good, he will forget that unpleasant experience but if it is lousy (as most of them are) guess how many other applications he will bother to try?
- On the other side, on Mac you have universal binaries. With the advent of Leopard one executable can work on 32-bit and 64-bit platform no matter if it is powered by Power PC or Intel CPU. Moreover, there is only one GUI and the user is spared all the trouble I mentioned above.
Open source community is not recognizing this problem, instead it further magnifies it by splitting the existing well known projects. Consider the split of X Server. Now we have two X’s to pick from. That is not helping anyone.
I am a developer and I have used Windows for a long time, and I have tested most of the Linux distributions. After being through all that, if I had to chose beween paying for Windows, paying for Mac OS, and not having to pay a dime for Linux I would chose Mac OS. It is the only OS which is user-centric enough and which is developing in the right direction to deserve my effort of adapting to be able to use it.
If you try to analyze the situation by comparison, in the year 1998 you had DOS and Windows 98 GUI was sitting on top of it. You now have console with several shells and X server + XYZ desktop environments and window managers sitting on it and it is year 2006. You call that a progress? Well I don’t. So, like it or not, Linux still has a long way to go.
Igor August 27th, 2006 at 8:48This is a quality read:
Igor August 27th, 2006 at 9:01http://cs.anu.edu.au/~Hugh.Fisher/rants/1fui.html
KDE and Gnome have been doing duplicated job all the time because they try to invent the wheel everytime they can. Linux would be much better and less confusing if they work together and stop doing the same thing over and over again. Users don`t care about your freedom of choice or any other excuse you may have. They just want something aesthetically nice that does the job.
Opinion September 4th, 2006 at 14:14To the last guy: your anger doesn’t help anybody, I suggest you become more informed, there isn’t as much duplication as you pretend, and much of that isn’t as bad as you pretend. Sure some is wasted, maybe a lot, but this is the nature of Open Source and frankly, human nature too.
Calm down, and start being helpful instead of a hindrance, because to be honest, your current attitude is pathetic and just gets in the way of those people who are actually contributing.
Max Howell September 4th, 2006 at 16:10Igor: He doesn’t seem to really know what he’s talking about. His point is ok, one UI would be great, but I think my point is more accurate, all that actually matters in terms of aesthetic consistency is fonts and colours.
If you look at Windows carefully, this is mostly all that is consistent.
WRT API, Windows has a common font API, which means all the many, many higher level toolkits look the same. He seems to claim that everyone uses Win32 and that Win32 provides everything, which simply isn’t true, especially nowadays.
And WRT your first post, I can’t respect much of what you said seeing as you both didn’t read my post, and also didn’t show any impartiality in any of your feedback.
My tentative reaction is that you have some points, and I agree, although it had nothing to do with my blog post. However Windows is not as consistent as you think. Also I use OSX regularly and my GF does fulltime, we don’t agree with you that it is a very good UI experience. What Apple have is an eye for detail, but they often put form over function, and don’t always pick the best solution for a UI. I think what they generally achieve though is a better UI than most of the competition.
Anyway this topic is very depressing for me, I hoped for some intelligent debate, but all I got was a bunch of knee jerk reactions from a bunch of irrational fanboys.
Max Howell September 4th, 2006 at 16:15First I’ve got to say I don’t want this to sound angry or anything it just seems you’ve missed some things in your analysis. I’d prefer not waste words and dance around facts so here they are.
I’ve been a software developer for the last 16 years. All of that time I’ve used Dos/Windows, however 3 years ago I started exploring various unix environments (Solaris, Mac OS X, Linux), and I have to say you’re just plain wrong. Windows apps almost all have the system render things like menus, dialogs, and virtually all other controls. About the only thing most developers render themselves are document views.
Yes, windows media player is different but it’s not really that different it uses standard menus and controls and just hides them when they aren’t being used.
Office 2003 does have a new style but it’s a system style and any application can use it.
Which brings up another point that proves applications let the system render mostly everything. When new versions of windows come out and you run an old program it get’s the new decorations ,dialogs, menu styles, and controls.
Obviously developers can deviate from this standard and render windows in any shape they feel like and display controls however they choose. Things like winamp and firefox do this. Even this still uses a standard system api. That means that if a new version of windows needs to handle your wierd shaped window in a different way the system already has the change in place and you don’t need to update your program.
As for java applications sure they’ve got their own separate style that’s the point of java, much like the point of qt and the gnome themeing stuff (metacity maybe?). It ensures a consistent look and feel for that program wherever the program is run. It does exactly the opposite of what a window manager/decorator does.
@Micke
Tom September 9th, 2006 at 19:38The reason the message is translated and the response isn’t is because the developer or translator didn’t do his/her job. The application supplies the message text and the system supplies the response text.
Actually Tom, you’re wrong. When you upgrade Windows all that looks new is pushbuttons, scrollbars, window decorations and some other widgets, I suspect tabs but I’ve never tried to do those with Win32 so I’m not sure. As I said before, Win32 does provide a menu API, but since it doesn’t support things like icons or separators, nobody uses it. MFC implements a better menu system, .NET does too, so you end up with some consistency, but that’s my point, there isn’t a base and single way to do these things.
So yes X11 provides nothing, and Windows provides somethings, so Windows wins, but I don’t care about who wins, I just wanted to point out to people that Windows looks consistent even though it doesn’t actually enforce it as much as people think. And it’s my opinion that this is because developers copy the MS Windows look, and because Windows provides fonts and colours.
You cannot use the Office 2003 style, well as far as I can tell. If you can then it’s a bit crazy that Borland clearly implemented their own version of it for the latest Delphi, and that Trolltech are planning the same thing for Qt (well so they implied at the Cambridge roadshow).
Max Howell September 10th, 2006 at 1:39Personally I don’t care who wins either. If I had to pick windows or x just from a windowing standpoint as opposed to say IO I’d pick X because it’s a little easier to create a custom window than in windows.
You’re absolutely right that Microsoft doesn’t enforce alot of what people think and neither does Apple. I think their developers just follow the standards because they’re there. I think if there were a cohesive linux standard that a majority of distributions adhered to it then more linux apps would follow it. Unfortunately too many distributions ignore the LSB and HFS in part or whole so even they aren’t as good as they could be.
I had some friends using the office2003 style but I’m not sure on the specifics. If I see them again I’ll ask but it should just be a matter of poking around in the right dlls.
Either way thanks for actually reading what I wrote.
Tom September 12th, 2006 at 17:53[...] a commonly repeated opinion, that on Linux all application GUIs look different, but on Windows all/most applications feel like Windows applications. [...]
:: News : Desktop : Inconsistent GUIs on Linux May 10th, 2007 at 18:47