What is deskbar?

Deskbar is a lightweight system monitor without large dependancies to other libraries or toolkits. It's completely build on top of the Xlib. The output will be written directly to the root window, so the placing and all other configuration is done via a XML based configuration file.

At the moment there's only the display of text possibly, support for PNG is planned but not implemented yet. This will be optional and may be excluded at compile time.

What does it do?

Deskbar is pluggable, so it's features depend on the loaded plugins. Without any plugins there isn't much to tell about. The reason for this behaviour is easy: The aim is to be as lightweight as possible, so e.g. if you don't need a clock why should we load/run the update code for it?

Currently it consists of the main application, a library and a config script to build plugins outside of the tree and of course some basic plugins. (More will follow)


Smart Iterations

Whenever a plugin is loaded, an interval time for the update cycle of the plugin is required. It's possibly to set it in the config file or to use the default time. After the loading of every plugin is completed, the interval time of the main cycle will be computed. The main loop cycles in the calculated time.

Exception Handling

A common problem with plugin based monitors is the reliability of these plugins. Normally, whenever a plugin 'misbehaves' the whole program dies. Deskbar catches the segmentation fault and ejects the plugin. Allocated memory will be free'd, if the alloc functions of the API are used.

Garbage Collection

The API contains different allocation functions, every allocation will be stored inside of a lookup table and free'd automagically on program termination. Optionally: The table can be drawn to the commandline at program exit.

Latest News

2005-06-16 11:55

After a long time and lots of lines of code i decided to skip my own XML-parser and use the one braught with the libxml. It's easier interface and handling allows a better error handling and a clean code. Meanwhile a lot of things in the API have been changed or are in progress.

Copyright (c) 2005, Christoph Kappel Released under the GNU Public License Logo