Mini KDE for a Lightweight Desktop

Do you need a memory hog of a desktop environment simply to run a few essential programs? This experiment says you might not.

Many users need computers only for basic office productivity, Web access and e-mail. Free software for all of these tasks exists, but it has a hidden cost. Often, students, schools and charities can afford only hardware that is five or more years old, with limited CPU power and disk space. As weird as it seems, the latter often is the most serious, apparently unsolvable problem. You may need only five or six small programs, but they are available only in big bundles, which in turn have many more dependencies. The real, total space requirements can be heavy enough to make the installer abort for lack of space.

Often, installing current but feature-light applications is useless. Desktop computers are communication tools. Today, that means, at least, digital signatures, IMAP support, checking one's bank account by way of SSL or XHTML Web forms and so on. It also means support must be provided for OpenDocument, an office file format, default in 2.0, that has raised great interest in the European Union and soon will become an ISO standard.

Installing older distributions is useless for the same reasons and is dangerous to boot: why would people go on-line and expose themselves to a bunch of security holes that have been known about for years? Furthermore, free on-line support for five- and six-year-old code is practically nonexistent, unless you have the time and skills necessary to hack together a fix for yourself.

All this is why, a few years ago, I and others started the RULE Project—to make it possible to use old hardware with current, mainstream GNU/Linux applications by installing only what truly is needed. Our approach, however, offers several advantages to modern hardware as well. First, the RULE Project makes it easier to run any computer at its greatest possible speed.

The second advantage is running normal x86 software with something built today that is much smaller and less power-hungry than a laptop. Last year, a user working to make a desktop box out of a Norhtec Microclient wrote that he “was delighted to see that RULE provides ALSA, Udev and all the other up-to-date only 232MB...because Fedora 3 provides them”.

The third big stimulus to trim down modern programs also has nothing to do with vintage computers: bootable Linux CD-ROMs and USB drives are great as portable emergency desktops but require little space.

There is one final reason why all this exercise is worthwhile, but it is of interest only to KDE developers and packagers, so I'll mention it later.

Project Specifications

What are the characteristics of a useful yet lightweight desktop? To me, they are the ones just mentioned. This is why I decided to re-package together KOffice, Konqueror, KMail, KNode and almost nothing else.

Figure 1. KMail for Mini KDE

Figure 2. KOffice for Mini KDE

KOffice does not have as many features as does, but it is much lighter, is less reliant on Java, is more integrated with Linux and could, some day, share single-file SQL databases with (see the on-line Resources). Above all, KOffice's roadmap officially foresees full support for OpenDocument. The result, which we hereby call Mini KDE, must require the smallest possible disk space and RAM to run. The rest of this article summarizes what I did to achieve this goal.

How Can We Do It?

I wanted to end up with binary packages, because many desktop end users don't know how to compile by themselves, and it would be time consuming to do it on six- or seven-year-old boxes (if not impossible, because compiler, libraries, source code and intermediate compilation files would, again, not fit on a smaller hard disk). Generally speaking, one can obtain optimized KDE packages by using three different methods:

  1. Optimize the source code of the application(s) and related libraries with the proper compiler options.

  2. Compile, package and install only selected pieces of the bundle.

  3. Configure the result so that applications start and run more quickly.

The last method can or must be applied even after installation. For KDE applications, it already is documented in the KDE performances tips page (see Resources).

The first method is distribution- and compiler-dependent; it's also beyond the skills of nonprogrammers such as myself and most general users. Another problem is almost no related information is available on-line; even asking on developers lists didn't turn up much more help. Carried to the extreme, this method also implies compiling against a custom version of Qt, stripped as discussed on the RULE Web site, which is almost like creating yet another distribution. From my point of view, however, the biggest limit of this method is that it does not greatly reduce the size of the whole package, which we saw as the first obstacle.

The most promising strategy, and the one I discuss in the rest of this article, is the second one—to leave out as much as possible from the original bundles in a way that minimizes effort, required skills and risk. The explanations that follow are based on building RPMs for Fedora 3, but the general procedure is valid for every GNU/Linux distribution or packaging format. Apart from the biggest space savings, another great advantage of this method is the resulting binaries remain compatible with Fedora Core or whichever other mainstream distribution you started with.


Articles about Digital Rights and more at CV, talks and bio at


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

can you provide the mini kde

Anonymous's picture

can you provide the mini kde binary files for download??

vexed by daemons

box opener's picture

so we're talking about saving a few mb of diskspace here?

i'd love to know how to use a KDE app without the intractible 'lag' feeling which occurs on even modern machines, probably due to all the layers of abstraction built up ..first libc, then xlib, then qt, then kdelibs, then the app.. the feeling is similar to running OSX on my G3, and my G3 is a lot slower..

or how to use a KDE app without having to twiddle your thumbs for 30 seconds while waiting for a gravy-train of daemons to startup like kdeinit, kded, kcminit, klauncher, dcopserver, arts, ksmserver, knotify,etc.. it rains on the parade of otherwise-nice apps like konqueror or amarok in a dreadful way.

the problem seems to have been compounded with the move to 64bit, the sheer number of pointers means reading thru a hundred or two mb of libs which on a laptop hd is arduous torture at best.

its just funny to see apps written in "slow" scripting languages like TCL/Tk startup instantly and behave just as reponsively as those in "fast" C++, just due to the sheer number of abstractions that had to be built on top of C to be able to easily build usable/flexible apps like those of KDE..

So what do you recommend ..

Anonymous's picture

So what do you recommend .. ???

Speedup KDE

Anonymous's picture

Use Prelink it greatly speeds up KDE startup and application loading.

I use it and it halves the startup time.