Conky – system info on your desktop

I am using Conky as a system info which is directly embedded into my Linux desktop background. The rich configuration options and flexibility allows various data to be displayed in fully configurable format adding extra blink to the desktop wallpaper.

Conky

Install
sudo apt-get install conky
Configuration

User based config file is located in ~/.conkyrc file. The rich features that can be displayed on the background are limitless. Below is my config based on Dell Latitude D600.

# UBUNTU-CONKY
# A comprehensive conky script, configured for use on
# Ubuntu / Debian Gnome, without the need for any external scripts.
#
# Based on conky-jc and the default .conkyrc.
# INCLUDES:
# - tail of /var/log/messages
# - netstat shows number of connections from your computer and application/PID making it. Kill spyware!
# - for Dell laptops module i8k must be loaded from package: i8kutils then cpu_temp can be read using i8k_cpu_temp 
#
# ${if_existing /proc/net/route  - it checks if default GW exists, it is helpful with external IP determination
#
# Connction monitor
# 
#  Connections in:${color #606060} ${tcp_portmon 1 32767 count}$color Connections    out:${color #606060} ${tcp_portmon 32768 61000 count}$color Total:${color #606060}    ${tcp_portmon 1 65535 count}
# 
# $color Inbound Connection ${alignr} Local Service/Port
# ${color #606060} ${tcp_portmon 1 32767 rhost 0} ${alignr} ${tcp_portmon 1 32767    lservice 0}
#  ${tcp_portmon 1 32767 rhost 1} ${alignr} ${tcp_portmon 1 32767 lservice 1}
#  ${tcp_portmon 1 32767 rhost 2} ${alignr} ${tcp_portmon 1 32767 lservice 2}
#  ${tcp_portmon 1 32767 rhost 3} ${alignr} ${tcp_portmon 1 32767 lservice 3}
#  ${tcp_portmon 1 32767 rhost 4} ${alignr} ${tcp_portmon 1 32767 lservice 4}
#  ${tcp_portmon 1 32767 rhost 5} ${alignr} ${tcp_portmon 1 32767 lservice 5}
# 
# $color Outbound Connection ${alignr} Remote Service/Port$color
# ${color #606060} ${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon    32768 61000 rservice 0}
#  ${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice    1}
#  ${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice    2}
#  ${tcp_portmon 32768 61000 rhost 3} ${alignr} ${tcp_portmon 32768 61000 rservice    3}
#  ${tcp_portmon 32768 61000 rhost 4} ${alignr} ${tcp_portmon 32768 61000 rservice    4}
#  ${tcp_portmon 32768 61000 rhost 5} ${alignr} ${tcp_portmon 32768 61000 rservice    5}
#  

# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# fiddle with window
use_spacer right

# Use Xft?
use_xft yes
xftfont DejaVu Sans:size=7
xftalpha 0.8
text_buffer_size 1536

# Update interval in seconds
update_interval 3.0

# Minimum size of text area
# minimum_size 200 5

# Maximum width
maximum_width 210

# Draw shades?
draw_shades no

# Text stuff
draw_outline no # amplifies text if yes
draw_borders no
uppercase no # set to yes if you want all text to be in uppercase

# Stippled borders?
stippled_borders 3

# border margins
# border_margin 9

# border width
border_width 10

# Default colors and also border colors, grey90 == #e5e5e5
default_color E8E8E8 

#own_window_argb_visual yes
#own_window_argb_value 0

own_window_colour brown
own_window_transparent yes

# Text alignment, other possible values are commented
#alignment top_left
alignment bottom_right
#alignment bottom_left
#alignment bottom_right

# Gap between borders of screen and text
gap_x 30
gap_y 30

# stuff after 'TEXT' will be formatted on screen

TEXT
$color
${color orange}SYSTEM ${hr 2}$color
$nodename $sysname $kernel on $machine
uptime: ${uptime}

#causing overheating as of 27/07/2012
#external ip: ${execi 65535 wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'}

${color orange}CPU ${hr 2}$color
${freq}MHz   Load: ${loadavg}   Temp: ${i8k_cpu_temp}
${cpugraph 000000 ffffff}
NAME $alignr PID       CPU%      MEM%
${top name 1} $alignr ${top pid 1}   ${top cpu 1}    ${top mem 1}
${top name 2} $alignr ${top pid 2}   ${top cpu 2}    ${top mem 2}
${top name 3} $alignr ${top pid 3}   ${top cpu 3}    ${top mem 3}
${top name 4} $alignr ${top pid 4}   ${top cpu 4}    ${top mem 4}

${color orange}MEMORY used $mem of $memmax $color
${memgraph 000000 ffffff}
Swap:  $swapperc%   ${swapbar 6}$color

${color orange}HDD FREE $color
root:    ${fs_free /} of ${fs_size /}   ${fs_bar 6 /}$color 
sda1:  ${if_existing /windows} ${fs_free /windows} of ${fs_size /windows}   ${fs_bar 6 /windows}$color $endif
sda5:  ${if_existing /dane} ${fs_free /dane} of ${fs_size /dane}   ${fs_bar 6 /dane}$color $endif 

${color orange}NETWORK CABLE $alignr ip:${addr eth0} 
Down: $color${downspeed eth0} k/s ${alignr}Up: ${upspeed eth0} k/s
${downspeedgraph eth0 25,100 000000 ff0000} ${alignr}${upspeedgraph eth0 
25,100 000000 00ff00}$color
Total: ${totaldown eth0} ${alignr}Total: ${totalup eth0}

${color orange}NETWORK WIFI $alignr ip:${addr eth1}
Down: $color${downspeed eth1} k/s ${alignr}Up: ${upspeed eth1} k/s
${downspeedgraph eth1 25,100 000000 ff0000} ${alignr}${upspeedgraph eth1 
25,100 000000 00ff00}$color
Total: ${totaldown eth1} ${alignr}Total: ${totalup eth1}

${color orange}NETSTAT ${hr 2}$color
no connections / PID / application
${execi 30 netstat -ept | grep ESTAB | awk '{print $9}' | cut -d: -f1 | sort | uniq -c | sort -nr}

${color orange}LOGGING AUTH.LOG ${hr 2}$color
${execi 30 tail -n5 /var/log/auth.log | awk '{print " ",$5,$6,$7,$8,$9,$10}' | fold -w40}

Conky On and Off script

It is sometime annoying to enable or disable conky on the dektop. The following scrip comes with help.

piotr@d600:~$ cat conky_on_off.sh 
#!/bin/sh

# click to start, click to stop

if pidof conky | grep [0-9] > /dev/null
then
 exec killall conky
else
 exec conky
fi