...making Linux just a little more fun!

<-- prev | next -->

# How To Enable Desktop Icons for Lightweight Window Managers

By John Murray

### About IDesk

Despite the enormous popularity of GNOME and KDE, many users elect to use lighter, simpler window managers instead of the full-blown desktop environments. And with good reason; the performance gains realised through using a fast, light WM - IceWm, Blackbox or Windowmaker for example - are often quite dramatic, especially on underpowered machines.

Most of these lightweight window managers lack the ability to display desktop icons, and for some people this isn't a problem. Others however, might find this a bit hard to get used to, especially if they've come from another desktop environment or OS that does use icons, and this is where IDesk comes in - it's a tool for managing icons on the root window.

There are a few ways to get icons onto your desktop; you could run Nautilus or kdesktop for example. There are disadvantages with these tools though; apart from their appetite for system resources they can take over your desktop and hijack mouse-clicks from your WM. In contrast with these, IDesk is light on memory usage and does nothing but manage your icons, so your WM will behave exactly as it should. And unlike some other light weight tools, IDesk is neither plain nor ugly, and supports eye-candy effects such as transparency. Here's the feature list as described on the IDesk website:

- Execution of multiple shell commands
- Completely configurable actions
- PNG image support
- SVG image support with image scaling
- Xft anti-aliased fonts
- Pseudo-transparency
- Shadowed fonts
- Snap to grid icon placement
- Only show caption on mouse-over
- Automatic background updating with Esetroot

If you think this sounds good, perhaps you should check out some screenshots to see just how good a fast, lightweight desktop can look.

### Getting and Installing IDesk

You can download the source from the IDesk site, plus there are binary packages available in RPM and deb formats. Installation for either format is straightforward.

### Setup

Before you can run IDesk, you need an .ideskrc file in your home directory - you'll find a sample that you can copy and paste in the /usr/share/doc/idesk/README file. This file can be edited to customise IDesk's appearance and behaviour; the font and level of transparency for example. Here's my .ideskrc as an example:

    table Config
      FontName: verdana
      FontSize: 12
      FontColor: #ffffff
      Locked: false
      Transparency: 0
      Shadow: true
      ShadowColor: #000000
      ShadowX: 1
      ShadowY: 2
      Bold: false
      ClickDelay: 200
      IconSnap: true
      SnapWidth: 55
      SnapHeight: 100
      SnapOrigin: BottomRight
      SnapShadow: true
      SnapShadowTrans: 200
      CaptionOnHover: false
    end

    table Actions
      Lock: control right doubleClk
      Reload: middle doubleClk
      Drag: left hold
      EndDrag: left singleClk
      Execute[0]: left doubleClk
      Execute[1]: right doubleClk
    end

You'll also need a .idesktop folder in your home folder - idesk uses a small text file (known as a linkfile) to represent each icon, and these .lnk files live in this folder. Here's an example:

    table Icon
      Caption: Gnumeric
      Icon: /usr/share/idesk/icons/gnumeric.png
      X: 31
      Y: 442
      Command[0]: gnumeric
      Command[1]: gedit ~/.idesktop/gnumeric.lnk
    end

The Command[0] and Command[1] lines refer to the left-click and right-click commands respectively. Don't worry about getting the X and Y values right; you can simply drag the icons into place and their positions will be remembered between sessions.

New users might also be interested in the idesk-extras package; it contains a set of png icons representing most common apps and tasks, as well as sample .ideskrc and .lnk files.

### Starting

It's probably best that idesk is started for the first time from a shell prompt, so that any error messages will be visible. Once you're satisfied with the configuration, you can add the `idesk &` command to your window managers startup script.

### Quirks and Bugs

Idesk is currently not being actively developed, and the latest version available is 0.56. Despite being at a beta stage, idesk has - for me at least - behaved perfectly, though others have reported some bugs and there are a couple of minor quirks to keep in mind. The first being that if you misconfigure one of the .lnk files - say by using an invalid command or icon image address - idesk will not start. In other words, even if only one icon is misconfigured, none will be displayed. If this happens, just try to restart idesk from a command line and the error message will identify the fault.

The other one is related to the way the icons are positioned; they are "anchored" from the top left hand corner of the icon image rather than the centre or the label. So long as all your icons are the same size - 48x48 will probably suit most people - they'll be uniformly spaced, but if there are variations in size they can appear to be a little uneven.

John is a part-time geek from Orange, Australia. He has been using Linux for four years and has written several Linux related articles.

Copyright © 2004, John Murray. Released under the Open Publication license

Published in Issue 105 of Linux Gazette, August 2004

<-- prev | next -->