KDE 3 was released only a few months ago, and it is, to date, the most successful version of the series, serving more than 50% of the Unix and Linux desktops, surpassing Gnome (~21%) and the rest of the gang. However, KDE is not perfect, and still not as comfortable as the Windows or as sexy as the MacOSX desktops. It lacks two things: integration with the underlying system and UI polishing. Today, I will mostly talk about the polishing part, as a lot has been already said elsewhere about the seemingly unsolvable integration issue (because of the modularity and completely independant/remote software projects.) Update: And as I was just publishing this article, KDE 3.1-Alpha was released. I hope that some of my recommendations will make it to the final version of KDE 3.1.
I served as a User Interface designer while I was working in a knowledge system project in UK and I worked as a web developer and web designer for the last 5-6 years. This article is merely a suggestion to the TrollTech and KDE developers on how to polish the current UI a bit. In some places, I might suggest quite significant changes, while in others, the changes would be trivial and as easy as pie, but still important. I hope that these developers will read my recommendations and we won’t fall prey to the popular “KDE developers do not care about the users” mentality that has headlined several news sites lately. This is just an article with some constructive critisism.
What is a good User Interface? Well, in order to answer that, we will have to take into account that different people like different shapes, colors and functionality. This article is just my personal opinion, how I would like KDE to evolve in the future. I am sure that other users would like to see other, different types of evolution. However, we can’t deny the fact that some basic rules of UI design should never be ignored. Aside of personal opinions and preferences, there are some basic UI rules. The problem is, KDE, by not being… perfect (who’s perfect anyway? :), does exhibit some problems in its UI.
This is a screenshot of my modified KDE 3.0.2 installation
Desktop Context Menu
Let’s start with the Desktop context menu dialog. In my opinion, this context menu is bloated with too many options in the root level, some unecessarily placed there, as they belong elsewhere. Example: The “Enable Desktop Menu” option, while it might be an important option for some (however, I never met anyone who actually uses that screen space sucker Desktop Menu), it is not an option that you will enable/disable all the time. It has no place in the main context menu. Its place is on the “Configure Desktop…” preference panel.
As for the “Configure Desktop…” itself, it should have been called “Desktop Properties” or “Desktop Settings”. “Configure” is a verb. Configure implies that the user knows how to “configure” something. Believe me, for a Unix newcomer, “configure” is a dreadful verb. It is a scary command. It might sound funny to you, but never underestimate the psychology of the user. UI is all about psychology. It is all about shapes, colors, pictures, words… Picking the right elements each time is the right way of creating a comfortable desktop environment.
Continuing with the context menu of the desktop, I would like to see the whole bunch of options from “Unclutter Windows” down to “Refresh Desktop” to go under a new submenu. Having these five options on the root of the menu, it just makes the whole panel too cluttered. These options are obviously related to Desktop actions, and they should be together under a new submenu.
What I would additionally like to have in the desktop context menu instead, are the following options:
1. Browse /home. As you can do with BeOS’ Tracker and the KDE’s “Quick Browser”, where by opening submenus, you can navigate to your ~/.
2. Browse /. Same as above, but allows you to navigate through the whole disk. This should only be available for the root user. In other words, put the “Quick Browser” on the desktop context menu.
3. Mount. Under its submenu, list the whole deal of partitions and devices that can be mounted and allow KDE to mount them on demand. Available
only for the root user or for the user with the right priviliages.
4. Add-Ons. This submenu, should be similar to Nautilus’ script folder and to BeOS’ Tracker Add-Ons. Some KPart add-ons (not necessarily stand-alone applications) will be able to do some great utility job. For example, select a few files and then pick these addons, addons like a GUI grep application, KRename, Burn to CD, Open Terminal (in current folder), Run Command (yes, this should be here and not on the root menu), email to, Compress, and whatever else you think it would fit as useful tool that can be applied to files and/or directories.
Additionally, I do not think that the “Help on the Desktop” is a good idea to be there at all times. It may be wise to leave the option there for the first week of using KDE, but then it should automatically removed from there, and only be accessible via the central Help docs.
The “Create New” submenu needs some polishing as well. Seperate the system entries from the entries created by third party applications with a menu seperator. For example, “Link to Application” is down the end of the menu, while it is something used quite regularly, and much more than the “CD/DVD-Rom Device” option which is more accessible from that menu, but it would only used pretty much, once every other moon.
Icon Context Menu
For the context menu when you are right clicking to desktop icon, I would suggest that as KDE’s got a special menu for the Trash icon, the same should be for any directory link on the desktop. For example, almost everyone’s got a “Home” folder link on the desktop. The deal would be to be able to “Browse” via the context menu in that directory, and wherever you click after that, to open a new window in Konqueror or Terminal on the directory you browsed to. Do the same for any other folder/device icon on the desktop. Allow to browse in it and then open it with Konqueror or Terminal if necessary.
Overall changes for the icons on the desktop:
1. “New Window” should be renamed to Open or Run.
2. Create a “Copy To” option that is able to navigate on your home folder and then copy the selected file(s) wherever you selected. Default navigation root for the user should be its Home directory, and / for the root user. Add the same option in the context menu for all files/directories/icons, on the Konqueror view as well, not just for the desktop.
3. Do the same as above, but this time for “Move to”.
4. “Edit File Type” should be part of the “Properties”, not stand alone. Properties panel needs almost complete redesign as well, but I won’t get into it this time.
5. “Open With…” should be a submenu and has listed the other optional applications (as found already in the system’s settings) that are able to open the selected file(s), and after using a seperator, then offer the option to open the panel to manually select which application you want to open your file. The way it is now done, it is too much time consumed for the user, while the whole functionality of this option and the alternative opening applications is already there, found on the “File Assosiations” Konqueror’s KPart!
6. The Add-Ons submenu with the useful utilities, should be available in this menu as well.
Kicker is pretty powerful, but its default set-up is far from satisfying. There are, by default, 6-7 big icons on the left hand side, that auto-zoom in a pretty ugly way (zooming from 32 pixels to 48 pixels, without an intermediate “morphing”/transition that would help in the smoothness of the actual zooming). First thing I do after I get to a new KDE version, is turn that feature off. MacOSX has a similar zooming capability for its dock icons, but at least there, the zooming is done in a nice way, using vectors. Either try to get the zooming right, or do not put it there as default, please. Update: Wow, I just saw this!
My second problem with Kicker is the big buttons next to the “K” menu. They are huge, taking half the Kicker’s screen space on a low res monitor and make the K icon look like just another button, while it is an important menu and should have a seperate look to distinguish it from the rest of the big icons. I would like to suggest to move to the “Quick Launch” solution for these additional buttons (like the terminal, Show Desktop, Konqueror, Kmail etc) which in a medium sized Kicker (48 pixels), it can accomodate two rows of icons at 16 pixels each. There is already a Quick Launch feature on KDE 3 today, but it is buggy and it does not behave as it should (icons just shuffle around by themselves, you can’t add an application that is not part of the KMenu etc). Also, it is important to remember and understand that most Joe Users never ever modify their desktops (or even have the right to modify them in a corporate environment). 90% of users just stay with default settings. This is why the default settings have to be right and serve everyone.
The rest of Kicker is pretty well done, but I would like to suggest four more things:
1. The “Hide Panel” button should only be on the right hand side. Instead of having this huge 48pix (height) button that only hides Kicker on the right, “cut” the button in half and put an arrow looking on the left and one arrow looking to the right, underneath the first arrow. In essense, create two buttons there, which will only take the same screen space as before, but they will have the same functionality like when having two buttons.
2. I really like emulating the OSX Dock look and feel so most of the time, my Kicker is set to about 33% of space of my 1280×1024 desktop. “Expand to Fit Required Size” is ON, however, when I open a new application, Kicker does not resize to accomodate a 150 pixel widget of the Taskbar for the application that I just launched. This is a must-have feature. Kicker should be intelligent enough to know that Taskbar requires more space when a new application was launched creating an entry to the Taskbar, therefore it needs to resize itself. Instead, Taskbar today is just resizing itself (instead of just resize the whole Kicker), creating entries that are as small as 16pixels, making a centered Kicker feature, useless.
3. Please start grouping similar items after 3, 4 or 5 (user selectable) same applications are open, not just after 2.
4. The “tear-off” KMenu is ugly. This dotted option is really archaic looking. Please change it to something more soft, maybe something similar to the shot following down this page.
The Open/Save Dialog
I believe that the biggest problem in this dialog, and a bit laughable from a UI point of view, is the redundancy of the “Home Directory”. In this dialog, it is accessible from three different locations as you can see from the screenshot. Also, KDE should take more initiative and add more “Favorite” places along wth the “Documents,” “Temporary Files,” places: My Music, My Downloads and other options as found appropriate.
The Encoding Selection should be under the “Extras”. The “Detailed/Short View” should be under Extras/View as well. The Preview does not work if one has selected “Separate Directories” from the Extras/View menu. This needs fixing. The Favorites MS Outlook-like bar on the left, need to have a little button like Mozilla has, that it will allow it to autocollapse. The “Preview” button should go on the left or not be there at all. A Preview should appear immediately after one has checked the “Automatic Preview” checkbox. The Preview button is redundant there, and in fact, it confuses the user as it does not even align correctly with the “OK” and “Cancel” buttons underneath it.
The context menu inside the dialog is really poorly designed. When someone has selected some files or directories inside the open/save dialog, almost the same context menu as the one described above for the desktop icons should apply. Instead, what we see here is a mix of options that apply to selected files and to actions that should be done when no files are selected (eg. Back, Parent Directory, Sorting etc). There should be two kinds of context menus there, one for selected files/folders and one for when nothing is selected. Currently everything is in a mix, and nothing is obvious. From usability point of view, this needs fixing ASAP.
To be honest, I am not so sure that having Konqueror being able to do Koffee is a good thing. Konqueror, through its KParts, is able to display from CVS, to FTP, to local files, to images, documents, web pages and much more. This sounds nice. In reality though, it makes Konqueror unmanageable.
There are so many options on its menus that, too frequently, have very little to do with your current action (e.g. web browsing, while I find options on the menus that better apply on local browsing).
1. I want to be able to put the location toolbar next to my icons one, but Konqueror will refuse to do so, even if there is sufficient space for it, because a link inside its History has a long URL making the virtual size of the drop down menu too wide (this is a Qt issue and it needs to be fixed in an API level, I think), confusing the toolbar code.
2. I’ll be damned, but I added a local bookmark through my Save/Open dialog (/home/eugenia), and I cannot see it from the main bookmarks menu on Konqueror. This is not what I call consistency. Even if you have to separate web with local bookmarks through a menu seperator, that local bookmark should be visible from all bookmark menus.
3. Bug report time: If you remove the “Font sizes” toolbar from Konqueror and then you add it back in on the main toolbar, the two font size-related icons are not visible anymore and you will need to restart Konqueror to get them back (this does not happen with other icons/toolbars). I saw there is a bug report for it on the KDE bug database, for months now…
4. Toolbar icons should be by default on 16×16. The current default 22×22 is possibly a bit too big. But this is just a personal preference, I guess.
5. Konqueror does not support “border-collapse: collapse;”. Ok, this is not really a problem, it’s just a good way to ask for support for it as OSNews uses it in its CSS code to make its tables look good. 😉
6. I would like to see KDE have a better integration with the system and be able to have a “Copy Image to Clipboard” from a web page and then be able to paste it on Gimp or in a KOffice document.
And this brings me to the GTK+/Qt issue, which in my view, is an important one.
Copy/Paste between the two popular APIs does not always work. I am not talking about the “X11’s middle-mouse-button paste”, but I am talking about real integration between GTK+ and QT in the API level. It is absolutely unthinkable to use a desktop that launches applications with different look, feel and behaviour. Let’s face it; While KDE has a lot of users, Gnome has a lot of developers. Unix is traditionally C-based, and GTK+ is basically C, while QT is C++. A lot of important applications have been written in GTK+. From Evolution, down to AbiWord, Gnumeric, Mr Project, GTKatalog and a whole bunch of other applications that are forming along with the Qt applications the overall X11 experience. People use both GTK+ and QT applications on their desktop. It is a common fact. And KDE and GTK+ developers should use an intermiediate way of making the copy/paste work well between their applications. Also, the KDE project should create a GTK+ theme for both GTK+ 1.2x and 2.x that is able to somewhat mimick the KDE default theme (colors, widgets etc). The Gnome guys on the other side, should also do the same when they are loading a KDE application and make the KDE application look like a GTK+ one. While differences will still be visible (a theme can never replace a real API/coding integration), but at least it will give a good feeling of consistency on one’s desktop. This “trick” will not only benefit KDE, but Gnome as well, and most of all, the user. And it will help bring Unix a step closer to the desktop in the eyes of the Windows or Mac user who are used to a consistent desktop.
The Looks of the Default KDE
I would like now to take the time and discuss the last three issues I have with KDE 3. While there are a lot of UI clean ups to be made AT ALL levels of KDE (from the system panels/apps down to the included applications), it would take me many hours to analyze all. I would leave the rest of the work for the UI designers of KDE. I just hope that the developers listen to the UI designers, because it is known that developers in general, do not always want to listen to the “artists”. This is a common problem on all co-ordinated open source projects. Developers are coding “for fun”, and take orders by no one. Anyways, this is a completely different issue.
1. Important! The menu entries on every KDE’s applications are extremely close to each other. Give it 4-5 more pixels please! The new Gnome 2.0 does it lovely and correctly in this respect.
2. I hope that donators or even TrollTech themselves will be able to buy some high quality fonts for KDE that are able to AA by default and that are able to installed to the system at the same time as KDE is installed. That Helvetica font just doesn’t cut it anymore in the year 2002.
3. Important No2. The current default theme for KDE is butt ugly. I personally use a (modified) .NET theme that comes with Qt. Even the .Net theme I chose to use in lack of something better, has extreme flaws (no grab bars below windows, extremely flat-looking, the blue selection color is ugly – use a lighter/softer one, the grey color on the left of each menu is too dark), however, it is still better than the default KDE one. I trust that the KDE folks have something better to offer in their future versions. By adding the Crystal icons, maybe SVG support, something as nice as the *modified* .NET
theme I suggest or something completely fresh and interesting looking, would be a welcomed surprise.
Please do not forget what we said about the defaults. If the defaults are not nice or what I consider “right,” they can immediately put off a lot of people. Most users do not care about modifying and changing appearance. The defaults have to be right, and the default KDE overall theme is looking old, tired, and uninteresting.
In the beginning of this long article I quickly spoke about integration. Now that you have read all the above, you might think that if the KDE folks add all these suggestions in the next release, Eugenia (that’s me) will be happy and she will (at last) be convinced that KDE is “ready for the desktop.” I sincerely wish that this would be the case. Unfortunately, it is not. What every X11 desktop environment needs is both polishing and integration with the underlying system. Joe User does not want to type arcane Unix commands to install a new driver, or modify this or that. No matter how easy is for you and me that “./configure; make; make install” it sounds like jibberish to Joe User who recently came from the Windows land. Things how to change the refresh rate or the resolution on X11 (please, don’t give me that ALT+CNTRL+(+)(-))? How to change your graphics card driver? How to change the driver for the sound card? These are all problems that KDE should solve through a GUI solution, no matter if the KDE project thinks that it is not their job to do so.
KDE is today the leading X11 desktop environment, there is no denying in that. With great success, great responsibilities are coming as well. In order to be compared to WindowsXP and MacOSX, it needs to do solve some or all of the above problems. A standard way should be found, that is distribution independant (or, alternatively, distros should follow a standard), so KDE would be able to create such tools. These tools are important for the end user. You can’t and shouldn’t just use DrakConf, Yast2, or apt-get, or portage. These are just tools for four distros, tools incompatible between
them! There are more than 10 important distributions today! What about these rest of distros? There has to be found a unified way, a way that works universally to all these distros, a way endorsed via the desktop environment.
For this plan to work, Linus needs to make some hard choices as well. The Linux driver handle should be made more plug-n-play, more flexible, while there should absolutely not be any driver binary incompatibilities between different sub-versions of the same version kernel (nVidia users have a taste of these headaches). Also, all this library dependancy hell needs to (somehow) go away. Microsoft has solved the issue on XP by including different versions of a library in a single file, and Linux should also pionneer a way that will allow users to move more comfortably around their system and easily install new applications without the fear of dependancy/incompatibility (unresolved symbols anyone, after upgrading to GCC 3.1?).
I am eager to read your comments and opinions on how you think your favorite X11 environment can better itself. What are your likes/dislikes and personal preferences? I certainly took my time this afternoon to explain how I think we can better the Unix desktop. Please use the forum provided and comment on your preferences.