Linux Goodies

In Pursuit Of The Perfect O/S



Idesk -- A Button Application Launcher For Any Linux Window Manager

Zazzle Linux Gifts

What Is Idesk And What Does It Do?

Idesk is a clever and handy utility that can run in the background of your Linux system. It takes little resource, about as much as a light window manager like Fluxbox.

What it does is handle iconic buttons that launch applications. You can define these buttons with simple parameter files, drag the buttons to any place on your screen with a left-mouse click and drag, and launch an application with a double click on a button.

I use the Debian Linux distribution. To install idesk I used the apt-get utility.

apt-get install idesk

That's all there was to it. If you don't have idesk in your distribution, you can get it here.

How Does Idesk Work?

Idesk Screen Shot

Above you see an example of idesk in conjunction with Fluxbox. As nice as Fluxbox is, it doesn't provide iconic button support for launching applications. Many of the light weight window managers are like Fluxbox in that regard.

But by using idesk I was able to place icons on my screen that can be moved to any location or rearranged to any configuration. When moved, the idesk utility saves the icon positions. So upon next boot up, my icons will be where I left them.

Idesk Buttons

This image shows the buttons near full-sized. As you can see, the icons are a mix of standard Linux icons and some I created for my use.

I show the buttons in two columns, a common configuration for many window managers that supply button support of their own. But with idesk, each button stands alone, and can be placed anywhere you find convenient.

Each button can be sized individually if you wish. You can set the font color for the font labels, and icons can be transparent to any degree you choose.

In fact, a number of parameters that control the look and action of the icons can be set by editing the .ideskrc file that gets installed when you install idesk. A detailed explanation of each parameter can be found at Idesk Wiki.

In my installation, about the only things I changed from default was set transparency to zero and to change the font color for the labels.

The .ideskrc file controls aspects of all buttons. Individual buttons are each defined in their own definition file.

How Do You Make A Button?

The definition for all buttons exist in your home directory's .idesktop directory. There you create a lnk file for each button that you want to appear on your desktop. Each lnk file defines the label for the button, the hint that shows when you mouse over a button, the icon for the button, the size of the button, the initial location of the button, and the action of the button.

Below is an example lnk file for my Gimp button:

table Icon
Caption: gimp
CaptionTip: graphics program
Command: gimp
Icon: /usr/include/X11/pixmaps/gimp.xpm
Width: 34
Height: 34
X: 906
Y: 490

The above definition is stored in a file named gimp.lnk in the .idesktop directory in my home directory. The caption is the label that shows on the screen beneath the button. The CaptionTip is supposed to show when you mouse over the defined button, though with my version the mouse over shows the caption instead. Double clicking on the button launches the gimp program.

Every lnk file looks like this, with the specific values changed to match up with the actual application. I often just copy one lnk file to a new file to start a new button, then edit the new button file contents.

Whenever you define a new button, you can double click the middle mouse button on any of your existing buttons to cause idesk to re-read the lnk files in .idesktop. That will cause any new buttons to appear. Likely, you'll have to move the new buttons to where you want, but that's all there is to it.

Most window managers have some kind of startup file for auto-starting applications. To get idesk to come up automatically, just enter it into the startup file. Be sure to add the & symbol to the end of idesk if that's the nomenclature for your window manager's startup file.