Gentoo Linux Conky Howto Bill Woodford Brenden Matthews This document describes how to install and configure the system monitor known as Conky. 1.0 2006-02-22 Background
Introduction to Conky

So you have a Gentoo machine, and have already learned 30 different commands to monitor different aspects of what your computer is doing at the current moment. What do you do from here? Isn't there an easier way to monitor system performance and see what its doing, as well as the resources its using to perform all those tasks? This is what a system monitor, such as Conky, provides.

What it does

Unlike other system monitors such as top, Conky can run as a window in an X session, or by drawing to the root window (there is also an option to have Conky display information to stdout, but we won't discuss that here). It displays the information it has gathered through the use of both text, progress bars, and graphs. Also unlike top, the way it is formatted is completely user-configurable. In addition to monitoring the system itself, Conky can also give you information about several music players (such as XMMS, BMPx, Music Player Daemon, and Audacious Media Player), tell you how many new messages are in your mail spool, and plenty more. If the functionality you require isn't in Conky yet, it is a simple matter of writing a script to get the information you would like - some examples of this, which have already been done are RSS feeds, POP3 e-mail message count, local weather, boinc status, and even the status of portage.

Installing Conky
Base install

Gentoo provides an ebuild to quickly and easily install Conky. Pay particular attention to the the USE flags. You'll most likely want X11 support (X), and make sure you select the USE flags for any music players (other than MPD) which you want. XMMS (xmms), Audacious (audacious), BMPx (bmpx), or XMMS support via the xmms-infopipe plugin (infopipe).

# Example line to append to /etc/portage/package.use if you don't want the default USE flags.
app-admin/conky xmms infopipe -ipv6

In addition, the truetype USE flag compiles support for TrueType fonts with the use of Xft. Most users will want this as well.

Once you have your USE flags correctly set up, it's time to install Conky!

emerge -av conky

You can test Conky to see how it will look by running the command conky in a terminal. This will likely give you a good reference to how it will look and what you want to change, add or even remove.

$ conky

Once you have an idea of how Conky looks, you can now move on to configuring it!

Configuring Conky

By default, Conky will look for a configuration file in the users home directory located at ~/.config/conky/conky.conf This file contains all the configuration options, and the static text, colors and other variables which control what data is shown to the user. Conky also provides a great sample configuration, located at /usr/share/doc/conky-version/Conkyrc.sample.gz Make sure to replace "version" with the specific version of Conky you have installed.

$ mkdir -p ~/.config/conky
$ zcat /usr/share/conky-1.6.0/conkyrc.sample.gz >> ~/.config/conky/conky.conf
Make sure to replace "1.6.0" with the specific version of Conky you have installed.

Now, open up the sample configuration in the text editor of your choice. You may notice that there are two seperate sections of the configuration file. The first section of the file, contains the programs configuration options and controls how it acts. This includes things such as the update_interval, or how often Conky will update the information on the screen. The second section contains the actual text, graphs, and variables which are rendered on the screen. This includes things such as the system uptime ($uptime), cpu usage ($cpu) and anything else you want to be shown. The first section of the file starts right from the beginning, the second section is comprised of everything after the line which says "TEXT". Comments in the file start with #, but keep in mind that even if a line is commented out in the second section of the file, the text will still be rendered to the screen.

Lists of all the available configuration options and variables are kept at http://conky.sourceforge.net/config_settings.html and http://conky.sourceforge.net/variables.html. Also, there's a few great sample configurations and screenshots of working configurations at http://conky.sourceforge.net/screenshots.html.

Extending Conky
Beyond the built-in variables

So you've gotten this far, and have scoured the Conky documentation for that extra variable which Conky just doesn't seem to have... You're in luck! Conky provides several variables for just this reason! $exec Will run a command every time Conky updates, $execi will run a command at a specified interval and $texeci will run a command in it's own thread at a specified interval.

${exec grep 'sudo' /var/log/messages | tail -n 4}
${execi 30 ~/scripts/emerge-status.sh
${texeci 600 ~/scripts/gmail.pl}
While any command which works in a command shell will work in any of these variables, it is important to keep in mind that the commands must exit. This means that commands like tail -f which keep running will NOT work properly.