Introduction

iDesk is a program that allows you to place fully customized icons on your Linux desktop, without needing to install a full desktop environment. Although iDesk's main attraction is its simplicity and flexibility, it does offer some nice `eye candy' effects, such as pseudo-transperency, anti-aliased fonts and captions that only appear on mouse-over.

Installation

There will be almost as many installation methods as there are distributions, so I won't go into any detail. Suffice it to say that iDesk requires no special treatment to install. Either grab the source, and do

$ make
$ su
# make install

or use your favourite package management system, e.g.

# apt-get install idesk

for Debian, Fedora Core or any OS with the apt-get system installed. (NB iDesk is not available in Debian stable, yet, only testing and unstable. man sources.list to change your configuration).

Configuration

Here comes the tricky bit. In order to specify the appearance, placement and behaviour of your icons, several files must be hand-edited (at the time of writing).

iDesk is mainly controlled by two files, or at least one file and a directory.
~/.ideskrc controls the overall behaviour of the iDesk program, including things like the font used, any transperency and the mappings from mouse events to actions.
~/.idesktop/ is a directory containing *.lnk files, each one of which controls an individual icon

The files use a slightly odd syntax, consisting of one or two table elements each with associated Name: Value options. You can probably leave the ~/.ideskrc file alone at first, as iDesk uses sensible default options. However, you will need to create a new .lnk file in ~/.idesktop/ for every icon you want. Here's an example:

$ cat emacs.lnk
table Icon
  Caption: emacs
  Command[0]: /usr/bin/emacs &
  Command[1]: /usr/bin/xemacs &
  Icon: /usr/share/icons/myIcons/emacs.png
  X: 20
  Y: 100
end

The options should be fairly self-explanatory, and a full list can be found on the website given at the bottom.

The Command[i] option allows several different commands to be run from the same icon. If you have the lines

  Execute[0]: left doubleClk
  Execute[1]: right doubleClk

in the the Actions table of ~/.ideskrc for example, double left-clicking the emacs icon would start emacs, whereas double right-clicking would start xemacs.

Conclusion

As iDesk is now up and running on my computer, and does all I want it to do, I am fairly happy with it. However, I think the project as a whole does embody a lot of what is wrong with open source software. The code seems to be very poorly written, as the documentation (what there is of it - and there's very little) is littered with warnings about how mis-setting certain options will cause segmentation faults, or cause various things to break. Surely, dealing with these situations more gracefully than warning a user off should be an absolute top priority?

At one point, when I was setting up iDesk, I missed out a space in a .lnk file: "Caption:", rather than "Caption: "; trying to indicate I didn't want a caption. When I tried to start the program, I got

~$ idesk  
Aborted
~$

That's it. No "Configuration file error in `emacs.lnk' at line 3". No error message at all, apart from "Aborted".

That said, if you don't mind messing about with config files, iDesk is a simple and efficient way to get some more funcionality out of your minimalist desktop.


For more information, see http://idesk.timmfin.net/