KDE 3.1-RC2: I’m Hammering

As announced at The Dot, KDE 3.1 RC2 is now “Ready For A Hammering.” Well, okay, so I decided to hammer away and here is my preview.


One of the reasons I like GNU/Linux so much is that there is a lot of fresh new stuff coming out for the desktop. The rapid pace of free software development keeps my bleeding edge hunger satisfied. KDE has to be one of the most organized free software projects on the face of this planet. They are like the NVIDIA of the open source world. It’s like they pump out a doubly more powerful product each year, with refreshers every six months. Don’t get me wrong though, this is just a comparison, I’m not sure of the exact figures, but one thing is for sure, KDE releases early and often.

I have been a big fan of KDE since version 2. The last version I used seriously was the Slackware 8.1 provided KDE 3.0.1. Though, I think the 3.0 series is excellent, it still leaves something to desire. As GNOME 2 matured, I turned my attention away from KDE to tinker with GNOME for awhile. As much as I respect GNOME, I think KDE is a more mature desktop environment. KDE’s strong configuration tools are always what keep me coming back. It’s debatable, but KDE is easier to administer than GNOME. Also, the stock configuration seems much more organized and less stripped-down compared to GNOME.

Another thing KDE has over GNOME is it’s file manager/web browser, Konquerer. Nautilus (GNOME’s file manager) is really beginning to come into its own lately, but Konquerer is a much more complete (some might say bloated) file manager implementation, at least for now.

Now that you know why KDE is my preferred desktop, let me share why I turned my attention away from it to test GNOME 2 for awhile. KDE is ugly, GNOME 2 is elegant and simple. This is highly subjective, but KDE leaves much to be desired in terms of user interface aesthetics. Well, this may no longer be the case with the upcoming 3.1 release. After reading Andreas Pour’s “KDE 3.1: The Best KDE Yet” (promo.kde.org/newsforge/kde-3.1.html), I am convinced the folks behind KDE are serious about improving KDE’s look. Hence, my enthusiastic embrace of this latest release candidate.

Installing Qt and arts

KDE 3.1 RC2 is downloadable in source code form only (only Mandrake released binaries so far, I think). Thus, compiling a large package like KDE is never error free (at least while I’m at the keyboard, it isn’t). My current distro favorite of the month is the recent Red Hat 8.0, which sports a spiffy, heavily modified GNOME 2 interface. I have to say, Red Hat 8.0 has become my favorite desktop distro, with Slackware 8.1 being my second favorite desktop distro, and favorite server distro.

My attention span being as short as it is, I decided to download the KDE 3.1 RC2 source code and attempt to get things up and running. This page suggests that you compile arts before anything else (it also tells you witch flags you should configure Qt with). I checked the prerequisites and thought I was ready to go. On first attempt, during ./configure arts complained that I didn’t have the Qt development libraries available. After installing all the KDE development stuff from the Red Hat CDs, arts still refused to configure itself. This was my first mistake. I then attempted to download the most recent stable version of Qt from the Trolltech FTP site. I compiled and installed it, set all the necessary environment variables; arts still wouldn’t configure. After about an hour of fiddling with environment variables, I finally decided to read the configuration error message and try to interpret it. It said: “error: Qt (>= Qt 3.1 (20021021)) (headers and libraries) not found.”

What version of Qt had I just installed? 3.0.6. Idiot! Anyway, after finally realizing that I was installing the wrong version of Qt, I stumbled onto this FTP site. You can imagine my embarrassment when I saw a fresh Qt version 3.1.0-rc3. Hmm, it would make sense that the version of Qt which works with this version of KDE would be in the same download location. After beating myself for wasting half an evening, I decided I had to publicly mention my stupidity so others don’t fall into the same time trap I just did.

After I had configured and installed Qt, I attempted to configure arts once more. I got one last configuration error, only this one wasn’t so aggravating to solve. The configurator complained that arts needed libaudiofile to continue. I downloaded audiofile-0.2.3-1.i386.rpm from oss.sgi.com/projects/audiofile/download/rpm/ and attempted to install it. RPM complained that libaudiofile was already installed and a newer version at that. I quickly realized that I was trying to install the wrong file. Instead, I downloaded audiofile-devel-0.2.3-1.i386.rpm from the same location. Once I had installed it, arts configured and compiled. Finally!

Installing kdelibs

It seems the hardest part about building KDE (and other large programs) from source is solving the initial dependency problems. Once Qt and arts were installed I thought I was set. I wasn’t quite golden yet, though. The kdelibs configurator complained that my version of libART LGPL was too old. I found the most recent version of libART LGPL by searching for “libart” at rpmfind.net, I downloaded and installed libart_lgpl-devel-2.3.10-1.i386.rpm for “Red Hat-8.0 for i386.” The next thing the configurator complained about was my lack of “libxslt 1.0.7 or later.” Again I turned to rpmfind.net and found the file libxslt-devel-1.0.19-1.i386.rpm for “Red Hat-8.0 for i386” by searching for “libxslt-devel.” The last thing the configurator complained about was my lack of a CUPS installation. I opened up Red Hat Menu Icon “Packages” from the “System Settings” menu and proceeded to install CUPS by selecting it from the “Printing Support” section.

Figure 1: Dependency Hell
Figure 1: Dependency Hell

I tried once again to configure kdelibs, no dice. I hit rpmfind.net once again and found a file named cups-devel-1.1.15-10.i386.rpm for Red Hat 8.0. I figured, downloading other programs that had “devel” in the file names solved my other problems, so why should this situation be any different? Yes, as I expected, I needed the CUPS development files. You think I would have learned by now. Anyhow, now that CUPS was fully installed, the kdelibs configuration, compilation, and install finally succeeded and I was in the clear.

Setting up the environment

After compiling and installing kdebase, kdeadmin, kdeutils, and kdenetwork (in that order), I felt I had installed enough KDE packages to give her a brief test drive. I tried to install kdeartwork to see what extra graphical goodies were thrown in, but compilation failed for reasons unknown to me. I also tried to install kdegraphics and kdemultimedia, but they also failed during compilation (the error messages indicated programming errors). I suppose I should file a bug report, this being a release candidate. I had to do one more monotonous thing before being able to witness my labor of love. I had to tweak my environment (mostly path settings) so KDE could find everything it needed to get up and running.

The first thing I did was uninstall all the Red Hat KDE packages just to avoid any potential conflicts. The next thing I did was open up /etc/ld.so.conf and replace /usr/lib/qt3 with the path to my newly installed version of Qt. I installed Qt in /opt/qt, so I replaced /usr/lib/qt3 with: /opt/qt/lib. I also added /opt/kde/lib to make the system aware of the KDE libraries as well. Next, I ran the command /sbin/ldconfig to make the system aware of the changes. Some of the KDE documentation out there recommends that you set an environment variable called LD_LIBRARY_PATH, but if you do the edits mentioned above, I think it nullifies the need to set the LD_LIBRARY_PATH. I’m sure some readers can clarify this in the comments below.

Next, I opened up my ~/.bashrc file and added some environment variables. This is what my .bashrc looks like for a regular non-root user on my system:

# .bashrc
# User specific aliases and functions

KDEDIR="/opt/kde"<br />
QTDIR="/opt/qt"<br />

# Source global definitions<br />
if [ -f /etc/bashrc ]; then<br />
. /etc/bashrc<br />

The code in bold is the most important since KDE and Qt rely on these variables to be set. Please note, I installed KDE in /opt/kde and Qt in /opt/qt. If you use the script above be sure to modify the paths to match the installation directories you chose. Also, if you use a distribution other than Red Hat 8.0, you may want to delete the # Source global definitions section.

The next thing I did was create a .xinitrc file in my home directory. When you startx from the console, X looks for this file for initialization instructions. This .xinitrc basically tells X to execute the startkde script which ensures KDE starts up in an orderly fashion. This is what mine looks like (it’s quite simple):

# .xinitrc

Next, I opened up my /etc/inittab file to change the line, id:5:initdefault: to id:3:initdefault:. This basically tells the system not to start X when it boots up (and also stops the graphical login from starting). Lastly, I created a new user called kde, and placed (with the correct file permissions) the .bashrc and .xinitrc created above into /home/kde. At this point I rebooted my machine, logged in as kde, typed in startx, and a few seconds later I was greeted with the beautiful new KDE splash screen.

So, how does it look!?

Figure 2: Introducing The Beautiful New ksplash
Figure 2: Introducing The Beautiful New ksplash

Like I said, the new KDE splash screen is gorgeous. The previous ksplash was very nice, but this is the best one yet, I think. As long as I’ve been using KDE, the splash graphics have always been a pleasing introduction to KDE. After answering a few very straightforward questions about my preferred language, desktop behavior, and style, I am finally presented with my freshly compiled KDE desktop.


After staring at my beautifully anti-aliased Red Hat desktop for the past few weeks, I immediately noticed the aliased fonts in KDE. After being spoiled with anti-aliased fonts in GNOME and Windows XP for awhile now, it seems like a regression in visual fidelity to have aliased fonts. Also, because of the lack of a variety of high quality, free fonts, the default choice of Helvetica is a shame. Not that Helvetica isn’t a high quality font, it’s just I’m used to having the option of at least being able to apply my favorite font Arial to the desktop out of the box. Though KDE can’t legally include fonts like Microsoft’s Arial, there is a utility called Font Installer in the KDE Control Center that makes it ridiculously simple to import your favorite fonts.

Figure 3: Aliased Helvetica
Figure 3: Aliased Helvetica

At this point I wanted to see if I could recompile Qt with the -xft configuration flag. If I could have gotten Qt to recompile with Xft support, I should have been able to have my anti-aliased fonts back. So I hit rpmfind.net once again and downloaded and installed fontconfig-devel-2.0-3.i386.rpm and Xft-devel-2.0-1.i386.rpm. After struggling with the Qt configurator for about an hour, I was unable to get it to work with Xft. Again, acceptable for a release candidate. Besides, the distros supporting KDE 3.1 probably have more experience solving these types of problems than I do. Furthermore, I think all distros planning to ship KDE 3.1 will, or already have resolved this issue.


The new “Crystal” icon theme that ships with KDE 3.1 RC2 is quite attractive. Looking at the Icons section in the Control Center, “Crystal” is an “Icon Theme by Everaldo and Tackat.” The version is 0.6. As I was browsing KDE-Look.org the other day, I noticed version 0.8 of the Crystal icon theme is now available. I downloaded the file, went into the KDE Control Center, chose Icons, then Install New Theme, pointed the dialog to the file I just downloaded, and the new icons were immediately available! Nice touch.

I think Crystal 0.8 is nicer than 0.6 so I will comment on the newer version. The Crystal icons to me are a mix between XP’s liberal use of gradients and OS X’s use of photo-realism. Though they are reminiscent of icons already present in other operating systems, I have to say their original flavor helps to give KDE it’s own distinct look and feel. Well done Crystal Artists Staff, keep up the good work.

Though the Crystal icon theme is going great lengths to improve KDE’s aesthetic appeal, there are still are annoying inconsistencies. For example, there has always been one icon that aggravates me the most: The Old KDE Utility Icon. It’s the old hammer and wrench utility icon, and it’s still there! I was only able to spot it in one of Konquerer’s menus, but I really wish it would disappear off the face of this earth. The Crystal icons have a wrench image which makes a great replacement.

There are other areas in KDE where the ongoing transition between old and new icons is obvious. I imagine it takes time to create so many icons, but once Crystal covers all bases, KDE will truly become one of the best looking desktops out there.

Another problem I had with the icons is that they appear to have jagged edges. It’s odd because in a recent screenshot the icons look nice and rounded like the ones in the splash screen shot above — mine don’t look like that (see Figure 3). I’m not sure what the cause of this is, but I’m sure it will be worked out once KDE 3.1 final comes out. Also, I’d like to see the most recent Crystal icon theme ship with KDE 3.1, which is likely to happen.

Another icon that bothers me is the Konquerer throbber. You know. That little thing in the top right corner that animates when a page is loading. Well, I have to be honest, Konquerer’s throbber is butt ugly, and it’s still there. It’s not so much the graphic that bothers me, it’s the black background. If the background blended better with the color of the window that surrounds it, I think it could look much better. Right now it just looks like a dark abyss with a 3D flower floating inside of it: The Konquerer Throbber.

I know I’m being picky, but once these and other similar inconsistencies are eliminated, KDE will be gorgeous.

Window dressing

One of my favorite parts of KDE’s new look is the Keramik window decoration. At first I didn’t like the chunkiness of the buttons, but the style is beginning to grow on me like XP’s Luna eventually did. Keramik is great for people who have monitors that can handle a resolution of 1024×768 and up. Not to say that you can’t use Keramik with a smaller monitor, it’s just my personal preference to choose a window decoration that takes up less space when I’m running in a lower resolution. This was the same complaint I had with XP’s Luna interface. There are plenty of other of nice-looking, space efficient window dressings to choose from in KDE, so users with smaller monitors have a choice if they feel Keramik is too beefy.

Figure 4: Voluptuous Keramik
Figure 4: Voluptuous Keramik

Putting the O in OS

With the little time I’ve had with this latest KDE release, I managed to notice some good functional enhancements. Konquerer now has tabbed browsing which Mozilla and Opera users love so much. The Control Center is more organized and more powerful than ever. There also appears to be a new “Desktop Sharing” feature of which I didn’t get a chance to test. Konquerer now has some really cool file previewing options. For example, rolling over thumbnails of documents and images causes an even bigger version of the thumbnail to be shown along with the file’s attributes. There is also a nifty new folder animation. If you’re interested, a nice detailed list of new features can be found here.

KDE also comes stock with a plethora of handy system administration utilities. There is a utility to add and remove users, to check how much disk space you have left, to see how hard your processor is working, to mount/unmount file systems, to see detailed information about your computer’s hardware, and much much more. The aforementioned utilities provide standard UNIX/Linux services, but KDE makes them available in easy to use graphical interfaces. This gives one the choice of being able to administer one’s machine mostly from the desktop, instead of from the command line. Combine these great tools with the top notch KDE Control Center and it’s evident KDE 3.1 may be a big winner among Linux desktop pundits (and command line rookies).

Still a lot to be done

It’s going to be interesting to see if team KDE can get 3.1 out before January 2003. According to their release schedule, it looks as if 3.1 might even be ready as early as late November, or early December. It seems the releases leading up to 3.1 have been on target thus-far, so I don’t see why we won’t be able to play with a stable 3.1 any later than this Christmas.

After several days of hammering KDE 3.1 RC2, it’s evident there’s still a lot of quirks to be worked out, but if team KDE can nix the problems reported here and the majors in their bug database — in the tradition of progress, this will truly be “the best KDE yet.”

About the author
Corey Taylor is a computer science student at UMass/Boston. He dreams of one day being worthy of the title “software engineer,” but for now he is satisfied with all things Internet, and especially website development and design. For more information about what Corey is up to these days, visit his website Gemineye.biz and sign up to the newsletter.


  1. 2002-11-11 8:11 am
  2. 2002-11-11 8:24 am
  3. 2002-11-11 8:27 am
  4. 2002-11-11 9:00 am
  5. 2002-11-11 9:48 am
  6. 2002-11-11 11:22 am
  7. 2002-11-11 11:41 am
  8. 2002-11-11 1:24 pm
  9. 2002-11-11 1:28 pm
  10. 2002-11-11 2:06 pm
  11. 2002-11-11 2:35 pm
  12. 2002-11-11 3:06 pm
  13. 2002-11-11 3:19 pm
  14. 2002-11-11 3:21 pm
  15. 2002-11-11 3:26 pm
  16. 2002-11-11 3:40 pm
  17. 2002-11-11 3:54 pm
  18. 2002-11-11 4:34 pm
  19. 2002-11-11 4:49 pm
  20. 2002-11-11 4:55 pm
  21. 2002-11-11 5:06 pm
  22. 2002-11-11 5:41 pm
  23. 2002-11-11 6:21 pm
  24. 2002-11-11 7:05 pm
  25. 2002-11-11 7:49 pm
  26. 2002-11-11 8:09 pm
  27. 2002-11-11 8:13 pm
  28. 2002-11-11 9:58 pm
  29. 2002-11-11 10:16 pm
  30. 2002-11-11 11:17 pm
  31. 2002-11-11 11:37 pm
  32. 2002-11-11 11:53 pm
  33. 2002-11-12 1:09 am
  34. 2002-11-12 7:45 am
  35. 2002-11-12 8:51 am
  36. 2002-11-12 9:42 am
  37. 2002-11-12 1:53 pm
  38. 2002-11-12 1:53 pm
  39. 2002-11-12 3:11 pm
  40. 2002-11-12 4:12 pm
  41. 2002-11-12 4:26 pm
  42. 2002-11-12 5:18 pm
  43. 2002-11-14 2:08 pm