HOWTO: Configure Conky

What is Conky?

Simple definition:

Conky is a nice little program which runs in the background of Linux system and can display all kind of information to you while using very little system resources.

Configuring Conky

There are indeed multiple different ways to configure conky, which you shall find out if you search conky configs via Google or any other search engine out there. I have to say that personally I think that conky is a superior application which delivers a modern and attractive look to your desktop in ways which is very hard to top with anything else that is out there today. In addition conky is a very flexible piece of software.

The previous is however only my personal opinion and it is best for every user that they can decide for themselves what they think of conky. So let’s get down to business and configure the application.

1. Installing the needed applications: conky, gcal (calendar application which we will be using alongside conky) and exaile (music player to display currently playing song/track in conky)

In Debian/Ubuntu

su root OR sudo su

apt-get install conky gcal exaile    NOTE: there is also a package called conky-all which you can install to have all the available features if you want.

The conky config file

Conky uses a simple text file as a configuration storage. Configuring conky can be little confusing and to help you to get started here is my current configuration which has been fused together from various sources. The sources have been unfortunately forgotten during the passage of time followed by a few accidental bookmark storage disasters.

2. To get things going open a new empty text file. (for example open a gedit text editor)

Paste the following code to a newly opened empty file: NOTE: Lines starting with # are comments and are not read by conky

#  Window rules

alignment top_left
gap_x 30
gap_y 260
minimum_size 220 0
maximum_width 1850
own_window yes
own_window_hints below,skip_pager,skip_taskbar,undecorated,sticky
# font defaults:
use_xft yes
xftfont DejaVu Sans Mono:size=12
xftalpha 0.9
override_utf8_locale yes
own_window_type override
own_window_transparent yes

## images, buffering, shading
imlib_cache_size 60
double_buffer yes
draw_shades no
default_shade_color 777777

## misc text formatting
short_units yes
pad_percents 0
border_inner_margin 0
uppercase no
use_spacer right

## outlines and borders
draw_outline no
draw_borders no
draw_graph_borders no
border_width 0

## stdout/console printing
out_to_ncurses no
out_to_console no

## process settings
top_name_width 5
#no_buffers yes

#### end config

#### Begin display information
## everything below ‘TEXT’ is drawn on screen

TEXT

###System information###

${font Arial:bold:size=10}${color white}SYSTEM ${color tan3} ${hr 2}
$font${color DimGray}$sysname $kernel $alignr $machine
Home workstation
${color white}UpTime: ${color tan3}$uptime
${color white}Kern: ${color tan3}$kernel
${color white}Load: ${color tan3}$loadavg
${color white}Processes: ${color tan3}$processes
${color white}Running: ${color tan3}$running_processes
${color white}Highest CPU:
${color tan3}${top name 1}${top_mem cpu 1} ${color tan3}

#Gcal calendar info

${font DejaVu Sans Mono :size=10}${exec gcal –starting-day=monday | cut -c23-44 –complement}

###More system information###

#Time info

${font Arial:bold:size=10}${color white}TIME ${color tan3}${hr 2}
${color tan3} ${font :size=30}$alignc${time %H:%Mh}
${voffset -30}${font :bold:size=10}$alignc${time %d %b. %Y}
${font :bold:size=10}$alignc${time %A}

${color white}MEM: ${color tan3} $memperc% $mem/$memmax
${color white}SWAP: ${color tan3}$swapperc% $swap/$swapmax
${color white}ROOT: ${color tan3}${fs_free /}/${fs_size /}
${color white}HOME: ${color tan3}${fs_free /home}/${fs_size /home}
${color white}HDD: ${color tan3}${fs_free /media/5488D87039562188}/${fs_size /media/5488D87039562188}
${color white}NET:
${color white}Up: ${color tan3}${upspeed eth0} k/s
${color white}Down: ${color tan3}${downspeed eth0}k/s${color}}

#Exaile music player information

${execi 1 exaile –get-title} — ${execi 1 exaile –get-artist} — ${execi 1 exaile  –current-position} — ${execi 1 exaile  –get-volume}

NOTE: WordPress shows a single line – in the above exaile script. it should be –  –  (without space between them)

3. When you are done with the copy pasting save the file as .conkyrc (. makes the file hidden) and place it inside your home directory.

Note: You may also save conky configuration file to an alternative location with a different name. But if you do so then when you start conky you should use the following startup command:

conky -c the_full_path_to_your conky_config_file

The default way to start conky is simply by executing the command conky when desired OR alternatively you can add the conky command to your system startup command listing so that conky will start every time when you arrive to your desktop.

And last but not least here is a screenshot of conky running with the config described in this post:

Image

EDIT:

There was actually a small error in the original gdescal piece posted above as the dates are being cut off when they reach a certain value (between 23-44). To fix this change the following:

#Gcal calendar info

${font DejaVu Sans Mono :size=10}${exec gcal –starting-day=monday | cut -c23-44 –complement}

to this:

#Gcal calendar info

${font DejaVu Sans Mono :size=10}${exec gcal –starting-day=monday | cut -c32-44 –complement}

and everything should be ok.

Edit: Originally I spoke of gdeskcal which was a mistake. A gcal is the calendar application meant here.