Creating the Theme File

SuperKaramba uses .theme files to define the basic shape of the widget and static elements that it contains. Then you can add a matching .py file to add interactivity to the widget.

This page serves as a reference to creating .theme files.

See Also

  • A list of General Commands that you can put in your .theme file
    • This includes tags that define the widget shape, set default fonts, and create click-areas that launch programs
  • A list of Meters that you can put in your .theme file
    • Meters display the values of sensors
    • Meters can auto-update
  • A list of Sensors that you can put in your .theme file
    • Sensors allow you to display system properties automatically
    • There are sensors to display the status of everything from memory use to the results of shell scripts

Theme Files - A short introduction

The theme files, currently named *.theme, are text files that contain layout information and information about the values that will be shown.

The simplest form of Karamba is to load a file containing the word karamba. This will give you a empty transparent window with the size 300x300. A better idea is to enter something like this in a file:

karamba x=30 y=30 w=400 h=200 interval=2000

This will bring up a window at 30,30 with the size 400x200, and the window will refresh every 2000 milliseconds = 2 seconds.

The graphics elements of Karamba are called meters. The meters can be connected to sensors. A sensor can get, e.g., the current CPU load, the uptime, the date, and other a lot of other things. It is also possible to display the output of an external program in a meter.

Creating a meter is not that hard. A text label can be created by putting this line in the file:

text x=10 y=10 value="This is a test"

To add some more spice we connect a sensor to a meter: text x=15 y=25 sensor=uptime

A graph that logs the CPU load can be made like this: graph x=10 y=40 w=200 h=60 sensor=cpu

Adding an image (the path is either relative to the configuration file or an absolute path): image x=10 y=270 path="picture.png"

An introduction to the format parameter: text x=10 y=330 sensor=memory format="You have %tm MB memory"

Please note that only one meter per line in the configuration file is allowed. No spaces are allowed around the '=' characters.

Notes and known bugs

In Karamba's current state all the graphic elements inside one configuration file have the same refresh rate. So it could be wise to split up a configuration into smaller parts, if different parts need different refresh times. An area showing a log file, for example, probably does not need the same refresh rate as an area showing the CPU load. The refresh rate of the sensors can be set individually.

Karamba does not work with backgrounds without a picture, i.e., solid color, gradient, or pattern. One can get around this bug by creating a transparent .png image (the size can be 1x1 pixel) and selecting this as the background picture.

Quick Links

Project hosted by: Logo
Primary Author:
 Adam Geitgey <>
Original Karamba Author:
 Hans Karlsson <>
License: GPL