----------------- Overview ----------------- taskbar is a small utility that displays a Win95 type taskbar. Having ditched Windows in favor of Linux, I found that I missed the functionality of the taskbar and set off to emulate it. I tried some alternatives (fspanel is what I based most of my work from) but found that there were things I wanted to add or tweaks here and there. So in the essence of learning, I reinvented the wheel. taskbar requires a fairly new window manager. It must support EWMH (enhanced window manager hints). See http://www.freedesktop.org/Standards/wm-spec for the spec and a list of compliant window managers. taskbar also makes use of the Imlib imaging library. taskbar has the ability to load a set of plugins which will be displayed on the right side of the bar (i.e. the 'tray'). I have included some simple plugins such as a clock display as well as an icon that controls my background application for easily switching background images. Custom plugins can obviously be made by using the plugin.h header file. taskbar can optionally be built to support Xft anti-aliased fonts. Use the --enable-xft option to enable it (it defaults to disabled). taskbar was written with speed in mind and is written solely in C and uses low level X calls. I don't have the project on sourceforge yet, but time permitting I'll put it on there. ----------------- Usage ----------------- Usage: ../src/taskbar [OPTION]... Displays a Win95 style taskbar in X -t, --top puts the toolbar on the top of the screen -x, --xft enable the use of Xft antialiased fonts -d, --daemon run as a daemon -f, --font NAME sets the font used -m, --enable-menu enables the start menu -a, --fancy-menu enables Office 2000 style fancy menus -s, --disable-tooltips disables tooltips in the module window -b, --disable-module-border does not draw a rectangular module border -i, --disable-menu-icons do not use icons in the start menu -h, --help displays this help ----------------- .taskbar ----------------- The .taskbar initialization file is read when the application first starts. The only options that the program uses are the start_menu and plugins entries. You can put anything you like in the file (as long as it follows the syntax) but the program will ignore everything except start_menu and plugins. The start_menu section is used when you specify -m on the command line to enable the start menu. plugins are used regardless of the mode. If you make changes to the start_menu section, you can send a SIGHUP to taskbar and the menu will change accordingly. The syntax of the .taskbar file is very simple. You specify a item and a value. A value can be a group of other items and values. The entries underneath the start menu are pretty self-explanatory. Each subitem becomes a submenu. You can specify items by using item = value or by using item = { icon = ...; cmd = ...;}; This lets you specify an icon for each menu item if you so desire. If you included Imlib support, you can use any image file Imlib knows about (jpgs, pngs, gifs, etc). If not, you can try using xpm files. Most X implementations support the loading of these files. If you use 'default' as your icon value it will show a basic window icon. You can use the special item of 'separator' to include a separator where you wish. Here is a short example describing the start_menu entry start_menu = { Programs = { Emacs = "emacs &"; Gtali = "gtali &"; Mozilla = { icon = /usr/share/pixmaps/mozilla.xpm; cmd = "MozillaFirebird &"; }; separator = "dummy"; Editors = { Abiword = "abiword &"; Gnumeric = { cmd = "gnumeric &"; icon = /usr/share/pixmaps/gnumeric.xpm; }; }; }; Here is a short example describing the plugin entry plugins = { clock = { path = /usr/share/taskbar/libclock.la; }; custom = { path = /usr/share/taskbar/custom.la; }; }; ----------------- Plugin options ----------------- Plugins can take options from the .taskbar file. They are listed under the "options" entry on the same level as the "path" parameter. The options are obviously plugin specific. Here is an example plugins = { my_plugin = { path = /usr/plugin.so; options = { custom_option1 = "45"; custom_option2 = { one = "two"; two = "one"; }; }; }; } --------------------- clock plugin options --------------------- The clock plugin supports the following options: timeFormat = dateFormat = tooltipFormat = The strings are all parameters used in the strftime function (e.g. a simple time format is "%I:%M %p"). Please see the strftime man page for more information. --------------------------- background plugin options --------------------------- The background plugin supports the following options: socket = timeout = The socket is a path to the background controlling socket (it defaults to /tmp/background). The timeout is the time in milliseconds that it will wait on a query before returning. It defaults to 1000 which is one second. -------------------------- sensors plugin options -------------------------- The sensors plugin was developed using Kernel 2.6 and uses the /sys interface. It may not work with the 2.4 kernel series. It supports voltage, temperature, and fan values. It can also optionally display an icon with the reading to better identify values. The sensors plugin supports the following options: path = icon = conversion = The path parameter expects a fully quailified path name for the sensor (typically underneath the /sys directory). An example would be path = /sys/devices/legacy/i2c-2/2-0290/temp_input1; You must specify either a temp_input*, fan_input* or in_input*. Other types may be added later. The icon parameter is either "none", "default", or an integer from 0 to 5. 0: a cpu icon 1: another cpu icon 2: a fan icon 3: a pci card icon 4: a temperature icon 5: a voltage icon The conversion parameters can either be 'F' or 'f' which indicates that it should report results in Fahrenheit instead of the default Celcius.