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.
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)
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.
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.
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.