DeskTux

Linux on Desktops

User Tools

Site Tools


archive:conky

The content of this page is no longer maintained and could be outdated soon or already is. The reasons could be various, like this information became obsolete or there is by now a better way to handle the information on this page. This page will be retained here for archiving reasons.

Conky

In case you are interested, here's my .conkyrc. Conky is the system monitoring tool you can see in a couple of screenshots around this site.

The screenshot on the right is taken from a running Conky instance that uses the configuration file below.

For a transparent background you need a compositing Window Manager. Most modern Window Managers support compositing though.

A couple of options are commented out, you may need to experiment with them to get Conky behave as you want. Especially the window types and (CPU) temperatures are important.

For the harddisk temperature your HDD needs a temperature sensor (some SSD's don't have one), hddtemp of course needs to be installed and the binary /usr/sbin/hddtemp needs to be suid root. There are risks involved with that, please inform yourself about them before making hddtemp suid root.

A comprehensive list of Conky variables can be found on the official site.

Configuration file .conkyrc

As of Conky 1.10 the configuration file is an actual LUA script.

conkyrc-lua
---------- Conky config by DeskTux
------ General Settings
conky.config = {
	-- Positioning
	alignment = 'top_right',
	gap_x = 10,
	gap_y = 10,
 
	-- Colours
	default_color = '40c040',
	default_outline_color = 'white',
	default_shade_color = 'black',
 
	-- Font
	use_xft = true,
	--xftfont = 'sans-serif:size=8',
	font = 'sans-serif:size=8',
	draw_shades = true,
	draw_outline = false,
	uppercase = false,
 
	-- Program properties
	background = false,
	draw_borders = false,
	border_inner_margin = 20,
	border_outer_margin = 0,
	border_width = 1,
	maximum_width = 480,
	double_buffer = true,
	stippled_borders = 0,
	update_interval = 2.0,
	use_spacer = 'none',
 
	-- Window properties
	own_window = true,
	--own_window_type = 'normal',
	own_window_type = 'desktop',
	own_window_transparent = true,
	own_window_argb_visual = true,
	-- This value can be between 0 and 255. 0 = transparent and 255 = opaque.,
	own_window_argb_value = 128,
 
	-- Graph properties
	draw_graph_borders = true,
	no_buffers = true,
	cpu_avg_samples = 2,
	net_avg_samples = 2,
	show_graph_scale = false,
	show_graph_range = false
}
 
------ Sensors
--[[
	Unfortunately, I have not found a way to place comments inside the text section yet.
	So I will accumulate them here.
 
	-- System
	If you want to show your battery life, include these under the 'Uptime':
 
	${color white}Battery: $alignr$color $battery $battery_time
	$battery_bar
 
	-- Sensors	
	Have a look at /sys/class/hwmon/ and the amount of files there. Ust that as
	a base for experimenting. If there are 4 files, you can have 4x4 combinations
	starting with 00, 01, 02, 03, 10, 11, 12 and so on all the way up to 33.
	lm-sensors should be installed and configured.
 
	-- SWAP
	If you have a swap partition (which I only have on servers) include these in
	the 'Memory' section:
 
	${color white}Swap:$color $swap/$swapmax - $swapperc%
	$swapbar
 
	-- HDD Temperature
	To have the hddtemp sensors work make sure /usr/sbin/hddtemp is suid root (chmod +s).
 
	-- Network with Wifi
	These can be put into the 'Network' section if you use Wifi instead of a cable:
 
	${color white}WLAN IP:$alignr$color ${addr wlan0}
	${color white}WLAN Signal:$alignr$color ${wireless_link_qual wlan0}%
	WLAN ${hr 1}
	${color white}Down: $color${downspeed wlan0}/s ${color white}Total: $color${totaldown wlan0} $alignr${color white}Up: $color${upspeed wlan0}/s ${color white}Total: $color${totalup wlan0}
	${color white}${downspeedgraph wlan0 32,230 40c040 ffffff -t} $alignr${color white}${upspeedgraph wlan0 32,230 40c040 ffffff -t}
 
	-- Syslog	
	For the syslog section to work your user should be able to read the syslog.
	In Debian adding that user to the 'adm' group does the trick.
]]
 
conky.text = [[
${alignc}${color white}${font Liberation Mono:bold:size=12}Debian GNU/$sysname $kernel $font 
 
${color white}${font sans-serif:bold:size=10}Date & Time ${hr 2}
${alignc}${font Liberation Mono:bold:size=24}${time %H:%M}$font
${alignc}${font Liberation Mono:bold:size=12}${time %F}$font
 
${color white}${font sans-serif:bold:size=10}System ${hr 2}$font
${color white}Host: $alignr$color$nodename
${color white}Uptime:$alignr$color$uptime
 
${color white}${font sans-serif:bold:size=10}CPU & Sensors $font${hr 2}
${color white}${cpugraph cpu0 32,480 40c040 ffffff -t}
${color white}CPU0:$color ${cpu cpu1}% ${cpubar cpu1}
${color white}CPU1:$color ${cpu cpu2}% ${cpubar cpu2}
${color white}CPU2:$color ${cpu cpu3}% ${cpubar cpu3}
${color white}CPU3:$color ${cpu cpu4}% ${cpubar cpu4}
${color white}CPU4:$color ${cpu cpu4}% ${cpubar cpu5}
${color white}CPU5:$color ${cpu cpu4}% ${cpubar cpu6}
${color white}CPU6:$color ${cpu cpu4}% ${cpubar cpu7}
${color white}CPU7:$color ${cpu cpu4}% ${cpubar cpu8}
${color white}Clock (GHz):$alignr$color $freq_g
${color white}CPU Socket Temperature:$alignr$color ${hwmon 0 temp 1}°C
${color white}Mainboard Temperature:$alignr$color ${hwmon 0 temp 2}°C
${color white}CPU Fan:$alignr$color ${hwmon 0 fan 1} RPM
${color white}Chassis Fan 1:$alignr$color ${hwmon 0 fan 2} RPM
${color white}Chassis Fan 2:$alignr$color ${hwmon 0 fan 3} RPM
 
${color white}${font sans-serif:bold:size=10}Memory $font${hr 2}
${color white}RAM:$color $alignr$mem/$memmax
$memperc% $membar
 
${color white}${font sans-serif:bold:size=10}HDD $font${hr 2}
${font mono:size=8}${color white}Root $color$alignr${fs_free /}/${fs_size /} ${color white}free
$font$color${fs_used_perc /}% ${fs_bar /}
${color white}${diskiograph /dev/sda5 32,480 40c040 ffffff -t}
${font mono:size=8}${color white}Home $color$alignr${fs_free /home}/${fs_size /home} ${color white}free
$font$color${fs_used_perc /home}% ${fs_bar /home}
${color white}${diskiograph /dev/sdb1 32,480 40c040 ffffff -t}
${color white}/dev/sda: $color$alignr${execi 60 /usr/sbin/hddtemp /dev/sda|cut -c34-} 
${color white}/dev/sdb: $color$alignr${execi 60 /usr/sbin/hddtemp /dev/sdb|cut -c33-} 
 
${color white}${font sans-serif:bold:size=10}Network $font${hr 2}
${color white}LAN IP:$alignr$color ${addr enp2s0}
${color white}Gateway:$alignr$color ${gw_iface} ${gw_ip}
${color white}Primary DNS:$alignr$color ${nameserver 0}
${color white}External IP:$alignr$color ${execi 3600 ~/.conky/publicip.sh}
LAN ${hr 1}
${color white}Down: $color${downspeed enp2s0}/s ${color white}Total: $color${totaldown enp2s0} $alignr${color white}Up: $color${upspeed enp2s0}/s ${color white}Total: $color${totalup enp2s0}
${color white}${downspeedgraph enp2s0 32,230 40c040 ffffff -t} $alignr${color white}${upspeedgraph enp2s0 32,230 40c040 ffffff -t}
 
${color white}${font sans-serif:bold:size=10}Processes $font${hr 2}
${color white}Name $alignr PID CPU% MEM%
${color red}${top name 1} $alignr ${top pid 1} ${top cpu 1} ${top mem 1}
$color${top name 2} $alignr ${top pid 2} ${top cpu 2} ${top mem 2}
$color${top name 3} $alignr ${top pid 3} ${top cpu 3} ${top mem 3}
$color${top name 4} $alignr ${top pid 4} ${top cpu 4} ${top mem 4}
$color${top name 5} $alignr ${top pid 5} ${top cpu 5} ${top mem 5}
 
${color white}${font sans-serif:bold:size=10}Syslog $font${hr 2}
$color${tail /var/log/syslog 5}
]]

publicip.sh

You need to place this little script in ~/.conky/publicip.sh to make sure Conky will display your current public IP.

publicip.sh
#!/bin/sh
# Get the current external IP(v4) address
# Exchange "YOUR.PUBLIC.IP.SITE" with the URL of a website that provides your public IP.
wget -qO- http://YOUR.PUBLIC.IP.SITE/|grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
archive/conky.txt · Last modified: 2023-06-12 16:46 by jens