Skip to content
Gingka Akiyama edited this page May 27, 2020 · 11 revisions

What is Conky?

Conky is a program that can display arbitrary information (such as the date, CPU temperature from i2c, MPD info, and almost anything else you desire) to the root window in X11. Conky normally does this by drawing to the root window, however Conky can also be run in windowed mode, though this is not how Conky was meant to be used.

Syntax of configuration files

${var arg1 arg2 ... argn}

For instance, the Conky manual indicates that function audacious_bar (height),(width) is available. You can use it in writing, e.g. ${audacious_bar 6 220} to get a bar with 6 pixel height and 220 pixel width. In that case you could write ${audacious_bar 6,220} as well.

What's wrong with Torsmo?

Conky is a fork of Torsmo, so there is nothing stopping anyone from continuing to use Torsmo. Second, Torsmo is unmaintained. It has bugs and lacks features. Although Conky isn't perfect, it's still maintained. Also, Conky 2.x is entirely original code. Only Conky 1.x is based on the Torsmo code. Full credit is also given in the code to the original Torsmo authors (who deserve plenty of credit for originally creating such a cool little application).

Conky won't stop flickering

Conky is designed to draw to the root desktop window. However, there are several other applications that like drawing to the root desktop window. Because of this, Conky has two options available to get around this problem:

  • You can try enabling double-buffer by adding double_buffer = true to your conky.conf file. Conky's double-buffer option uses the X double-buffer extension to provide a flicker-free Conky. When you have problems with a disappearing conky or desktop use this option to bring the conky window everytime on top of the desktop. own_window_hints='below'

  • Conky can run in windowed mode, meaning that instead of drawing the root window it draws to its own window. You can move this window around and resize it by right-clicking or left-clicking on the window while holding down the Alt key.

Double buffer isn't working!

More than likely you aren't loading the double buffer extension when Xorg starts. Luckily, it's easy to fix. Open up the Xorg configuration file (usually /etc/X11/xorg.conf) with your favourite text editor, and find the line that says:

Section "Module"

Then, after that line, add:

Load "dbe"

Restart Xorg (my preferred method is the good-old control+alt+backspace) and enjoy.

Why doesn't Conky work with Gnome/KDE/nautilus/enlightenment/fluxbox/Xfce/WindowManager/blackbox/<insert any other WM/DE/application that draws to the root window here>;

Please see Conky won't stop flickering

Transparency doesn't work! Why is this and how can I fix it?

Conky uses "pseudo"-transparency. What this means is that is not a truly "transparent" window. What it does is read the background of the root window, and changes its own background to the section of the image it finds. Some Window or Desktop Managers do not set a background to the "real" root background, and instead place it on a layer above the root window. To fix this, you can use an application such as qiv, "esetroot" which is included with Eterm , "fbsetbg" which is included with fluxbox, or feh.

Specifically, for KDE4 you could call feh from inside your conky.conf with the following line:

${texeci 3600 feh --bg-scale "`grep 'wallpaper=' ~/.kde/share/config/plasma-appletsrc | tail -n1 | tail --bytes=+11`"}

Where is conky.conf?

No conky.conf is created automatically. To create the default one, run:

mkdir -p ~/.config/conky
conky -C > ~/.config/conky/conky.conf

Also check Configs for more examples.

Is it possible to make Conky read two config files?

No, it's not possible. However, you can have two or more instances of Conky running at the same time with different config files, e.g.

conky -c ~/.config/conky/conky1.conf
conky -c ~/.config/conky/conky2.conf

You might consider launching it in its own window (-o arg) in this case.

Can I monitor another computer with Conky?

Conky is not network transparent so far, though we have plans about adding network support. While it's not ready, you can use X forwarding to run a Conky window on another computer. Since Conky can output the result of an arbitrary script, you can also have the network layer in a script, and Conky will happily display your script result.

For X-forward, install Conky with all needed (x)libs on the target-computer and enable x-forwarding in the sshd.

then start it on the client with:

ssh USERNAME@TARGET_HOSTNAME -Y -C /PATH/TO/conky &" (get path of conky by "which conky")

To monitor an entire network of devices one can use collected, a distributed daemon with low overhead, message encryption/signing, SNMP, interfaces to python, rrdtool, RouterOS and many other capabilities to monitor things remotely. The data from collected can be fed to Conky trough the collected "unixsock" plugin, accessed with lua and the luasocket library. I'm starting a parser for this infrastructure and so far I could monitor Linux boxes with uptime, loadavg, cpu, memory, processes, disk and network. If anyone is interested in development or just wants to peek at the code (I warn you — ugly at this time) just drop me a mail to ldetv-a NOSPAM yahoo DOT com. It would really kick ass to make real-time network monitoring with Conky / lua / cairo a reality.

How can I run custom scripts?

Use ${exec* variables. See man conky for more information.

# config: conky.conf

conky.config = {
    own_window = true,
    alignment = "middle_middle",
}
conky.text = [[
${execp /tmp/bash.sh}
${execp /tmp/python.py}
${execp /tmp/lua.lua}
]]

# script: /tmp/bash.sh

#!/usr/bin/env bash
echo "hello via bash"

# script: /tmp/python.py

#!/usr/bin/env python3
print("hello via python")

# script: /tmp/lua.lua

#!/usr/bin/env lua
print("hello via lua")

How can I get involved?

There is always plenty to be done (find/fix bugs, write docs, write new code) so you shouldn't have much problem there. If you want to get involved in Conky's development, the best thing to do would be to come to the Conky IRC channel #conky on irc.freenode.net. There is usually at least one developer there at any given time. If you don't like IRC, you can start submitting patches uses the SourceForge trackers or the mailing lists.

Conky doesn't compile on NetBSD!

NetBSD is not supported by Conky at present. The support existed in Torsmo, however many features were added in Conky and it wasn't able to link on NetBSD because of not implemented functions. So NetBSD parts were disconnected from the build a few months ago. Anyway, it should not be hard to add NetBSD support, all you need is just uncomment appropriate lines in configure.ac and Makefile.am and then add empty stubs for missing functions to src/{net,open}bsd.c. If you're really willing to make Conky work, please mail to novel@FreeBSD.org.

My question wasn't answered here. Where can I get help?

The best place to get assistance is the Conky IRC channel #conky on irc.freenode.net. If that's no good, you can try the many services available from SourceForge on the Conky project page at http://sourceforge.net/projects/conky/

Clone this wiki locally