Anansi - Desktop Eye Candy Engine

Main Page

Anansi is still under construction, but you can check out the in-progress screenshots for now:

Weather prototype, with 'default dark' theme Weather and CPU Monitor, same master theme Autostacking disk monitors! Dock with icon zoom.  No labels yet, but multiple segments!

More screenshots will be posted here as they become available.

What is Anansi?

Anansi is a desklet, dock and widget engine for compositing window managers, such as Beryl or Compiz. It is similar to other projects, such as gdesklets, adesklets, screenlets, and so on.  Anansi combines desklets, widgets, and docks into a single framework.

Any Anansi widget (called a “broodlet”) can be used as a desklet, or as a widget with the Compiz/Beryl widget layer plugin.  Most can be used as panels or docks as well.


This is a good question, since there might already be a few similar projects out there. ;-)

Some might accuse me of suffering from NIH ("not invented here") syndrome (and I do suffer from that dreaded condition, on occasion), but that's not the reason this time, honest.

The main reasons:

  • Minimalist dependencies:  Most of the existing projects out there, particularly the ones with the most features, have too many dependencies for my liking.  I run a relatively lightweight environment (except for the eye candy, of course), and I want a desklet engine that doesn't add a lot of overhead or require me to install all of KDE or Gnome.  So, call it a personal itch.
  • State-of-the-art:  I wanted a desklet engine that used the latest eye-candy technology; e.g. a compositing window manager, and also the widget layer provided by the Compiz/Beryl widget layer plugin.
  • OOOOOH, AAAAH:  It should look good, and be themeable so that everyone else isn't stuck with my idea of “good”.
  • The best of all worlds:  I wanted something that integrates desklets, docks, and widgets all into a single framework.  This way, you can pick how you want it to work. Likewise, I want to incorporate as many of the best ideas from the other widget/desklet/dock projects out there as possible.

How do I install it?

You can't. There's no code released yet. Once I get a couple of useful “broodlets” hammered out, I'll release an extremely pre-alpha version.

As for installation dependencies, currently Anansi requires the following other packages:

  • Python 2.4 or higher.
  • GTK+ 2.10 or higher (and PyGTK 2.10 for the Python bindings).
  • Cairo 1.2 or higher (and PyCairo 1.2 for the Python bindings).
  • librsvg for svg rendering (and the Python bindings for same).  I'm not sure what version. I'm using 2.16, but it's likely nearly any recent version will work. I use this instead of libsvg-cairo, since that library is dead according to it's original developer.

Later, the dock support will likely use libwnck (and the Python bindings for same), but hopefully that will be it for mandatory dependencies. This is already almost too many for my tastes.

I'll also likely include support for DBUS, but that will not be a mandatory dependency.  It will use it if present, but will degrade gracefully if not.

What sort of widgets are available?

Right now, I have one that displays weather information (see the screenies), but it currently only reads weather data from Environment Canada, so it's only really of use to Canadians. :-)

Planned widgets (or “broodlets”) at this point include:

  • A state-of-the-art dock.
  • Various stackable meters for CPU, disk I/O, network activity, and so on.
  • A clock.
  • A calendar.
  • Icons / launchers.

Can I write my own “broodlets”?

Yes, I'll be posting development information once I've got most of the internal architectural details finalized.

Can I write my own themes?

Yes, themes are currently a Python file, but one where I (ab)use the flexibility of Python so that it doesn't look like a Python file. I'll release more information on this, once the format is finalized.  My intention is that non-programmers should be able to make reasonable sense out of the format.

Themes are meant to be very flexible, permitting the theme-writer to control nearly every aspect of the visual layout.  This is a bit harder than a pixmap-based engine, though, since Anansi uses Cairo to do all drawing.

What's with the name/logo?

Anansi is a West African trickster god, who is usually depicted as a spider.

I often use names of mythological entities to name my projects initially. Later, I rename them to something much more boring.  This time, however, the name seemed to fit for some reason, so I decided to keep it.

The logo is the ananse ntontan, a West African Adinkra symbol, representing a spider's web.