Conky with Compiz

Yesterday I wrote about compiling conky from source.  Today I want to give a quick rundown on how I set up conky to run with Compiz Fusion with multiple desktops.

First, this doesn’t work perfectly, unfortunately conky uses pseudo transparency, which means it draws it’s own background.  This means that if you run one conky instance it will draw the first background it finds.  Which is fine until you use multiple background.  This causes conky to have the first desktops background on any other desktops you move to.  Looks kind of funny.

First a caveat, by using this method you will no longer have desktop icons.  If this is a problem for you, this method won’t be your best solution.

First the windows settings in my conkyrc:

own_window yes
own_window_hints undecorated
own_window_type normal
own_window_transparent no

This lets conky draw inside it’s own window, does not show borders, and draws a background.
Second you should Nautilus from drawing your desktop. This is also what keeps you from having icons. Run
gconf and go to apps>nautilus>preferences and unpick “show_desktop”

At this point you could quit, but conky will be in your taskbar, and won’t have transparency. So the next step is to make changes to your compiz settings. Go to System>Preferences>CompizConfig Settings Manager. (If you do not have this entry run sudo apt-get compizconfig-settings-manager)

First go to Window Management and select Window Rules. In each of the following boxes add the following entry “class=Conky”. Skip Taskbar, Skip Pager, Below, Sticky, None movable windows, Non resizable windows, Non minimizable windows, Non Maximizable windows, None closable windows, and No Focus. This will force conky to remain below your windows and sit on all desktops.

Next set some transparency. Click back, then General Options. Choose the Opacity Settings Tab, and choose New under Window Opacities. Under the option Opacity windows put class=Conky. For the window values I use 50, but you can play with this until it suits you.

Now conky should meld well with your desktop, and allow you to have different backgrounds on each desktop.


  1. waveclaw says:

    On openSuSE 11.1 using the default compiz 0.7.8 and the Packman repository version 1.7.0 of conky, the instructions are slightly different at the end.

    For compiz on openSuSE, there are not Opacity settings in General. Instead:

    1. Run ccsm or right click the Compiz-Fusion icon in your system tray and select Settings Manager.
    2. In Accessibility section, find the Opacity, Brightness and Saturation plugin.
    3. click the Enable Plugin box as the plugin is not loaded by default
    4. On Opacity tab, select New under ‘Window specific settings’
    5. For the Windows value, type class=Conky
    6. For the Windows values [sic] value, move the scrollbar to 50
    7. Press close to save

    Note that the text of conky and all bars, graphs,etc will also be dimmed by 50%. You can adjust the slider in ccsm dynamically to play with the value.

  2. Esed says:

    Thanks man, this helped me to make my desktop the way I like in Ubuntu 12.04