Home Up
Screenshots
Configuration file
Demo configuration file
Arrows to move between faces
...Time and Date Widget
...CPU Load Widget
...Memory Widget
...Process Widget
...The Disk Size Widget
...Action Icon Widget
...Random Picture Widget
...Satellite Widget
...RSS Update Widget
...Twitter Widget
...Strawberry Widget
...To Do Widget
...Retrieve Picture and Display Widget
...Volume Widget
...Script Print Widget
TODO: how to develop a widget...
The CrocBar is a nice and configurable widget bar, written in Java and consequently mostly portable across operating systems. You group in this window all widgets you like, such as action buttons, weather, random images etc.
I use it at home and at work, honestly it's great and does not consume much CPU. The application has been developed by my husband. Congratulations !

Screenshots

Have a look at my desktop's screenshot below.

Figure 1. Fvwm desktop on Linux Mint with two crocbars, one on the bottom (displaying images) and one of the right. Both crocbar are nearly transparent.

A detailed view of the two-face crocbar is shown below. Figure 2 for the second face, and Figure 3 for the second face.

CrocBar configuration file

The CrocBar's configuration is located in an XML file. The first few lines describe the global settings of the crocbar:
<?xml version="1.0" encoding="ISO-8859-1" ?>

<CrocBarConfiguration>
<CrocBarSizeAttributes x="-5" y="50" width="110" height="625" />
<CrocBarColorAttributes bg="50,40,40, 125" fg="42,218,33" />
<CrocBarTableAttributes cellx="4" celly="31" />
<CrocBarFaceAttributes nb_of_face="2" />
Note that:
  • negative coordinates may be used: -5 means 5 pixels before the maximum value
  • colors are specified in RGB. The fourth value corresponds to transparency. Therefore a 0 means fully transparent.
The CrocBar is multi-face (here 2 faces). Each face is seen as a table with x columns and y rows. The actual size of each cell depends on the global width and height specified for the crocbar. The CrocBar is then filled by widgets. You can specify as many widgets as you wish (or quite !). The configuration of each widget starts and ends with the same lines:
<CrocWidget type="TimeAndDate" poscellx="0" poscelly="3" nbcellx="4" nbcelly="2" bg="50,40,40, 125" fg="255,166,38">
<ExtraParams>
<!-- Widget dependant parameters -->
</ExtraParams>
</CrocWidget>
The type is the name of the widget. Then you specify where this widget should show (x and y cell coordinates) and its height and width (in cells). All values are numbers of cells (not pixels). bg sets the background color and fg the foreground color. Additionally, an optional face parameter specifies on which face the widget should display. By default, it shows on all faces. In the example below, the MultiplePictures widget displays on the first face (0).
<CrocWidget type="MultiplePictures" face="0" poscellx="0" poscelly="0" nbcellx="4" nbcelly="3" bg="50,40,40" fg="255,166,38">
Widgets are then configured by widget dependant parameters. Don't forget to end your configuration file:
</CrocBarConfiguration>

Sample Configuration File

Upload it here.

The Time And Date Widget

This widget displays the date and time. It is also in charge of alarms. You can set several alarms. When it's time, the entire bar will shake and display the corresponding message to your alarm.
<CrocWidget type="TimeAndDate" poscellx="0" poscelly="3" nbcellx="4" nbcelly="2" bg="50,40,40, 125" fg="255,166,38">
<ExtraParams>
<ShowSeconds value="false" />
<ShowYear value="false" />
<Alarm value="09:00" label="Go to Work !" />
<FontColor value="255, 166, 38" />
<FontSize value="16" />
<ClockLabel value="New York" />
<OffsetMinutes value="-360" />
</ExtraParams>
</CrocWidget>
  • ShowSeconds, ShowYear handle whether you want seconds/year to be displayed or not by the clock
  • FontColor, FontSize handle the appearance of the clock's font. I'm close to blind, I use 16 px ;-)
  • Alarm: use one per alarm you want to set. The value is the time to set the alarm on. The label is the text that'll be displayed when the alarm goes off.

Arrows to move between faces

You can move to the previous face by sending the command "previousface", and to the next one with "nextface".
<CrocWidget type="ActionIcon" poscellx="0" poscelly="35" nbcellx="1" nbcelly="1" bg="50,40,40,0" fg="255,166,38">
<ExtraParams>
<PathToNormalIcon value="images/StepBack22.png" />
<PathToActiveIcon value="images/StepBack32.png" />
<ExecutePath value="previousface" />
</ExtraParams>
</CrocWidget>
That for the next face:

<CrocWidget type="ActionIcon" poscellx="3" poscelly="30" nbcellx="1" nbcelly="1" bg="50,40,40, 
200" fg="255,166,38">
<ExtraParams>
<PathToNormalIcon value="images/StepForward22.png" />
<PathToActiveIcon value="images/StepForward32.png" />
<ExecutePath value="nextface" />
</ExtraParams>
</CrocWidget>

The CPU Load Widget

This widget is similar to the famous Unix xload.
Currently, this widget does not work on Windows.
<CrocWidget type="CPULoad" face="0" poscellx="0" poscelly="5" nbcellx="2" nbcelly="3" bg="50,40,40, 125" fg="255,166,38">
<ExtraParams>
<ShowLabel value="true" />
<Label value="Uptime" />
<UpdateTime value="5" />
<LoadCommand value="uptime" />
<OS value="Solaris" />
<FontColor value="255, 166, 38" />
</ExtraParams>
</CrocWidget>

The Memory Load Widget

This widget graphically shows how much RAM you are using. Currently, this widget does not work on Windows.
<CrocWidget type="MemoryLoad" face="0" poscellx="2" poscelly="5" nbcellx="2" nbcelly="3" bg="50,40,40, 125" fg="249,36,36">
<ExtraParams>
<ShowLabel value="true" />
<Label value="memory" />
<UpdateTime value="10" />
<OS value="Detect" />
<FontColor value="249, 36, 36" />
</ExtraParams>
</CrocWidget>
The Main Processes Widget This widget displays the name of the most demanding process currently running. It does not work on Windows yet.
<CrocWidget type="MainProcesses" face="0" poscellx="0" poscelly="8" nbcellx="4" nbcelly="2" bg="50,40,40, 125" fg="255,166,38">
<ExtraParams>
<WaitingTime value="2000" />
<ShowNProcesses value="3" /> <!-- The number of processes to show -->
<FontColor value="255, 166, 38" />
</ExtraParams>
</CrocWidget>

The Disk Size Widget

This widget shows how much free space you have on a given partition.
<CrocWidget type="HDSize" face="1" poscellx="0" poscelly="24" nbcellx="2" nbcelly="3" bg="50,40,40, 125" fg="255,166,38">
<ExtraParams>
<Path value="/" />
<Label value="Root" />
<UpdateTime value="10" />
<FontColor value="255, 166, 38" />
</ExtraParams>
</CrocWidget>

The Action Icon Widget

This widget is similar to FVWM Buttons. It creates a shortcut on the Crocbar to start an application or any shell command.
<CrocWidget type="ActionIcon" face="0" poscellx="0" poscelly="10" nbcellx="2" nbcelly="2" bg="50,40,40, 125" fg="255,166,38">
<ExtraParams>
<PathToNormalIcon value="images/firefox-32x32.png" /> <!-- Image to show when mouse is not over -->
<PathToActiveIcon value="images/firefox-48x48.png" /> <!-- Image to show when mouse is over the button -->
<ExecutePath value="firefox" /> <!-- Specify the absolute path if necessary -->
</ExtraParams>
</CrocWidget>
The ExecutePath may contain more complicated commands such as:
<ExecutePath value="xwd -root -out /tmp/screenshot.xwd" />
As long as the command exists on the OS you use the CrocBar on, this widget is portable. It has been tested over Linux, OpenSolaris, Windows...

The Random Picture Widget

This widget displays a different image each time you click on it. The image is grabbed from a configurable pool of images. The images are loaded smoothly while the crocbar starts.
<CrocWidget type="RandomPictureWhenClick" face="1" poscellx="0" poscelly="0" nbcellx="4" nbcelly="3" bg="50,40,40" fg="255,166,38">
<ExtraParams>
<PathToImage value="images/icon-pico.jpg" />
<PathToRandomImage value="http://axelle.apvrille.free.fr/images/bdpico/97-bd-picoluge-1024.jpg" />
<!-- put other images here -->

</ExtraParams>
</CrocWidget>

The Weather Satellite Widget

Currently, this widget shows a satellite image over France (or Europe).
<CrocWidget type="Sat24" face="1" poscellx="0" poscelly="5" nbcellx="4" nbcelly="3" bg="50,40,40" fg="255,166,38">
<ExtraParams>
<UpdateRate value="600000" />
</ExtraParams>
</CrocWidget>

The RSS Update Widget

This widget lets you know when there's some news on one of your favorite web sites. You specify a URL to the website's RSS feed and the widget displays a new image (update icon) when a difference is detected.
Then, you may access the website with a middle or a right click (requires firefox currently + firefox must be in the path).
This widget is portable.
<CrocWidget type="ShowRSSUpdate" face="1" poscellx="2" poscelly="15" borderX="2" borderY="2" nbcellx="2" nbcelly="2" bg="50,40,40, 125" fg="255,166,38">
<ExtraParams>
<PathToNormalIcon value="images/rss-hq.gif" />
<PathToUpdateIcon value="blah.png" /> <!-- the image to display when an update is detected -->
<RSSPath value="http://www.lightbluetouchpaper.org/feed/" /> <!-- URL of the feed -->
<WebPath value="http://www.lightbluetouchpaper.org" /> <!-- URL for the website -->
<UpdateTime value="3600" />
</ExtraParams>
</CrocWidget> 

The Twitter Widget

This widget posts a new tweet onto your account. To be able to use it, you need a script or an executable able to post on your account. I use tweepy, a Python script.
The script must receive as argument the tweet message to post.
The login, posting on to your tweet account is handled by the script, not by the widget. The widget merely shows a text box to write the tweet, and then executes the command specified in the ExecutePath argument, with the tweet message as argument.
<CrocWidget type="Twitter" face="0" poscellx="2" poscelly="34" borderX="2" nbcellx="2" nbcelly="2" bg="50,40,40, 0" fg="255,166,38">
<ExtraParams>
<PathToNormalIcon value="images/twitter-32x32.png" />
<PathToActiveIcon value="images/twitter-48x48.png" /> 
<ExecutePath value="path/to/executable" /> <!-- The command to execute -->
</ExtraParams>
</CrocWidget> 

The Silly Strawberry Widget

This widget is very silly: you (virtually) eat strawberries. Each time you click on the strawberry, a part of it gets crunched out. And after a while, you have no more strawberry left and have to wait until it reappears.
Of course, you can crunch anything else by replacing the images with any other fruit you are fond of.
<CrocWidget type="Strawberry" face="1" poscellx="1" poscelly="12" nbcellx="2" nbcelly="3" bg="50,40,40, 125" fg="255,166,38">
<ExtraParams>
<PathToFile value="images/fraise1.png" />
<PathToFile value="images/fraise2.png" />
<PathToFile value="images/fraise3.png" />
<PathToFile value="images/fraise4.png" />
</ExtraParams>
</CrocWidget>

The To Do Widget

This widget is a kind reminder of all tasks you still have to do... You can configure tasks dynamically. This widget is portable.
<CrocWidget type="ToDo" face="1" poscellx="0" poscelly="21" nbcellx="4" nbcelly="3" bg="50,40,40, 125" fg="255,166,38">
<ExtraParams>
<ToDo value="WikiSec a terminer" />
<FontColor value="255, 166, 38" />
<FontSize value="12" />
</ExtraParams>
</CrocWidget>

The Retrieve Picture And Display Widget

This widget runs the command in PathToCommand every UpdateRate milliseconds. That script is meant to create a picture named PathToFile and after the script is run, the widget displays the picture. The script must be executable (of course).
<CrocWidget type="RetrievePictureAndDisplay" poscellx="1" poscelly="44" nbcellx="4" nbcelly="4" bg="255,255,255" fg="255,166,38">
<ExtraParams>
<PathToFile value="fan.jpg" />
<PathToCommand value="myscript.sh" />
<UpdateRate value="300000" />
</ExtraParams>
</CrocWidget>

The Volume Widget

You could theoretically add an icon for volume up, one for volume down and one for the current value, but this one is nicer.
<CrocWidget type="VolumeCtrl" poscellx="0" poscelly="42" nbcellx="4" nbcelly="2" bg="50,40,40, 200" fg="255,166,38">
<ExtraParams>
  <CommandForVolumeUp value="volumeup" />
  <CommandForVolumeDown value="volumedown" />
  <CommandForVolumeValue value="volumevalue" />
</ExtraParams>
<CrocWidget>

The Script Print Widget

You can have a script run periodically and display its output.
<CrocWidget type="Script_Print" poscellx="0" poscelly="42" nbcellx="4" nbcelly="2" bg="50,40,40, 0" fg="255,166,38">
<ExtraParams>
    <WaitingTime value="100000" />
    <ShowLines value="3" />
    <Script value="path-to-your-script.sh" />
    <FontColor value="249, 36, 36" />
    <FontSize value="12" />
    <InterlineSize value="14" />
</ExtraParams>
<CrocWidget>