KDE, the K Desktop Environment, is one of the two most prominent Free Software desktop systems for *nix systems, the other being GNOME. KDE is the older of the two, and is based on the free Qt toolkit developed by Troll Tech. As a desktop environment, it contains a window manager, a panel, a development framework, and numerous applications, all built upon X11.
In November 1996, Matthias Ettrich sent out an email to the LyX development list describing his plan for a new piece of desktop software, based on Qt, called the Kool Desktop Environment. (Kool rather than Cool because there was already a CDE) Some parts of the message are interesting historically, such as the dream of a "coexistance between Qt and Motif", which essentially happened but with GTK+ supplanting Motif, and many other parts accurately predict the direction KDE has taken in the past seven years.
After much work, KDE 1.0 was released in July 1998. But in the intervening two years, a wide-ranging controversy sprung up around the KDE project. The KDE developers were releasing their code under the GNU GPL, but the Qt library it linked to was released under a non-free, GPL-incompatible license. This arrangement violates the GPL and so KDE was, in the opinion of many, illegal to use. Two responses to this began, one very successful, and one that was not very successful. First, the existance but questionable legality of KDE caused a number of hackers, allied with the FSF, to start another desktop project, GNOME, based on the nascent Gimp Toolkit, GTK+. The original intent was to supplant KDE, though the developers quickly shifted to a goal of building the best desktop they can. The other response was the creation of the Harmony project, to build a source-compatible, GPL clone of Qt for use by KDE. This effort fizzled out fairly quickly, due in no small part by the admirable actions of Troll Tech.
KDE 1.0 (and later 1.1) were excellent programs for their time, including a nice if bare-bones window manager, an interesting panel application having both a CDE-style icon bar and a Win32-style task bar, a usable file manager, and a number of applications based on Qt with some KDE-only additions. However, the release of Qt 2.0 and growing shortcomings of the KDE 1.x infrastructure caused the developers to begin a major overhaul of the entire desktop environment. In addition, Qt 2.0 eased the legality controversy, being released under a Free Software licence called the QPL. Now KDE was no longer non-Free, but there was still a problem. In the evaluation of the FSF, the terms of the QPL are incompatible with those of the GPL. Flame wars raged as the KDE developers patiently built the new KDE. Finally, in September 2000, Troll Tech released Qt 2.2 under a dual licence, QPL and GPL, thus making it GPL-compatible. Many groups that had previously avoided KDE, Debian in particular, now saw no reason not to include it. KDE 2.0 was released in late October 2000, introducing the architecture that remains in KDE to this day.
KDE 2.0 was much less mature than KDE 1.1, so despite the better-designed infrastructure and refined appearance it was considerably buggier and had fewer features. KDE 2.0.1 in December 2000 cleaned up many of the bugs, but did not restore many of the features from 1.1 that remained unimplemented. KDE 2.1 was released in February 2001, adding back much that was removed and improving a number of the core KDE applications, especially the file manager/web browser Konqueror. The August 2001 release of KDE 2.2 brought the KDE 2 platform to full maturity, surpassing KDE 1 in all areas except speed. It also brought the beginnings of Xft and antialiasing support for fonts.
It was about this time that Troll Tech released Qt 3.0. A much smaller revision than Qt 2.0, Qt 3.0 was almost, but not quite, source compatible with Qt 2.0. After some debate on this issue, it was decided that the next release of KDE would be a KDE 3.0 using Qt 3 and thus breaking source and binary compatibility. KDE 3.0 was released in April 2002 and was found to be a great improvement over KDE 2.2. Speed was one important area in which KDE 3.0 improved over 2.2; the general resource requirements of KDE 3 are lower than those of KDE 2. The clipboard system was changed to match the freedesktop.org specification, and a new, modular printing system was added. All of the included applications were refined, especially Konqueror, which gained a number of useful new features.
KDE 3.1 was then released in January 2003. A refinement of KDE 3.0, it boasted a new default widget style, Keramik, a new default icon set, Crystal, tab browsing in Konqueror, and further speed and memory footprint optimisations. The first major changes from the KDE Usability Project also appeared in KDE 3.1. The fontconfig/Xft2 system was adopted for managing fonts in KDE in KDE 3.1, alleviating many of the problems in font management under X11.
KDE 3.2 was released on February 3, 2004. Another incremental improvement over KDE 3.1, KDE 3.2 again improves the speed and memory usage of the desktop environment. Major new applications, including the JuK music player, the Kopete multi-protocol instant messenger, and the Kontact integrated PIM, were added in version 3.2. The new Plastik widget style debuted in version 3.2, believed by many to be the next default KDE widget set. More usability and accesibility improvements were made, including a partial rework of the KDE Control Centre.
KDE 3.3, the latest version, was released on August 19, 2004. A smaller release than 3.2, it consists mainly of bugfixes and cleanups. A new theme manager was introduced, replacing a relic from KDE 1.1 that didn't end up being removed. The most significant improvements were made in Kontact, which is much better integrated than in its initial release. Python bindings joined the KDE distribution in 3.3, and Konqueror recieved a Safari/Firefox-like Google search box. KDE 3.3 was originally planned to be the last of the 3.x series, but eventually it was decided to continue with KDE 3.4.
KDE 3.4 was released in March 16, 2005. It was a larger change than 3.3, but smaller than 3.2. Experimental support for the new features in the X.org 6.8 X server was added to the window manager, and some of the applications were also modified to use the new X features. Text-to-speech support for accessibility was added to the core of the desktop, accompanying a number of smaller accessibility improvements. An RSS feed aggregator, Akregator, was added to the set of network tools, and the Wallet system for storage of passwords was given a better UI and integration with more applications, such as KMail. 3.4 was also the debut of a new, more stylized KDE logo. The KDE developers are presently working on a final release in the KDE 3 series, 3.5, as well as porting to the new version of Qt as the foundation for a new major version, KDE 4.
KDE is, of course, built on the rich and featureful Qt toolkit. Qt thus forms the lowest architectural level of the KDE desktop and KDE applications. On top of Qt, a number of system services are built, collectively referred to as kdelibs. kdelibs consists of several separate libraries each implementing some of these system services. kdecore is the most basic of these, providing a robust configuration system, file handling, and the framework for an application to use the more advanced KDE facilities. kdeui implements many UI elements that extend the existing Qt elements and provide elements that Qt does not. A notable feature of the kdeui library is the XML GUI feature, that uses a high-level description of the UI in XML to generate the actual user-visible UI elements. These two libraries form the basis of all KDE applications.
KParts, DCOP, and KIO are the keys to KDE's much-vaunted integration. They make it as easy as possible for KDE applications to work together to produce a seamless interface to the user. The new Kontact integrated PIM is a good example of the power of KDE's architecture, as it is built up from the pre-existing mail, calendar, address book, etc. programs that have existed in KDE for some time now.
KDE also has the powerful aRts multimedia architecture. Though lacking the end-to-end thoroughness of GStreamer, aRts is reasonably well designed and provides both audio and video decoding and playback as well as a mixer daemon in the mould of esd. In more recent versions, it can integrate with the Xine libraries to play a larger variety of formats and codecs. aRts is used as a backend for the KDE media player Noatun and the minimal media player Kaboodle.
KDE comes with a full-featured suite of applications, above the basics required to maintain the desktop environment. A window manager, a file manager, a display manager, a control centre, a help system, and a panel (Kicker) are provided as the basis for the environment, and a text editor, a web browser, and a terminal emulator are also included in the base packages. KDE also comes with a bunch of adminstration utilities and desktop utilities. A variety of network clients is provided, including a mail client, a Usenet client (with an interesting name), and an instant messaging client. Many small games are included, from a Solitare program to a Monopoly clone. Many graphical utilities, including viewers for image files, DVI files, PostScript files, and, in KDE 3.2, PDF files, are part of the KDE distribution, and so is a reasonably full-featured PIM suite. The large number of programs included in the 'core' KDE release cause some accusations of bloatware, but it is possible to install only the components of KDE you actually want, with a granularity that depends on your distribution.
Outside the main KDE release, there are several closely associated applications. Sharing the KDE release cycle closely are the Quanta Plus web development environment, the K3B CD authoring software, and the KDevelop IDE. On its own, less frequent, release cycle is the KOffice suite, that seeks to build a componentised, integrated, from scratch, replacement for the widely-used Microsoft Office suite available on other platforms. Similarly, the powerful amaroK music manager/player has its own, more frequent, release cycle.
KDE may currently be the most-used open source desktop environment available, although GNOME is making major inroads. It includes a versatile application framework and a wealth of applications. Furthermore, through the basic architecture of X11, applications written for GNOME will run under KDE without problems. Less minimalist and more configurable than XFCE or GNOME, its versatility has given it a place on my desktop through four years and three major versions.
This writeup is copyright 2004 D.G. Roberge and is released under the Creative Commons Attribution-NonCommercial-ShareAlike licence. Details can be found at http://creativecommons.org/licenses/by-nc-sa/2.0/ .