February 8, 2008

Building an attractive, usable desktop on a budget laptop

Author: Jake Tolbert

Creating a light, attractive desktop environment on a new low-end laptop using Openbox in Ubuntu is simple and offers you most of the features you need for everyday computing without much of the load that comes with GNOME or KDE.

Despite the myth that Linux runs on anything, Ubuntu often doesn't perform well on $500 laptop hardware out of the box. Opening the main menu can take several seconds. Running a system update can bog down the system, and the GNOME icons and menus clearly weren't designed for low resolutions and 15.4-inch screens. Enabling Compiz desktop effects may result in errors, grindingly slow performance, or even a blank screen until you pull the power and reboot.

Some Linux distributions will run well on just about any hardware. However, distros designed for older or low-performance hardware may skimp on font rendering and other eye candy. Too, they often don't provide the full range of features that a desktop environment like GNOME does, leaving you with a machine that works well for basic tasks but is too ugly to show off.

Openbox is a light, fast, and highly configurable window manager in the Blackbox family. It comes well configured from the Ubuntu repositories with several useful hotkeys already set up. Installing Openbox, along with a few other tools, provides most of the features you need for basic computing and leaves enough resources left over for eye candy. You can leave the default GNOME desktop installed so you can use GNOME's features if you want to, making configuration even easier.

To begin, install the necessary programs with apt-get:

sudo apt-get install openbox pypanel xcompmgr openbox-themes obconf

After installation, start an Openbox session by logging out of GNOME, then at the login screen, press F10 to select Openbox from the session menu. When you log in, you'll be faced with a blank screen almost immediately; Openbox is running.

You can open Openbox's minimal default menu by right-clicking on the desktop. Information about configuring the menu by hand and automagically is available online, but we'll rarely use the menu, so we won't spend time now configuring it.

Open obconf, the Openbox configuration program, from the menu and choose the bbstyle theme, which will save some screen space. Several other themes are similarly small and would also do just fine, including anything in the simple-* family.

Change the fonts on the next tab, reducing font sizes as much as possible. This further reduces the window title size, again, saving you valuable screen space. On my laptop anything smaller than 7 or 8 points becomes unreadable.

Set the Desktops tab to use as few virtual desktops (and thus resources) as you need. Reducing desktops affects performance minimally, so set this according to your usage.

Next, choose which programs to start on login. When it starts, Openbox runs ~/.config/openbox/autostart.sh. Start programs by adding lines to this file. Here's a sample. Lines that begin with # are comments:

# Basic GNOME and KDE support

#Other programs

#applet for network connectivity
nm-applet --nb-disabled &
#support for automounting CDs, DVDs, USB drives
gnome-volume-manager &
pypanel &
#compositing - drop shadows
xcompmgr -cC -r4 -o.65 -l-4 -t-4 &
#program launcher
gnome-do -quiet &
pidgin &

A couple of programs in this list might be unfamiliar to you. Xcompmgr is an undemanding compositing manager that allows you to add drop shadows and transparency to your windows despite mediocre hardware. Xcompmgr isn't nearly as configurable as Compiz, nor does it make anything flame, spin, or explode. We don't want it to -- we just want subtle drop shadows on each window without bogging things down. Deleting this line would conserve resources even further.

Gnome Do provides Alt-F2-style functionality and allows you to do simple file browsing without opening another program, killing several birds, including our menu problem, with one stone. Ubuntu installs the similar Deskbar by default, but Openbox and Deskbar don't play nice together, resulting in strange windows and poor keyboard support.

You can start other programs by adding them in place of, or after, Pidgin. Be sure to give each program its own line and end each line with "&".

Taskbar: Pypanel

Openbox doesn't come with a taskbar. Installing PyPanel gives us a clock and system tray and allows us to see what programs are running. Several programs provide similar functionality -- see the sidebar for some of them.

PyPanel uses few resources and is easy to configure, making it a good starting place. Its only down side is that it doesn't provide notification. If someone IMs you while another window has focus, PyPanel won't notify you by flashing the window's icon like other panels do.

Configure PyPanel by opening ~/.pypanelrc in a text editor. Change colors by adjusting the hex values if you like, then set the width and height. Try the following:

I_WIDTH = 10

Reducing the font size to 6 points helps, but pushes the limits of readability:

FONT = "bitstream vera sans-6"

Other options are easily configurable. Read the comments, back up the default, and experiment. Restart PyPanel to see your changes. When you're finished, restart Pidgin and nm-applet, the network manager; PyPanel takes applications in the tray down with it when it closes.


With a handful of programs installed and minimal tweaking, we now have an almost fully featured desktop. We gave up a few things in order to streamline the process:

  • desktop icons
  • automatic updates
  • other GNOME applets

We could install other lightweight ways to pick these features up. Or, when you need them, you can boot back into GNOME, since leaving GNOME installed allows you pick the tools you need for the work you plan on doing.

In return we picked up several things:

  • more usable screen space
  • eye candy despite cheap hardware
  • much faster booting

In short, we created an attractive, usable desktop, making the most of a budget laptop without a lot of tweaking.


  • Desktop Software
Click Here!