banner
Previous Page
PCLinuxOS Magazine
PCLinuxOS
Article List
Disclaimer
Next Page

Happy 25th Birthday, KDE!


by Paul Arnote (parnote)


On October 14, 1996, KDE was born.

The brainchild of Matthias Ettrich, KDE stands for Kool Desktop Environment, at least according to the "KDE Timeline" on the KDE website. The interview in the April 2003 edition of Linux Journal gives a slightly different accounting of where the KDE name came from, however. Whatever the history of the name is, KDE has found a niche in the Linux world, and given Linux users everywhere access to a modern, customizable, rich, and full featured desktop environment.

Today, KDE is a stable and popular Linux desktop environment. To say it's full featured would be an understatement. In fact, for some users, there's "too much" eye candy (a.k.a. flash, sparkle and glitz), and it distracts from performing necessary computing tasks. But many others find great solace in using KDE and all of its features. It is one of the most popular desktop environments out there for Linux. In fact, it is the "flagship" desktop environment for PCLinuxOS.



Matthias Ettrich

The German-born Ettrich was a computer science student at a university in southern Germany. He posted a "call for programmers" in the de.comp.os.linux.misc usenet user group. Here is his post:

-------------------------------------------
New Project: Kool Desktop Environment (KDE)
-------------------------------------------

Programmers wanted!

Motivation
----------

Unix popularity grows thanks to the free variants, mostly Linux. But still a consistent, nice looking free desktop-environment is missing. There are several nice either free or low-priced applications available, so that Linux/X11 would almost fit everybody's needs if we could offer a real GUI.

Of course there are GUI's. There is the Common Desktop Environment (much too expensive), Looking Glas (not too expensive but not really the solution), and several free X-Filemanagers that are almost GUI's. Moxfm for example is very well done, but unfortunately it is based on Motif. Anyway, the question is: What is a GUI? What should a GUI be?

First of all, since there are a lot of misunderstandings on this topic, what is NOT a GUI:

- the X-Window-System is NOT a GUI. It's what its name says: A Window system

- Motif is NOT a GUI. They tried to create a GUI when they made Motif, but unfortunately they couldn't really agree, so they released Motif as Widget-Library with a Window-Manager. Much later they completed Motif with the CDE, but too late, since Windows already runs on the majority of desktops.

- Window-managers are NOT GUI's. They are (better: should be) small programs that handle the windows. It's not really the idea to hack a lot of stuff into them.

IMHO a GUI should offer a complete, graphical environment. It should allow a user to do his everyday tasks with it, like starting applications, reading mail, configuring his desktop, editing some files, deleting some files, look at some pictures, etc. All parts must fit together and work together. A nice button with a nice "Editor"-icon isn't not at all a graphical user environment if it invokes "xterm -e vi". Maybe you have been disappointed long time ago too, when you installed X with a nice window manager, clicked on that beautiful "Help"-Icon ... chrk chrk (the hard disk)...an ugly, unusable, weird xman appeared on the desktop :-(

A GUI for end users
------------------

The idea is NOT to create a GUI for the complete UNIX-system or the System-Administrator. For that purpose the UNIX-CLI with thousands of tools and scripting languages is much better. The idea is to create a GUI for an END USER. Somebody who wants to browse the web with Linux, write some letters and play some nice games.

I really believed that was even yet possible with Linux until I configured my girlfriend's Box. Well, I didn't notice anymore that I work with lots of different kind of menus, scrollbars and text widgets. I already know that some widgets need to be under the mouse when they should get the keyevents, some sliders wants the middle mouse for dragging and some text widgets only want emacs-bindings and don't understand keys like "pos1" or "end". And selecting some text is different everywhere, too. Even the menus and buttons (for exampel Xaw, Fvwm, XForms, Motif) behave completely differently.

One word to the Athena-Widgets: Although there are a few nice applications available that use these "widgets" we should really get rid of them. Thinking that "Athena is a widget-library" is a similar misunderstanding like "X is a GUI". Athena is a very old example of how widget libraries could be implemented with Xlib and Xt. It's more or less a online-documentation for Widget-Set-Programmers, but not a tool for application-programmers. Unfortunately, the old Unix problem, so good online-documentation that people used it for applications.

So one of the major goals is to provide a modern and common look & feel for all the applications. And this is exactly the reason why this project is different from older attempts.

Since a few weeks a really great new widget library is available free in source and price for free software development. Check out http://www.troll.no.

The stuff is called "Qt" and is really a revolution in programming X. It's an almost complete, fully C++ Widget-library that implements a slightly improved Motif look and feel, or, switchable during startup, Windows 95.

The fact that it is done by a company (Troll Tech) is IMO a great advantage. We have the sources and a superb library, they have beta testers. But they also spend their WHOLE TIME in improving the library. They also give great support. That means, Qt is also interesting for commercial applications. A real alternative to the terrible Motif :) But the greatest pro for Qt is the way it is programmed. It's really a very easy-to-use powerful C++-library.

Qt is also portable, yet to Windows95/NT, but you do not have to worry about that. It's very easy to use UNIX/X specific things in programming, so porting to NT is hardly possible :-)

I really recommend looking at this library. It has IMO the power to become the leading library for free software development. And it's a way to escape the TCL/TK monsters that try to slow down all our processors and eat up our memory...

It's really time yet to standardize the desktop somewhat. It's nonsense to load 10 different widgets into memory for the same task. Imagine this desktop:

- fvwm (own widgets)
- rxvt (own widgets)
- tgif (own widgets)
- xv (own widgets)
- ghostview (athena widgets)
- lyx (xforms widgets)
- xftp (motif widgets)
- textedit (xview widgets)
- arena (own widgets)

One may argue that a usual UNIX-Box has enough memory to handle all these different kinds of widgets. Even if this might be correct, the really annoying thing is that all these widgets (menus, buttons, scrollbars, etc.) behave slightly differently. And this isn't only an academic example, I've really seen such desktops :-}

I know we couldn't get rid of this chaos at once, but my dream is a coexistence between Motif and Qt.


The Kool Desktop Environment (KDE)
----------------------------------

I don't have the time to do this all alone (also since LyX is my main project). But a thing like a Desktop Environment can easily be cut into lots of parts. There is probably a part for you, too! If you want to learn some X-programming, why not doing a small, neat project for the KDE? If you know others who like to programm something, please prevent them from writing the 1004th tetris games or the 768th minesweeper clone ;-) Think we also have enough XBiffs yet...

So here is my project list so far. Probably there are even more things to do that would fit great into the KDE. It's a very open project.

- Panel:

The basic application. Run as FvwmModule (at the beginning). Offers a combination between Windows95 and CDE. I think about a small taskbar at the bottom and a kind of CDE-panel on the top of the screen. The panel has graphical icon menus on the left (similar to GoodStuff) to launch applications, 4 buttons in the middle to switch to other virtual desktops and few icons for often needed applications on the right. There is for example a mail-icon that also indicates new mail, a wastebasket to open the delete-folder (that also indicates when it isn't empty and is capable of drag'n'drop). Maybe an analog clock with date at the very right. Also a nice special icon for exiting the environment or locking the screen. All the stuff is completely configurable via GUI. I'm also thinking about solutions, that only available applications can be installed on the desktop and that new applications appear on the desktop automatically.

I started to work on this panel, but would of course love some help. There are also a lot of smaller things to do, like a tool to choose a background pixmap (for each virtual desktop) etc.

Also nice icons are needed!

- Filemanager

Another major application inside the KDE. The idea is not to create a powerful high-end graphical bash-replacement (like tkdesk tries to be), but a nice looking easy-to-use filemanager for simple tasks. Simple tasks are mainly deleting some files, copying some files, copying some files on the disk, starting applications by clicking on a file (for example ghostview for postscript files or xli for gifs, etc).

I'm thinking about nice windows, one for each directory, that shows icons for every file. It should be possible to drag files around (either copy or move), even between different windows. Another important point is the support of the floppy-disk, so that mounting/unmounting is done user-transparent.

Dragging of icons should be done in a nice way, that means moving around a special window (see Qt's xshape example), NOT like xfm or xfilemanager by setting another monochrome bitmap for the cursor.

So it will also be possible to put files as icons on the desktop. This is IMO a very nice feature. Since applications are launched by the panel, it's even clear that icons are real data-objects. With fvwm-1 and the FvwmFileMgr it wasn't really clear whether an icon is yet a file or an iconified window.

Drag'n'drop inside a Qt application isn't really difficult. The filemanager is IMO a very nice and not too time consuming project.

Who wants it?

- mail client

A really comfortable mail client. IMO the most comfortable mail client for X is yet XF-Mail. And the author is willing to port it to Qt when the KDE-project starts! But he asks for some assistance (for example for coding the small popups, etc.)

- easy text editor

Very small but important project. An editor that fits the needs of those who have to edit a text file once in a month and didn't find the time yet to learn vi (and don't have the time to wait for x-emacs to start, and don't have the memory to use a motif-static-nedit, and don't have the cpu-power and memory to use a tk-monster like tkedit,...)

Unfortunately the Qt multiline-textwidget isn't available in Qt-1.0, but Troll-Tech already announced the beta-testing. So the text editor can be started in a few weeks, too.

- Terminal

Similar to the CDE terminal program. A kind of xterm with a nice menu bar to set the font, exit, etc. Nice project, get the xterm sources and add a GUI with Qt!

- Image viewer

The application that will be launched as default from the filemanager for gifs, jpegs and all this. Well, xv is shareware and really needs quite a long time for startup. But there is a plain Xlib program without any menues or buttons called "xli". Get the sources and make it user friendly with Qt!

- Lots of small other tools:

* xdvi with Qt-Gui
* ghostview with Qt-Gui
* xmag with Qt-Gui
* whatever you want

- Hypertext Help System

A complete desktop environment needs a nice hypertext online help. I think the best choice would be HTML (>= 2.0). So a free Qt-based html-viewer would be a great idea. It might be possible to use the Arena-sources, but the arena needs very long for startup. Maybe it would be best to start from scratch. Qt offers excellent functions for dealing with different fonts. For a help system HTML 2.0 is more than enough, some nice search function added and that's it. Since it is also possible to convert the obsolete troff man-pages to HTML, we can also integrate the original UNIX help system.

BTW: There is a Troll Tech Qt-competition (look at their webpages). The best application (not only functionality, but also design counts. Just porting an existing great application to Qt won't probably be enough :-( ) wins $2000 and a few Qt on NT licenses (worth another $2000). They also mentioned a browser-project as an example. So a nice HTML-browser in Qt, ready in January may be worth $4000 (This includes selling the unneeded NT licenses ;-) )

- Window Manager

At the beginning, the KDE panel will work as an Fvwm-Module. When this is done, a lot of stuff can be stripped from the bloated fvwm window manager. We don't need anymore fvwm-menus, icon handling and zillions of configurable things. We need a small, reliable windowmanager. So maybe stripping all unnecessary stuff from fvwm will make sense in a while. But this may come very last.

- System Tools

Whatever a user, or you, might need. A graphical password comes to my mind. But probably there are a lot more! Maybe this will lead to a little system administration tool someday.

- Games

We have yet a nice tetris game (an Qt example program). What is needed is a nice set of small games like solitaire (please with nice cards that can be really dragged!). There are several nice card games available for X, for example xpat2. So why not take the cards from them and write a real solitaire games, very similar to MS-Solitaire. I really had to install Wine sometimes just to play solitaire, what an overhead! But other games are needed, too. Take xmris, pacman, etc. add a nice GUI. Or write some from scratch. Whatever you want :)

- Icons

A set of nice icons. 3D-pixmaps are quite a good start (but why should the button be inside a pixmap, if we use a toolkit with buttons???)

- Documentation

A documentation project is always a good thing to have. But before we should clarify how the hypertext help system should look like. We can then start with documentation pages in the chosen HTML-subset and for example use arean as help browser. Anyway we need some application to document first.

- Web-Pages / Ftp Server / Administration

We need a server for the files and web pages that inform us about the state of the project. Especially what projects are currently worked on and what projects still wait for somebody to do them. I set up a preliminary homepage on http://www-pu.informatik.uni-tuebingen.de/users/ettrich that just contains this posting and a few links. I may set up real webpages for the very beginning but I would be very happy if I could concentrate on discussion and coding. So if there is someone out there on the net who likes to design and maintain web pages, here is a job for him :)

- Discussion

The most important topic :-) If you are interested please join the mailing list k...@fiwi02.wiwi.uni-tuebingen.de Subscribing can be done by sending a mail with in *Body*: subscribe to kde-r...@fiwi02.wiwi.uni-tuebingen.de.

- Applications

When the KDE gets widely accepted, new (free) applications will hopefully be based on Qt, too, to fit with the comfortable and pleasant look and feel of the desktop. We may for example port LyX to Qt, so that a comfortable word processor is available. But that is still in discussion in the LyX Team.

A nice vector-orientated drawing tool would also be fine. Well, Xfig is a powerful but ugly monster. But there is "tgif", a very powerful, easy touse but ugly program. The author doesn't like the idea of adding a Qt GUI for the menus, icons and scrollbars, since Qt is C++ and he wants to keep tgif plain C, since on some sites no C++ compiler is available. Well, the KDE doesn't really aim at these old and weird UNIX boxes (also I think a g++ is almost everywhere available). But maybe the tgif-author agrees when somebody else adds a nice GUI to tgif (the sources are free, don't know whether this is GPL). Since tgif yet implements its own GUI this shouldn't be too difficult. It's really easy with Qt to access plain Xlib functionality and functions, so not very much will have to be rewritten. Also C++ makes it very easy to include plain C code.

What about an easy to use, nice newsreader similar to knews? Could also be integrated into the KDE. ... and ... and ... and.

So there is a lot of work (and fun) to do! If you are interested, please join the mailing list. If we get about 20-30 people we could start. And probably before 24th December the net-community will give itself another nice and longtime-needed gift.

The stuff will be distributed under the terms of the GPL.

I admit the whole thing sounds a bit like fantasy. But it is very serious from my side. Everybody I'm talking to in the net would LOVE a somewhat cleaner desktop. Qt is the chance to realize this. So let us join our rare sparetime and just do it!

Hopefully looking forward to lots of follow ups and replies!

Regards,

Matthias Ettrich
(ett...@informatik.uni-tuebingen.de)

BTW: Usually these postings get a lot of answers like "Use a Mac if you want a GUI, CLI rules!", "I like thousands of different widgets-libraries on my desktop, if you are too stupid to learn them, you should use windoze", "RAM prices are so low, I only use static motif programs", "You will never succeed, so better stop before the beginning", "Why Qt? I prefer schnurz-purz-widgets with xyz-lisp-shell. GPL! Check it out!", etc. Thanks for not sending these as follow up to this posting :-) I know I'm a dreamer...

BTW2: You might wonder why I'm so against Tk. Well, I don't like the philosophy: Tk's doesn't have a textwidget, for example, but a slow word processor. Same with other widgets. In combination with TCL the programs become slow and ugly (of course there are exceptions). I didn't yet see any application that uses Tk from C++ or C, although an API seems to exist. TCL/TK is very useful for prototyping. Ideal for example for kernel configuration. And since Tk looks little similar to Motif, the widgets are also quite easy to use. But I really don't like any TCL/Tk application to stay permanently on the desktop. And Qt is much easier (at least as easy) to program. Check it out!

BTW3: I don't have any connections to Troll Tech, I just like their product (look at the sources: really high quality!) and their kind of marketing: free source code for free software.

As you can tell by reading through his initial proposal, KDE was fairly well thought out and thought through. Ettrich paid attention to many details that most starting a project of this scope would be likely to overlook, such as the help system.


The KDE Timeline

So, let's look back at some of the more significant entries on the timeline of how KDE/Plasma came to be.

On October 14, 1996, Matthias Ettrich announced the creation of the Kool Desktop Environment (KDE), a graphical interface for Unix systems, built with Qt and C ++ and designed for the end user. The name "KDE" was a pun on the graphic environment CDE, which was proprietary at the time.

KDE One Conference. From August, 28th to September, 1st, 1997, 15 KDE developers met in Arnsberg, Germany, to discuss design issues, the future of the project, and - of course - to code a lot. Some areas in which a lot of progress has been made are KFM stability, internationalization and mime-type detection. In addition, work in progress has been presented and discussed.



October 14, 1997. The first beta version of KDE was released. The first stable version of KDE 1.0 was released on July 12, 1998.

April, 1999. The dragon, Konqi, debuts as the new animated assistant to the KDE Help Center.

October, 1999. The KDE Two Conference, consisting of the KDE developers, meets in Erlangen, Germany.

May 12, 2000. The first beta release of KDE 2.0 (formally known as KDE 1.90) is released.

July 2000. The KDE Three Beta Conference is held in Trysil, Norway for the KDE developers.



October 23, 2000. KDE 2.0 released. Konqueror, the combination file manager and web browser, makes its debut. KOffice also debuts.

April 30, 2001. The developers start referring to KDE as the "KDE Project."

March 2002. The KDE Three developer's meeting occurs in Nuremberg, Germany. The developers needed to migrate the KDE 2.x code to the new Qt 3 libraries.



April 3, 2002. KDE 3.0 released to the public, after porting the KDE 2.0 code over to use the new Qt 3 libraries.

January 28, 2003. KDE 3.1 released. Some of the enhancements included tabbed browsing in Konqueror, Exchange 2000 compatibility for KOrganizer, a new window style called Keramik, and a new icon style, called Crystal Icons.

November 29, 2005. KDE 3.5 released. The developers expected this version of KDE to last users a couple of years, while they started work on KDE 4.x.

July 2006. KDE Four Core Meeting. The developers met in Trysil, Norway to work on the development of KDE 4 and to stabilize some of the core libraries.

May 2007. The Alpha 1 version of KDE 4 was announced.



January 11, 2008. KDE 4.0 was released. Besides the many new capabilities introduced in KDE 4, this is the first time KDE users heard about Plasma, the new desktop shell. Dolphin becomes the official file manager, replacing Konqueror. Instead, Konqueror is relegated to a primary role of web browser, even though it can also be used as a file manager.

July 29, 2008. KDE 4.1 released. Now, instead of referring to KDE as the "KDE Project," the emphasis is shifted to referring to it as "KDE Community."

November 2009. The community announced changes to its brand. The name "K Desktop Environment" had become ambiguous and obsolete and is replaced by "KDE". The name "KDE" is no longer just referring to a desktop environment, but now represents both the community and the project umbrella supported by this community. Subsequently, from version 4.3.4 on, KDE announcements began to refer to the whole suite of products as ‘KDE Software Compilation' (KDE SC). Currently, this trend is abandoned.

August 10, 2010. KDE SC 4.5.0 released. This version came with a special desktop version, called "Plasma Netbook Workspaces 4.5.0," designed especially for the then-popular netbook variations of computers that were all the rage.

December 2010. KOffice Suite is replaced with Calligra Suite.



July 15, 2014. The new Plasma 5 desktop is released to the public. This features a desktop experience that is most familiar to today's KDE users.

December 8, 2015. Plasma 5.5 released. This includes system-wide updates and increased stability, as well as a reworked set of Breeze icons.

Of course, there are many other KDE sentinel events that fill in the gaps in the above timeline. I have tried to hit the highlights here. You can see the entire KDE Timeline here.


Summary

The KDE desktop environment has experienced tremendous growth over the past 25 years. Over that time, it has provided Linux users with a modern and stable desktop that has evolved as user interface design has evolved.

I remember when Windows 7 was announced. There were a LOT of people remarking how similar Windows 7 looked to KDE SC 4. After all, they do say that imitation is the greatest form of flattery.

So, here's to you, KDE! Let's hope that the next 25 years are as fruitful and enjoyable as your first 25 years.



Previous Page              Top              Next Page