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:
- gDesklets (http://gdesklets.gnomedesktop.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 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 and small interpreter potentially usable
with all sorts of scripting languages thanks to a clean,
limited and homogenous syntax. As on version 0.4.8, support for
Python is provided out of the box. Future support for Perl and
Ruby is planned. Feel free to contribute support for your
favorite language!
- 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 interpreted
script) when idle.
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 (or just plain mechanisms, for that
matter) for script configuration. Script developers are free
(or doomed, depending on how you see things) to do whatever
they see fit.
- 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.