March 14, 2008

Building a highly functional desktop with lightweight software

Author: Razvan T. Coloja

When my girlfriend visits me, she has to work on a mini PC while I use my laptop to finish whatever I postponed at the office. Her PC has a 1GHz VIA processor and 128 MB of RAM and runs Ubuntu. You can imagine how slowly it boots, even with Linux installed, and GNOME runs so slowly that it's quite irritating. I didn't want to reformat and install a lightweight Linux distribution like Fluxbuntu because the mini PC doesn't have a CD-ROM drive, and I already had 10GB of data that would have taken a long time to back up. Instead, I found and installed some lightweight software to improve her computing experience.

The problem with speeding up your desktop is that you have to make certain usability compromises. I had to make my girlfriend's desktop fast, yet as user-friendly as the GNOME environment she uses on her own Ubuntu-based computer at home.

I installed iDesk to give her icons on the desktop on top of the Fluxbox desktop environment. The icons are defined through .lnk files located in ~/.idesktop for each application you want to appear on the desktop. For example, to create a shortcut to Firefox, you would create a file with touch ~/.idesktop/firefox.lnk with the following contents:

table Icon
Caption: Firefox
Command: /usr/bin/firefox
Icon: /usr/share/pixmaps/mozilla-firefox.png
Width: 48
Height: 48
X: 299
Y: 49


The Caption line defines the name of the shortcut as it appears on the screen. Below that, write the full path to the binary and specify an icon (in PNG or XPM format) with a given width and height. X and Y represent the position of the item on the screen. You can leave it as it is, because once started, iDesk allows you to reposition the icons with your mouse and remembers their positions the next time you start the program.

To further configure iDesk, copy a configuration file in your home's root directory with cp /usr/share/idesk/dot.ideskrc ~/.ideskrc. Edit it to change the font type, size, and color, and set transparency, shadow, or a background for the icons.

To make PCManFM and other GTK applications use the Tango icon theme, I created a file named .gtkrc-2.0 in the home directory that contained only the line gtk-icon-theme-name="Tango".

To provide more of a GNOME look, I installed fbpanel from the Ubuntu repositories. It provides a start menu, launch bar, task bar, and system tray. To use it, create a folder called .fbpanel within your home directory and in it place an empty file called default. Paste the contents of the default configuration file into the newly created file and modify it to match your taste. In the Global section of the file change edge = bottom to edge = top if you want a panel similar to the one in GNOME.

Fast apps

I spent several hours looking for fast applications. They also had to look good and have almost the same functions as their default GNOME counterparts. As a file manager I settled for the latest version of PCManFM ( It has everything a novice user might need, including thumbnail view, tree view, and detailed view modes. When used with the Tango icon theme it resembles Nautilus. PCManFM also has tab support, and it can load a directory with a thousand MP3 files in the blink of an eye.


For image viewing I was ready to go with GPicView. It has a small memory footprint and offers the same functionality as EoG. But then I found Mirage, which consumes approximatively 1% more RAM than GPicView but offers many more options. It's based on PyGTK, has support for thumbnail view (unlike GPicView), can resize and crop images, has a slideshow mode, and provides support for custom actions. You can even define keyboard shortcuts for various actions such as archiving and thumbnail creation.

For video playing I used the default MPlayer with no GUI and set file associations for AVI and MPG files from within PCManFM.

Midori was my first choice for a browser. Firefox works OK, but since I started looking for lightweight applications I wanted to strip down memory usage as much as I could. Midori beat Flock at the memory consumption test, but unfortunately, Midori had no Flash support. Flock is based on Firefox, runs smoothly, and supports extensions. To keep its startup as fast as possible, I installed only the AdBlock Plus extension.

Next came Decibel Audio Player. Decibel is a limited audio player for Linux, based on GTK. It lacks cover preview and doesn't fetch song lyrics from online sites, but it runs fast and plays audio files well. Its major downside is that it doesn't provide a volume button. I solved that problem by installing gvtray, which provides an easy way of controlling the master volume. I also considered using Sonata and Music Player Daemon running in the background.

For BitTorrent download I installed Deluge. It's low on resources, can be accessed through a Web interface, and can manage download speeds. As a PDF viewer I replaced Acrobat Reader with ePDFView. It loads files quickly, allows you to search through text and zoom in and out, and has a simple interface.

Finally, I wanted to make some of these applications autostart upon entering Fluxbox. To do that, edit the ~/.fluxbox/startup file and add commands followed by an & sign. You can also display wallpaper from here. A stripped-down version of the startup file would look something like this:

# set a background
fbsetbg -f ~/.fluxbox/backgrounds/wallpaper.jpg
# Turn off beeps:
xset -b
# autostart applications
idesk &
fbpanel &
gvtray &
pidgin &
# start Fluxbox and keep a log
exec /usr/bin/fluxbox -log ~/.fluxbox/log

There you have it: an Ubuntu distribution with a fast and easy-to-use desktop, thanks to Fluxbox and a bunch of lightweight applications. There are other software packages you can install instead of the resource-hungry applications you may be used to: Claws as an email client, Abiword to edit and read .DOC files, Gnumeric for spreadsheets, Kazehakase as an even lighter Web browser, and Graveman for burning CDs and DVDs.


  • Graphical Environments
  • Desktop Software