About adesklets - adesklets 0.6.1
Description: adesklets 0.6.1

Next: What's new?, Previous: Top, Up: Top

## 1 What is adesklets?

### 1.1 Short answer

`adesklets` is an interactive Imlib2 console for the X Window System. It provides scripted languages with a clean and simple way to write great looking, mildly interactive desktop integrated graphic applets (aka “desklets”).

It can also be used as a command line oriented graphic editor, a bit similar to ImageMagick , but with different functionality.

### 1.2 Long answer

`adesklets` stands for “another desklets [container]”. It was written as an alternative to other programs such as:

1. gDesklets (http://gdesklets.org/)
2. SuperKaramba (http://netdragon.sourceforge.net/).
3. GKrellM (http://www.gkrellm.net/)

Since this is 'a'desklets, others still have plenty of space to start similar projets, from 'b'desklets to 'z', excluding 'g', which is already taken.

Seriously though, all those packages are nice. Nevertheless, the first two have very heavy requirements in terms of library dependencies; basically, gDesklets still requires a fair part of the GNOME environment to be installed (plus specialized libraries such as gnome-python1), while SuperKaramba needs almost all of the KDE libraries and base environment. This also reflects on performance for the task at hand2. On the other hand, while GKrellM is significantly lighter (it still depends on GTK+ though), it does not deliver the same experience in terms of “eye-candiness” (to the author's taste, of course) or “scriptability” than the other two.

Thus, `adesklets` was born. It provides:

- a minimal, reliable framework for X Window desklets seamlessly integrated into the desktop, with an easy to use central management for starting, positioning and stopping them.
- a generic, rich and easy to use drawing API similar to gDesklets and SuperKaramba regarding its high visual quality, thanks to the Imlib2 library.
- very limited library dependencies: uses the very good (and lightning fast) Imlib2 library for all graphic-related operations. No window toolkit used whatsoever; the program relies directly on xlib.
- a light, robust, small and portable interpreter potentially usable with all sorts of scripting languages thanks to a clean, limited and homogenous syntax. As on version 0.6.1, support for Python and Perl is provided out of the box. Future support for Ruby would be fairly possible. Feel free to contribute support for your favorite language (See Extending adesklets.)!
- Minimal disk space, memory footprint and CPU usage. Typically, on glibc 2.3.4 Linux 2.6 x86, a unique executable is less than 130 KB on disk, takes less than 3 MB of virtual memory per desklet right after initialization, and almost no processor cycles (including cycles from a Python script) when idle; in most cases, it is even slightly less with a Perl script.

It DOES NOT provide:

- A sophisticated window API, or even access to widgets besides bare, ugly grey menus. You clearly cannot write any GUI application with this–only “desklets”.
- Convoluted mechanisms for script configuration. Script developers are free (or doomed, depending on how you see things) to do whatever they see fit, although default helper routines are available for Python.
- Support for everything that is not a truly POSIX compliant system. For instance, it would be very surprising if this would ever compile on Cygwin.
- Feature-rich management of user events. `adesklets` aims at low resource consumption and reliability; only a small set of events, mainly pointer-related, are exposed through its API. Do not ask for keyboard events support or toolkit integration – it goes against the project goals.

#### Footnotes

[1] A report on this has been produced; you may find it online in PDF format at http://adesklets.sf.net/verbatim/gdesklets.pdf.

[2] Of course, this is only the author's opinion–and both applications are making big progress on resource efficiency from version to version.