The Stealth Desktop Part I: Finding a New Distro

By Eduardo Sánchez | Posted at 9:55 PM
The issue of GNU/Linux as a desktop operating system is hot these days. You can hear here and there about someone switching their proprietary desktops, or considering doing such a thing, to GNU/Linux. Most of these stories refer to some desktop-oriented or mainstream distribution, such as Mandrake, Red Hat/Fedora, or SUSE. However, there is one distribution you would seldom hear about and yet, it is uniquely qualified for heavy-duty desktop usage. I would like to show you how you could use this GNU/Linux distribution for desktop fun and profit.

Update [July 9, 2004]: thanks for all the feedback. Some minor corrections added. --Eduardo

Do I have your attention yet? Well, let me provide a few more details on what this particular distribution has to offer:

  • Rock-solid stability;
  • Speed;
  • A small memory footprint;
  • A solid X Window System with excellent support for antialiased fonts;
  • Automagical font installation;
  • Easy printer setup;
  • Automagical scanner recognition;
  • Good hardware detection and autoconfiguration;

Interested? Well, it is a 2-CD GNU/Linux distribution whose name is Slackware. No, I'm not joking. I mean it.

For over six months now, I've switched from Mandrake to Slackware and since then I used it every day as my desktop; not only as my home desktop but also as my primary workstation at office and as a desktop for my boss, my dad and my wife.

During the next few weeks, I would like to share with you the story of my switch to Slackware, giving some suggestions for using Slackware as a desktop system along the way. Come along for a good ride!

Note: Keep in mind that all this was written when Slackware 9.1 was still the latest stable version. I'm confident that with the release of 10.0, Slackware as a desktop will be an even more appealing option.

The Story so far...

Until the middle of December 2003, I was a somewhat happy Mandrake 9.1 user. I ran Mandrake 9.1 with all the updates applied via MandrakeUpdate and urpmi, plus some Texstar updates. I was looking forward to upgrade to 9.2 in a careful fashion, given the reports of overall instability and issues related to it.

Then came Mandrake advisory MDKSA-2003:118. After I installed this advisory, I could no longer use my Mandrake 9.1. The reason: stopped responding. Starting OO.o in the console simply said "segmentation fault". Trying to uninstall the default OO.o and installing OO.o versions 1.0.x or 1.1 from the website did not work; the installer displayed a smalll progress bar with a box and then died. Oops.

So there I was, unable to use OO.o which was and still is a critical part of my work. I *had* to do something. The first thing was, obviously, to prepare a good backup of everything important (which I did), and then got ready to change my setup by a new one. But which one?

I got a whole bunch of distributions from OfB Labs, and this was a good moment to try them. So I tried Knoppix 3.3 and Fedora Core 1, before trying to install Mandrake 9.2 (this is a whole story by itself). When I thought I was ready to try Mandrake 9.2, I did the install, thinking that with the updates, Mandrake would be the end of the whole story.

But it wasn't. There were several issues, especially the massive updates required, and some choices made by Mandrake that I regard as not very fortunate. For example, Mandrake uses Galaxy, which I consider is nice, but not of my personal liking; however, removing it was a real pain. In Gnome and GTK+, especially, was extremely difficult to get rid of things such as the Galaxy color scheme.

Another example would be the bootsplash package. This is a package which replaces all the supposedly cryptical boot messages for a supposedly "friendlier" (?) splash screen which hides everything. And if you really want to see what's going on, you can press ESC. That gets you a console with a bitmapped background done in blue, and you stay with it. After that, the remaining consoles have some funny logo plastered. That is perfectly fine, that is, for people who like such things. Trouble is, I don't. So, I would simply deselect it during installation, right? Wrong! The bootsplash package is being artificially depended upon almost every Mandrake RPM on the CD that remotely resembles something graphical. Get rid of the bootsplash, and you'll end with a server, console-only setup.

Well, to make a long story short, I was extremely dissappointed with the status of the Mandrake Linux distro at the time, I was stuck without a working system, and I desperately needed something that just worked. It was then that I saw the old Slackware 9.0 CD from OfB Labs, and I asked myself, "why not?" So I installed Slackware, and off I went to the world of (supposedly) non-friendly, non-intuitive, arcane Unix-like computing. My goodness, how wrong I was! Instead of forcing me to be a Unix guru or something similar, I found ease of use, sensible defaults, real speed and stability, and really good software. Since then, I upgraded to Slackware 9.1, and now I'm waiting for the next Slack version, knowing it is going to be a good release.

Now, just for the sake of clarity: I still do like Mandrakelinux very much. I think that it is a very good all-purpose distribution. However, they really needed to take care of the quality control at the time of the 9.2 release (and in fact they did, and this prompted a whole new releasing model). But they are losing flexibility, are making choices not very wise (like the artificial bootsplash dependency hell), and, frankly, distributions such as Slackware are catching up with Mandrakelinux's lead. I think there's a growing dissatisfaction with the Mandrake community, leading to many defections to other distros, and one fork (PCLinux OS) made by the famous 3rd party Mandrake packager Texstar. Mandrakelinux, in my opinion, is in need of a change; but meanwhile, I wish them the best.

Parameters and assumptions

For the purposes of this series, I used three systems, which as well served three different functions:

  • elrohir, an Intel P4-2Ghz with 256 MB of RAM, 40 GB HDD split in two partitions, one containing Windows 98 Second Edition and the other GNU/Linux. This is my main workstation, and it is used by me and occassionally by one of my bosses.

  • sombragris, my trusty laptop, an aging AMD K6/2-500Mhz with 192 MB of RAM and 6.2 GB HDD. This is my main workstation at home. It is routinely used by my wife and me.

  • denethor, an ancient Cyrix P166+/133 MHz with 32 MB RAM, and a strange 1.0GB SCSI HDD. This workstation is used by my father at his shop. I am well aware that this system is so obsolete it wouldn't be worth the trouble of maintaining it; but nonetheless, it was given to my dad by his brother in law, so it has sentimental value.

All desktop work was done from the assumption that the system should be friendly and accesible to general end-users, including most computer-illiterate people. I think that Unix-like systems, when properly set up, have the advantage here: they are very fault-tolerant within the limits of an user account, allowing users to experiment and freely explore the system.

The installation and initial setup is to be done by someone with more experience with computers. This is consistent with widespread practice. As I said before, end users installing their own operating systems are an exception, and not the norm, in almost every OS under the sun. Therefore, the install and initial setup should be performed by the "resident nerd" of the office or home, or by an otherwise qualified person.

And here lies our secret: The whole point of this desktop setup is to convert our Slack box into a KDE/GNU/Linux (KGX) box, using the strong Slackware hallmarks of quality, ease-of-use and simplicity as the foundation of the excellent KDE desktop environment. This is mandatory: in order that most of the tips I give in this series could work, you must have KDE installed. You are perfectly free to use other window managers or desktop environments, such as GNOME or XFCE, but you'll need KDE installed in order to do some of the system administration tasks and some of my tips will require the use of KDE as a desktop.

Finally, please note that in order to get the most from this series, a minimal degree of familiarity with a KGX setup would be required. That is, it would be convenient to know how to navigate the file system, and some of the KDE particulars, such as the use of the KDE command line (the ALT+F2 window). Therefore, this series is best suited to persons who plan to perform system administration of desktop boxes. However, please note also that I will try to be not too technical --hey, I am not an expert-- and I encourage anyone willing to try my suggestions, to do so.

System installation

The task of installing Slackware is fairly straightforward and it is well described elsewhere (canonical though outdated source here, another good link here; this is also going to be great source once it's done), so I won't dwell too much on it.

The Slackware installer it is a text-only process which usually consist of three steps. In the first one you boot into the install environment; there you have a root console where you can bring up the network (if needed), and manage the partition scheme you're going to use (with the help of the fdisk or cfdisk programs). The second is the install proper, done with the setup program. Finally, and still within setup, you do the initial basic configuration tasks such as setting up the network, choosing the default desktop environment, and so on.

The system administrator can partition the system in the fashion that suits him or her best. I usually follow the scheme favored by Red Hat 6.2: a 16-20 MB /boot partition, a swap space (at least the double of your system RAM), and one or more partitions, one of which is going to be the root (/) partition. The Slackware installer suggests using one big root partition, and in my opinion this is a good scheme for a desktop system, so I used it in all of my boxes.

The fact that the Slackware installer is a text-only program, and that you even boot into a root console instead of using a graphical program may sound exceedingly difficult and arcane, but it is not. First of all, the person doing the installation is likely someone conversant with such situations; and, secondly, the installer proper is quite simple and straightforward. If you feel confused, try following the on-screen instructions.

The installer is a program, or rather, a series of shell scripts made with ncurses. There is nothing unusual with it save for the grouping, typical of Slackware, of different software packages under package directories. Due to historical reasons, these directories are often referred to as 'disksets'. In Slackware 9.1 the disksets span the two installation CDs, although only the first CD is necessary to get a working system. (For our plan, however, we are going to need the two of them). You can find the following disksets in CD1:

  • /a: The base Slackware system. This is usually critical, and the ony point to note here is that you have a choice of different print systems: CUPS and LPRng. KDE recommends using CUPS, so this is what we are going to use. If we select both servers, the print system used will end up being LPRng due to the way Slackware places symlinks to lpd and related utilities. So, install only CUPS please. (If you have LPRng installed instead, or installed both systems simultaneously, Patrick Volkerding's mail to root has some tips on how to select which print server you're going to use, so don't despair.)
  • /ap: Linux applications. In fact, there are not only applications but several system services critical to a desktop install.
  • /d: Program development tools. These include the gcc 3.2.3 compiler and the Sun Java 2 Development Kit.
  • /e: GNU Emacs and related packages. These can be safely left out.
  • /f: Several FAQs and HOWTOs in plain text format.
  • /k: The Linux kernel source. This can be safely left out unless you have to compile by hand a kernel module (i.e., for Winmodem driver support).
  • /l: System libraries. Essential for a desktop system.
  • /n: Network applications (console-based) and services. Here you must be careful to avoid the installation of unneeded services. You can leave out packages such as apache, bootp, mod_ssl, php, proftpd, sendmail, uucp, and yptools, because your desktop setup will not likely need these.
  • /t: The TeX typesetting system.
  • /tcl: Tcl/Tk language and related tools.
  • /x: The X Window System. The packages xfree86-docs, xfree86-docs-html, xfree86-fonts-cyrillic, xfree86-xnest, xfree86-xprt and xfree86-xvfb are optional. All others are required. (For Slackware 10.0, replace xfree86 with x11 where relevant.)
  • /y: BSD games, such as fortune, adventure, etc.

The second CD has the following disksets:

  • /kde: The K Desktop Environment, version 3.1.4. As we said before, this is essential for our job. You must install either this diskset or download the updated KDE packages for Slackware, which are available at the KDE FTP repository.
  • /kdei: Internationalization packages for the K Desktop Environment. Use as needed.
  • /gnome: The GNOME Desktop Environment, version 2.2. Another great desktop.

When you finish the package installation stage, there are several configuration steps. None of these are noteworthy save for the window manager selection screen, which is shown in Figure 1. As you might see, you must select the default window manager for the system at boot time. What this particular script does is to put /etc/X11/xinit/xinitrc as a symbolic link to one of the real xinitrc.* files mentioned in the setup script. This is simple and convenient but on the other hand, all of your users are going to use the same desktop environment if they start X from runlevel 3 (console-based login), unless each of them decide to create their own .xinitrc files, which is not exactly the most user-friendly undertaking. If you use the X-based login, however, each user is normally allowed to choose his/her own desktop environment. For our purposes, we suggest selecting KDE as our primary desktop. (Update: I've been told by a kind reader that it is possible for a normal user to use the xwmconfig script in order to make his/her own desktop preference instead of the system-wide xinitrc present in /etc/X11. Thanks!)

Slackware Window Manager setup screen
Figure 1
Window manager setup screen for Slackware.

Besides this screen, there is nothing worth mentioning in the installation stage save for the print server selection. Remember to allow only the services you're going to need. After finishing the installation process, you should take the CDs out of the drive bay and reboot.

A note of warning: If you set up your network at the install stage, and you are connected to the Internet via that network, and granted that you don't need anything from it to boot properly, go and unplug that network cable now. Seriously. For security reasons, get online only when needed. In this setup, we need to get online only near the end of our setup.

What's next?

In the upcoming articles in this series we will go to the system setup stages. We well see steps such as:

  1. Check if the sound system is working;
  2. Set up the X Window System;
  3. Add users;
  4. Install fonts;
  5. Set up the printer;
  6. Set up the CD-ROM and related drives with appropriate permissions;
  7. Set up the scanner;
  8. Get online;
  9. Get and install system updates;
  10. Set up your login scheme; and,
  11. Some finishing touches.

Our next article will focus on setting sound and X Window. Stay tuned!

Eduardo Sánchez is a Contributing Editor of Open for Business. He is married to Gloria, and lives with his wife in Asunción, Paraguay (South America), where he works as pastoral assistant of Villa Morra Baptist Church. You can reach him at