Conky System Monitor Part 2

Published on December 19, 2022 at 6:31 pm by LEW

Introduction

Today we will start configuring conky to display some system information. My Focus in this post will be on overall configuration. In the next post we will look at how to display information.

If you look at any of the documentation, most of the options are given alphabetically. And this is how things are laid out in the default configuration file. To me this is not the best way to lay things out. I would rather do it functionally, which is how I am going to cover things in this post.

Because we are looking at overall configuration, or focus will be on the conky.config section of the configuration file.

Conky Version Documentation

I mentioned this in my first post of this series, but feel it is important enough to mention again. The Conky configuration file underwent some changes around version 1.10. And there are two sets of documentation floating around out there.

The documentation most likely to come up in a search is this one, created around the time of conky 1.8.1. On the other hand if you are using conky 1.10 or later, this is the page you probably want. There is quite a bit of similarity between the two sets, but there are also some differences. Ninety percent of the time you can use either set. Just be aware of that ten percent where things might not work as expected.

Configuration Comments

In the conky.conf file any line starting with a double dash is a comment. Like all code, you should liberally use comments, so you can remember what you where doing when you revisit the code a year latter. In the example below I have laid out several sections in the conky.conf part of the file using comments.

-- Conky Configuration for Prometheus Desktop
-- Version 1.2.3  Date: 23 DEC 2021
Conky.config = {
-- General settings
-- Location settings
-- Window settings
-- Color settings
-- Fonts settings
-- Other settings
}
conky.text = [[
-- Coments
]]

Configuration Settings Overview

If you use conky at all, you will come to realize the vastness of the number of settings. Obviously I will not be able to cover them all, so I will focus on the ones I use the most for simple system information displays.

Note that conky settings take the form of “parameter = setting,”. Make sure to include both the equal sign and the comma.

General Settings

In the General settings we will define some global parameters.

background: If set to true conky will start as a background process.

cpu_avg_samples, diskio_avg_samples, net_avg_sample, update_interval: These, and a few related settings, control how conky samples system data and take integer values. Generally conky will average a number over a certain number of samples. For example I usually set the CPU to average over 2 to 4 samples. The exception os the update_interval which is how often conky will update the display. By default it is set for 1 second.

double_buffer: This is an option that may help with flickering display. If you do not have this problem, you may not need this one.

text_buffer_size: This is the size of the text display buffer. It defaults to 256. If you are having trouble with text on a large conky display you can try increasing this value.

Location Settings

There are three configuration options that control where the conky display will appear on your screen. There are also a couple of related items that I include in this section.

alignment: This is the general position of the conky display and it defaults to top_left. You can use combinations of top, middle, bottom,left, and right to position the display. Note that you can also abbreviate, for example top_left can be tl.

gap_x, gap_y: The gap between the conky display and the edge of the screen. Note no negative numbers, the direction automatically changes depending on alignment

.minimum_height, minimum_width: This is the minimum width and height of the conky display in pixels

Display: You only need this one if you have multiple monitors, and want to control where the conky display opens.

Window Settings

These settings define the overall global look for the conky display.

border_width, border_inner_margin, border_outer_margin, draw_borders, stippled_borders: These settings control the border around the conky display. If you have draw_borders set to false, then these settings have no effect.

own_window, own_window_argb_value, own_window_argb_visual, own_window_class, own_window_colour, own_window_hints, own_window_title, own_window_transparent, own_window_type: These settings control how conky is displayed. These will depend to a large extent on your window manager4 and whether compositing is being used. The argb and transparency settings will not be needed without compositing. I believe the class and title refer to WM_CLASS settings, which could affect some interactions with your Window Manager. The colour is the background color of the conky display. The type parameter will change the way conky is drawn on your desktop (normal, desktop, dock, panel, or override).

Color Settings

These settings allow you to change the colors of various parts of the conky display.

default_outline_color, default_shade_color, default_color: these all control overall aspects of display color. The default is the border color. The outline is for objects that have outlines. And shade is short for shading.

colorN: This allows specification of up to 9 colors (color0 to color9) that can be used in the text area to change individual displayed colors. It is much simpler to write $color4 than ${color #56a34f} (we will get into this more in the next post).

Font Settings

These settings are used to control the fonts used in the conky display.

use_xft: This allows the use of anti-aliased vector fonts (vastly improving readability and simplifying code, be glad you have not had to work with bitmap fonts in X)

font: This sets the default font. It consists if font family name. Type, size and other characteristics. This is an xft example; font ‘DejaVu Sans Mono:size=12:bold’.

fontN: Similar to color above you can define nine fonts that can be used inline with font0 to font9.

Other Settings

This is the section where I put any remaining configuration variables. Depending on your situation and needs this can vary from user to user. Your best option is to read the various documentation to determine what you need.

Conclusion

This has been a quick overview of variables for configuring conky at a global level. While I have tried to list the most common and most useful options, we have barely scratched the surface of what is available.

I will be the first to admit that the documentation at the two sites above can be a little vague in some cases. So let me offer you an additional reference; Casey’s Conky Reference with Examples.

Conky System Monitor Part 1

Conky System Monitor Part 2

Conky System Monitor Part 3

Add New Comment

Your email address will not be published. Required fields are marked *