1 What is adesklets?
1.1 Short answer
adesklets is an
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
It can also be used as a command line oriented graphic editor,
a bit similar to ImageMagick , but with
1.2 Long answer
adesklets stands for
“another desklets [container]”. It was written as an
alternative to other programs such as:
- gDesklets (http://gdesklets.org/)
- SuperKaramba (http://netdragon.sourceforge.net/).
- 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
- 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
- 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
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.