31 December 1970

A Lighter Debian

Note: This content is almost certainly obsolete. It's left here mainly for reference purposes.

If you are looking for a useful and standard lighter-than-most Linux distribution, Debian's Etch using the Xfce desktop environment is a pretty good choice. Xfce's window and desktop manager and its associated Thunar file manager are somewhat easier on system resources than the much more common Gnome and KDE desktop environments but retain much of the usability and features. The Debian-Xfce distribution also ships with a good range of software. I installed Debian-Xfce Etch on an old 192 MB, Celeron 500 MHz la
Publish Post
ptop. With 192 MB the results are not snappy, but the system is certainly usable.

Debian-Xfce is very similar to Canonical's Xubuntu (which is itself based on Debian). However, while Xubuntu is more feature-filled than Debian's distibution, Debian's is more standard than Xubuntu (e.g., Xubuntu doesn't use a root user), and that's why I prefer it as a starting point for exploring a lighter-and-leaner Linux. If you have 256 MB or more of RAM, you probably won't have speed issues with Xfce, so I would recommend you first try Xubuntu without making any changes as it is a friendlier experience than Debian-Xfce. If Xubuntu doesn't work for you, then come back here. Or you may also consider Fedora Live Xfce Spin, with which I have no experience.

Some argue that Debian's biggest strength is also its weakness: major updates are well-tested but conservative and infrequent. What this means is that if you want the latest versions of Linux software titles, Debian's recommended "stable" releases may not make you the happiest camper. However, if you really insist on having the latest stuff, you can still have it with Debian by using their "testing" and "unstable" releases. But I will let you explore this on your own.

Debian-Xfce is a very usable distribution out-of-the-box, but it can benefit from a few tweaks to make it more usable and a bit faster. The most important tweaks are outlined below. In what follows, I am assuming you know what a terminal window is, what the difference between root and standard users is, and what sudo is. If you don't, do some priming and then come back here. Lines below begining with $ indicate a terminal window prompt.

Let's begin.

Install Debian-Xfce from CD
Download the "stable" realese of the single-CD Debian-Xfce installer (e.g., debian-40r3-i386-xfce-CD-1.iso) using http/ftp, bittorrent, or jigdo. Be sure you download the single-CD Debian-Xfce installer and not a multi-CD or DVD full version of Debian. Burn a copy, boot from the CD, and follow the instructions to do the install.

Add yourself as a superuser (sudo)
Login using the normal (not root) account that you created during the installation. Open a terminal by right-clicking on the desktop and selecting Terminal. Convert this regular terminal to a root terminal with the command

$ su -l


You will be prompted to enter the password for the root account that you specified when you installed the system. Enter it, and at the following prompt type the following command:

$ visudo /etc/sudoers


This will open a text editor as root. To the end of the file add the line:

user ALL=(ALL) ALL

where user is your username.

Save the file and exit the text editor. Type exit into the root terminal to exit from root (su) mode and the type exit again close the terminal. From now on, never open a terminal as root unless you have really good reason for doing so.

Edit apt's sources.list file
Open a regular terminal by right-clicking on the desktop and selecting Terminal. (Henceforth we will only be using regular terminals. In case you missed the warning above, never use a root terminal unless you have really good reason for doing so.) Now type the following command:

$ sudo mousepad /etc/apt/sources.list

You will be prompted for your password. Enter it (i.e., your password, not the root account's) and proceed.

In the sources.list file that opens, comment out all the deb cdrom: ... lines unless you want to have to insert the CD-ROM whenever you install software. To comment out a line, add a # character at the start of the line.

Add contrib and non-free to the existing entries (after main) to gain access to a much wider range of software.

Save the file and exit.

Update and upgrade
$ sudo aptitude update
$ sudo aptitude upgrade


Install Synaptic

Synaptic is a nice GUI-based software installer. It's basically a GUI version of aptitude, if you know what aptitude is.
$ sudo aptitude install synaptic

Install some fonts
This is especially useful for web browsing.

$ sudo aptitude install msttcorefonts

Add the Tango desktop theme

This is optional, but I like the Tango icons much more than the default Xfce ones.

$ sudo aptitude install tango-icon-theme


then right-click on the desktop and go to Settings -> Settings Manager -> User Interface. Select the Icon Theme tab and select Tango.

Update menus
$ sudo update-menus
$ update-menus


Tweak Xfce to make it a bit faster

Open the Xfce Settings Manager by right-clicking on the desktop and navigate to Settings -> Setting Manager. Then click on Window Manager in the window that appears. Select the "Advanced" tab and uncheck both "Display content of windows when resizing" and "Display content of windows when moving."

You may also see some benefit by opening the Desktop panel from the Xfce Settings Manager and telling it not to use a background image and to use a solid color for the background.

Fix Iceweasel's DPI handling
Iceweasel is Debian's totally libre version of Mozilla Firefox. Both Firefox and Iceweasel have default DPI handling that might leave onscreen type looking too large or too small. Luckily it's pretty easy to fix. Launch Iceweasel by right-clicking on the desktop and selecting Web Browser. If you don't like the way web pages render, open about:config in Iceweasel and change the layout.css.dpi entry from -1 to 0. If you try it and don't like it, you can always change it back.

And while you're at it, change the browser.urlbar.clickSelectsAll entry to true.

Set the Xserver screen DPI if needed
Sometimes Linux's video server gets screen DPI settings wrong. If the type you see on the screen is consistently too small or too large, you can override the DPI setting used by
creating a file called .Xresources in your home directory and adding the following line to it:

Xft.dpi: 96

Note that the name of the file begins with a period. This makes it a hidden file in Linux. To see hidden files, you must tell your file manager to show hidden files (View -> Show Hidden Files or Ctrl-H in Xfce's file manager). If you are using the command line, issue the ls -a command.

The number
96 above is a DPI setting that is as close to a standard as anything. Feel free to adjust that number up or down as needed to get text to display properly. Other common values are 75, 85, 100, and 120.

Use a lighter terminal
The default Xfce terminal is feature-filled but pretty heavy. uxterm and rxvt-unicode are lighter alternatives. If you want to use rxvt-unicode (I like it), you will need to install it; uxterm should be installed already. To install rxvt-unicode,

$ sudo aptitude install rxvt-unicode


Now set the default terminal program,

$ sudo update-alternatives --config x-terminal-emulator


and select urxvt if you want to use rxvt-unicode or select uxterm to use uxterm.

Update menus (again)
$ sudo update-menus
$ update-menus


Add Gnome system tools (maybe)

Caveat: I'm not sure that this is the best idea because it really digs deep into your system, and since you are not running Gnome it may not do it in the cleanest way. Unless you have special needs--like wireless networking--you may want to skip this step.

Gnome system tools put nice GUI wrappers around administrative tasks that normally drive newbie Linux users nuts. They tend to be resource hungry, but since you will only run them occasionally, the hassle of waiting for them to start will probably be a much less terrible torture than trying to do these tasks via the command-line. If I find a better (i.e., non-Gnome) way to add similar functionality, I'll let you know. But for now your Linux life will be less sucky if you:

$ sudo aptitude install gnome-system-tools


The above adds some stuff that we really don't want, so now we need to uninstall a few things:

$ sudo aptitude remove nautilus
$ sudo aptitude remove gnome-control-center
$ sudo aptitude remove gnome-media


Update menus (yet again)

$ sudo update-menus
$ update-menus


Silence the beep

The GDM login screen beeps when it's ready for you. The terminal beeps when you backspace too far. Both of these behaviors use the PC's built-in speaker and are really annoying. One solution is to turn off the PC speaker completely so nothing can beep at you. This won't disable regular sound on your system; it will only disable the miserable beeper speaker inside your box. To do this:

$ sudo mousepad /etc/modprobe.d/blacklist

Add this line to the end of the file:

blacklist pcspkr


When you restart, you should now have a beep-free login screen. If you ever want the beep back, just remove the blacklist pcspkr line and restart.

Final comments
Please note that there is a goofy behavior in the Debian/Xcfe setup: the desktop Trash icon does not update when you throw something away. You didn't break it; it was broken from the start.

If after doing the above, your system is still not fast enough for you, consider making it even lighter by using an even less resource hungry window manager and file manager than the Xfce and Thunar pair. One way to do this is described in An Even Lighter Debian.