Conky is a really nice little programme when it comes to monitoring and displaying various system information on your desktop.

I’m a friend of tidy desktops, but need detailed information about my system, especially while using virtualisation software. This information should include my CPU and RAM usage as well as networking details. Conky does a great job with this, when set up correctly. While it isn’t a programme that shows off with it’s graphical user interface, simply because it has none, it’s easy on your resources.  Not having a GUI might sound annoying and like a lot of work at first, but it turns out to be not that big a problem at all.

Getting started:

To install Conky in Ubuntu type sudo apt-get install conky into your console or download the package and  compile it from source. Now create a texfile with an editor of your choice and name it .conkyrc. After pasting the following content, you can save it where you like. Keep in mind that you want to be able to find it quickly though, which is why I’m using the Home folder.

To give you an impression of what Conky is capable of, copy and paste this into the just created document:

# set to yes if you want Conky to be forked in the background
background yes
use_xft yes
xftfont HandelGotD:size=9
xftalpha 0.5
update_interval 4.0
total_run_times 0
own_window no
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 200 5
maximum_width 250
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default colour grey
default_shade_color grey
default_outline_color grey
alignment bottom_right
gap_x 12
gap_y 48
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes

TEXT

${color #000000}Time & Date ${hr 1}
${color #BBB3B3}${time %k:%M:%S}
${color #BBB3B3}${Time %A, %m.%d.%Y}

${color #000000}System ${hr 1}
${color #BBB3B3}Uptime $alignr $uptime
${color #BBB3B3}Power $alignr $acpiacadapter
${color #BBB3B3}Battery $alignr $battery
${color #BBB3B3}Temperature $alignr $acpitemp°C
${color #BBB3B3}CPU $alignr ${cpu cpu0}%
${color #BBB3B3}$cpubar $alignr
${color #BBB3B3}Ram $alignc $mem / $memmax $alignr $memperc%
${color #BBB3B3}$membar $alignr

${color #000000}Processes ${hr 1}
${color #BBB3B3}$processes processes ($running_processes running)
${top name 1} $alignr ${top cpu 1} ${top mem 1}
${top name 2} $alignr ${top cpu 2} ${top mem 2}
${top name 3} $alignr ${top cpu 3} ${top mem 3}
${top name 4} $alignr ${top cpu 4} ${top mem 4}
${top name 5} $alignr ${top cpu 5} ${top mem 5}

${color #000000}Network ${hr 1}
${color #BBB3B3}Traffic ${time %B}:                ${color #BBB3B3}Down:  ${execi 300 vnstat -m | grep “`LC_ALL=C date +”%b ‘%y”`” | awk ‘{print $3 $4}’} $alignr
${color #BBB3B3}Up:  ${execi 300 vnstat -m | grep “`LC_ALL=C date +”%b ‘%y”`” | awk ‘{print $6 $7}’} $alignr
${color #BBB3B3}Inbound $alignr ${downspeed eth0} kb/s
${color #BBB3B3}${downspeedgraph eth0} $alignr
${color #BBB3B3}Outbound $alignr ${upspeed eth0} kb/s
${color #BBB3B3}${upspeedgraph eth0}

In addition to that, you would have to install vnstat if you would like to see information about your traffic and internet speed.

To start, type conky in your console. When you make changes to the .conkyrc file and you would like to see whether it works and/or looks the way you want, type killall -SIGUSR1 conky. This will restart Conky directly with your changes.

To find out more about Conky, check the documentary on settings or read forums such as Ubuntu Forums. Especially this is a good start in my opinion, as you can understand the different commands by looking at the screenshots and comparing the provided code.

# set to yes if you want Conky to be forked in the background
background yes
use_xft yes
xftfont HandelGotD:size=9
xftalpha 0.5
update_interval 4.0
total_run_times 0
own_window no
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 200 5
maximum_width 250
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default colour grey
default_shade_color grey
default_outline_color grey
alignment bottom_right
gap_x 12
gap_y 48
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes

TEXT

${color #000000}Time & Date ${hr 1}
${color #BBB3B3}${time %k:%M:%S}
${color #BBB3B3}${Time %A, %m.%d.%Y}

${color #000000}System ${hr 1}
${color #BBB3B3}Uptime $alignr $uptime
${color #BBB3B3}Power $alignr $acpiacadapter
${color #BBB3B3}Battery $alignr $battery
${color #BBB3B3}Temperature $alignr $acpitemp°C
${color #BBB3B3}CPU $alignr ${cpu cpu0}%
${color #BBB3B3}$cpubar $alignr
${color #BBB3B3}Ram $alignc $mem / $memmax $alignr $memperc%
${color #BBB3B3}$membar $alignr

${color #000000}Processes ${hr 1}
${color #BBB3B3}$processes processes ($running_processes running)
${top name 1} $alignr ${top cpu 1} ${top mem 1}
${top name 2} $alignr ${top cpu 2} ${top mem 2}
${top name 3} $alignr ${top cpu 3} ${top mem 3}
${top name 4} $alignr ${top cpu 4} ${top mem 4}
${top name 5} $alignr ${top cpu 5} ${top mem 5}

${color #000000}Network ${hr 1}
${color #BBB3B3}Traffic ${time %B}:                ${color #BBB3B3}Down:  ${execi 300 vnstat -m | grep “`LC_ALL=C date +”%b ‘%y”`” | awk ‘{print $3 $4}’} $alignr
${color #BBB3B3}Up:  ${execi 300 vnstat -m | grep “`LC_ALL=C date +”%b ‘%y”`” | awk ‘{print $6 $7}’} $alignr
${color #BBB3B3}Inbound $alignr ${downspeed eth0} kb/s
${color #BBB3B3}${downspeedgraph eth0} $alignr
${color #BBB3B3}Outbound $alignr ${upspeed eth0} kb/s
${color #BBB3B3}${upspeedgraph eth0}

${color #000000}Music ${hr 1}
${color #BBB3B3} ${execi 10 ~/.conky/amarok artist}
${color #BBB3B3} ${execi 10 ~/.conky/amarok title}
${color #BBB3B3} ${execi 10 ~/.conky/amarok album}
${color #BBB3B3} ${execi 10 ~/.conky/amarok year}
${color #BBB3B3} ${execi 10 ~/.conky/amarok genre}