Conky

From Ever changing code
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

It displays the rich system info embedded into your desktop background.

Install
sudo apt-get install conky
Temperature probes

For older Dell laptops module i8k must be loaded and Conky use ${i8k_cpu_temp} to recall CPU temperature.

sudo apt-get install i8kutils

For modern laptops lm-sensors, then use ${acpitemp}°C to display the ambient system temperature.

sudo apt-get install lm-sensors
Configuration

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

Conky
# 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=8
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        Processes: $processes Run: $running_processes ${hr 2}$color
${freq}MHz   Load: ${loadavg}   Temp: ${acpitemp}°C #${i8k_cpu_temp} - Dell temp probe 

${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} 

${color orange}HDD USAGE $color
root:    ${fs_used /} 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 
Swap:  $swapperc%   ${swapbar 6}$color

#eth0 - LAN card interface, replace if different
${color orange}NETWORK WIRED $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} 

#wlan0 - wireless interface, replace everywhere if different 
${color orange}WIRELESS $alignr ip:${addr wlan0}    
Down: $color${downspeed wlan0} k/s ${alignr}Up: ${upspeed wlan0} k/s
${downspeedgraph wlan0 25,100 000000 ff0000} ${alignr}${upspeedgraph wlan0 
25,100 000000 00ff00}$color
Total: ${totaldown wlan0} ${alignr}Total: ${totalup wlan0}

${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 for VM

It contains a lot of unnecessary info but you can easly scrap it if you do not need it.

Conky simple config for VM
use_xft yes
xftfont Terminus:size=8
xftalpha 0.8
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_class conky-semi
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
background no
double_buffer yes
minimum_size 300 200
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders yes
default_shade_color black
default_outline_color white
default_bar_size 150 5
default_gauge_size 20 20
imlib_cache_size 0
draw_shades no
alignment top_right
gap_x 5
gap_y 35
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale no
default_color ECEAE4
color1 9f907d
color2 01C400


TEXT
${font AvantGardeLTMedium:bold:size=10}${color Tan1}Info ${color slate grey}${hr 2}${font}
${color1}Date               ${alignr}${color slate grey}${time %a,}${color}${time %e %B %G}
${color1}Time               ${alignr}${color}${time %T}

${font AvantGardeLTMedium:bold:size=10}${color Tan1}System ${color slate grey}${hr 2}${font}
${color1}Hostname           ${alignr}${color}${nodename}
${color1}${sysname}         ${alignr}${color}${kernel}-${machine}
${color1}CPU                ${alignr}${color}${freq_g}GHz
${color1}Loadaverage        ${alignr}${color}${loadavg 1} ${loadavg 2} ${loadavg 3}
${color1}Uptime             ${alignr}${color}${uptime}
${color1}Battery Status     ${alignr}${color}${battery_short BAT1}
${color1}Cpu Temperature    ${alignr}${color}${acpitemp}C
${color1}Hdd Temperature    ${alignr}${color}${hddtemp /dev/sda}C

${font AvantGardeLTMedium:bold:size=10}${color Tan1}Processors ${color slate grey}${hr 2}${font}
${color1}Core 1             ${alignr}${color}${cpu cpu1}%  ${cpubar cpu1}
${color1}Core 2             ${alignr}${color}${cpu cpu2}%  ${cpubar cpu2}

${font AvantGardeLTMedium:bold:size=10}${color Tan1}Memory ${color slate grey}${hr 2}${font}
${color1}Memory             ${color}${alignr}${memeasyfree} / ${memmax}
${color1}Currently          ${color}${alignr}${memperc}%   ${membar}

${font AvantGardeLTMedium:bold:size=10}${color Tan1}Filesystem ${color slate grey}${hr 2}${font}
${color1}/                  ${color}${alignc}${fs_used /} / ${fs_size /} ${color}${alignr}${fs_free_perc /} %
${color}${fs_bar 5,300 /}

${font AvantGardeLTMedium:bold:size=10}${color Tan1}Networking ${color slate grey}${hr 2}${font}
${if_existing /proc/net/route wlan0}${color1}Ip     ${color}${alignr}${addr wlan0}
${color1}AP                 ${color}${alignr}${wireless_essid wlan0}
${color1}Signal             ${color}${alignr}${wireless_link_qual_perc wlan0}${wireless_link_bar 10,100 wlan0}
${color1}Download           ${alignr}${color}${downspeed wlan0}${downspeedgraph wlan0 10,100}
${color1}Upload             ${alignr}${color}${upspeed wlan0}${upspeedgraph wlan0 10,100}
${color1}Total Down/Up      ${alignr}${color}${totaldown wlan0}${color1}/${color}${totalup wlan0}
${else}${if_existing /proc/net/route eth0}${color1}Ip       ${color}${alignr}${addr eth0}
${color1}Download           ${alignr}${color}${downspeed eth0}${downspeedgraph eth0 10,100}
${color1}Upload             ${alignr}${color}${upspeed eth0}${upspeedgraph eth0 10,100}
${color1}Total Down/Up      ${alignr}${color}${totaldown eth0}${color1}/${color}${totalup eth0}${endif}${endif}

${font AvantGardeLTMedium:bold:size=10}${color Tan1}Top Processes ${color slate grey}${hr 2}${font}
${color1}${top name 1}  ${alignr}${color}${top cpu 1} ${top mem 1}
${color1}${top name 2}  ${alignr}${color}${top cpu 2} ${top mem 2}
${color1}${top name 3}  ${alignr}${color}${top cpu 3} ${top mem 3}
${color1}${top name 4}  ${alignr}${color}${top cpu 4} ${top mem 4}
${color1}${top name 5}  ${alignr}${color}${top cpu 5} ${top mem 5}

Conky On and Off script

This is some times annoying to enable or disable conky on your 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

Start Conky on boot in Debian

Debian uses conbination of /etc/init.d scripts and symbolic links in /etc/rc?.d. Each symbolic link starting with S will run and starting with K does not at the given runlevel.

On Debian and Ubuntu, runlevels 2, 3, 4 and 5 are multi-users runlevels.
Runlevel 0 is Halt.
Runlevel 1 is single user mode
Runlevel 6 is reboot

Having the conky_on_off.sh script copied into /etc/init.d and using update-rc.d to create default symbolic links will boot conky at the start.

sudo cp ~/conky_on_off.sh /etc/init.d/
sudo update-rc.d conky_on_off.sh defaults

Remove from auto-boot

sudo update-rc.d -f conky_on_off.sh remove

References

Conky variables