Building a minimal Linux desktop


Got some old computers around the house? I have that problem. For many moons people have been telling me to not toss those old computers, just install Linux on them. Well, that used to be good advice… But the popular Linux distributions like Ubuntu, Fedora, and OpenSuSE have evolved to keep up with current hardware. This is a really true when it comes to window managers like GNOME and KDE. The most recent versions of those packages overwhelm older machines.

So, what can you do? There are lightweight distributions like Puppy Linux and Damn Small Linux that are designed to work on less powerful machines. However, I have found these distributions to be either too limited, too buggy, or both. Some people suggest to just fall back onto using older versions of common distributions. That’s not a good solution for me given what I do for a living. So, I have to find a way to thin down the current version of one of the popular distributions.

The first question is which distribution? Almost every distribution supports minimal installs so what I suggest is to go as far upstream as possible. So that means work with Debian, Slackware, or RHEL/CENTOS. For today’s discussion, let’s use Debian. Go to the Debian web page and download the minimal net-install ISO from (or one of its mirrors).

Go through the standard steps of a net-install up to the point where the installer runs APT to get stuff from one of the mirrors. At this point, de-select the entry for the “Desktop Environment” packages. Complete the install and reboot.

You have the first useful minimal configuration: a base system that boots to a command-line prompt. If you’re building a server, you can stop here and start loading server things (which is a topic for another post).

As we’re building a minimal desktop machine, log-on as root and let’s do some magic with apt-get:

  • Install the xserver by issuing an “apt-get install xserver-xorg-core xorg”
  • You have two options here. You can install a full desktop environment like GNOME or KDE but why didn’t you use the standard install if that’s what you wanted? Rather install one of the lightweight desktop environments like LXDE: “apt-get install lxde”. This will install a base set of packages and themes as well.
  • The other option is to go light and just install a window manager plus application packages. This is best for really old machines or if you want to get the best performance with the least overhead.

    • Install a login manager. I prefer xdm for this purpose: “apt-get install xdm”
    • You will need a window manager. The most popular of the lightweight WMs is either Fluxbox, Openbox, FWM, or JWM. If you prefer something that feels like Windows, then go with JWM: “apt-get install jwm”
    • I’d suggest installing a web browser: “apt-get install iceweasel” will do the trick if you’re using Debian Lenny

Now reboot and you should have a nice, clean, minimal Linux install with X/Windows. Use the package manager to download other stuff you may need or want.