rendered paste body# Build Your Own Monitor
# Author: Edward (Ede) Somorjai
# Created: 2007-02-25
# Licence: GPL
#!Adjust the karamba height to fit Your Monitors height when finished!
#---------------------------------------------------------------------
#Monitor backgrounds:
#back_topa.png - The top part of the monitor
#back_bottoma.png - The bottom part
#back_40a.png - The 40pixel height background for graphs, double sensors
#back_20a.png - The 20pixel height background for bars
#back_10a.png - The 10pixel height background for text
#---------------------------------------------------------------------
#!Replace all "a.png" with "b.png", "c.png" or "d.png" to get other background set!
#!Replace all "barX.png" to "barY.png" to get another sensor bar!
karamba x=1000 y=240 w=240 h=1000 interval=1000 locked=false
#!Uncomment for light theme: (black text color)!
#defaultfont font="Sans" fontsize=9 color=0,0,0 shadow=1 bgcolor=180,180,180
!Uncomment for dark theme: (white text color)!
defaultfont font="Sans" fontsize=9 color=205,205,205 shadow=1 bgcolor=80,80,80
#!Uncomment for an alternate: (grey text color)!
#defaultfont font="Sans" fontsize=9 color=45,45,45 shadow=1 bgcolor=120,120,120
#The theme top. It contains system information
image x=0 y=0 path="img/back_topb.png"
<group> x=60 y=16
text x=5 y=5 sensor=program program="echo ${USER}@`hostname`" fontsize=14 interval=600000
text x=4 y=22 value="Kernel:"
text x=156 y=22 sensor=program program="uname -r" align="right" interval=600000
text x=4 y=32 value="Machine:"
text x=156 y=32 sensor=program program="uname -m" align="right" interval=600000
text x=119 y=32 sensor=program program="cat /proc/cpuinfo | grep 'vendor_id' | sed -e 's/.*: //'" align="right" interval=600000
text x=4 y=42 value="KDE / Qt:" interval=600000
text x=126 y=42 sensor=program program="kde-config --version | grep KDE | sed -e 's/.*: //'" align="right" interval=600000
text x=126 y=42 value="/"
text x=156 y=42 sensor=program program="kde-config --version | grep Qt | sed -e 's/.*: //'" align="right" interval=600000
text x=4 y=52 value="Uptime:"
text x=156 y=52 sensor=uptime format="%dDay %Hh:%Mm" align="right" interval=600000
# text x=4 y=62 value="Date / Time:"
# text x=156 y=62 sensor=time format="ddd dd.MM.yyyy / hh:mm:ss" align="right" interval=600000
</group>
#CPU load graph, below the TOP process:
<group> x=0 y=80
image x=0 y=0 path="img/back_40b.png"
#CPU load graph
image x=63 y=1 path="img/backgrix.png"
graph x=63 y=0 w=149 h=30 points=75 color=0,0,255 sensor=cpu max=100
#Top process - two methods to chose, the second is faster
# text x=63 y=30 value="TOP"
# text x=93 y=30 sensor=program program="top -bid0n1 | grep 'COMMAND' -A1 | awk '{print $9$12}'" interval=1000
text x=63 y=30 value="Top:"
text x=205 y=30 sensor=program program="ps axo comm,user,pcpu --sort pcpu | tail -n1 | awk '{print $1,$3}'" align="right" interval=1000
text x=201 y=30 value="%"
</group>
#CPU speed bar
<group> x=0 y=120
image x=0 y=0 path="img/back_20b.png"
#CPU speed bar
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=cpu path="img/bar6.png" max=100
text x=63 y=4 value="CPU"
text x=213 y=4 sensor=cpu format="%v %" align="right"
</group>
#CPU speed MHz
<group> x=0 y=140
image x=0 y=0 path="img/back_20b.png"
#Speed MHz
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false path="img/bar6.png" sensor=program program="cat /proc/cpuinfo | grep 'cpu MHz' | sed -e 's/.*: //'| sed -e 's/\....//'" max=2700 interval=1000
text x=63 y=4 value="CPU Speed"
text x=213 y=4 sensor=program program="cat /proc/cpuinfo | grep 'cpu MHz' | sed -e 's/.*: //'| sed -e 's/\..../ MHz/'" align=right interval=1000
</group>
#CPU temp graph example
# text x=10 y=16 font="Bitstream Vera Sans" fontsize=14 color=120,0,0 sensor=program program="cat /proc/acpi/thermal_zone/THRM/temperature | awk '{print $2}'" interval=10000
# graph x=3 y=0 w=149 h=30 points=75 color=140,0,0 sensor=sensor type="temp3" max=100 interval=1000
# text x=10 y=16 font="Bitstream Vera Sans" fontsize=14 color=120,0,0 sensor=program program="acpi -t | grep degrees | awk '{print $4}'" interval=10000
# text x=10 y=16 font="Bitstream Vera Sans" fontsize=14 color=120,0,0 sensor=sensor type="CPU Temp" interval=10000
# text x=39 y=16 font="Bitstream Vera Sans" fontsize=14 color=120,0,0 value="°C" interval=600000
#Sensor GPU temp for NVIDIA
#!Needs nvidia driver!
<group> x=0 y=160
image x=0 y=0 path="img/back_20b.png"
#GPU Temp
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=program program="nvidia-settings -q gpucoretemp | grep '):' | awk '{print $4 0}'" path="img/bar6.png" max=70 interval=10000
text x=63 y=4 value="GPU Temp"
text x=213 y=4 value="°C" align="right"
text x=197 y=4 sensor=program program="nvidia-settings -q gpucoretemp | grep '):' | awk '{print $4 0}'" align="right" interval=10000
</group>
#CPU temperature
#!Needs lm_sensors installed!
#!Replace "CPU Temp" if different! (execute "sensors" command and check your CPU sensor name)
<group> x=0 y=180
image x=0 y=0 path="img/back_20b.png"
#CPU Temp
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=sensor type="CPU Temp" path="img/bar6.png" max=70 interval=10000
text x=63 y=4 value="CPU Temp"
text x=213 y=4 value="°C" align="right"
text x=197 y=4 sensor=sensor type="CPU Temp" align="right" interval=10000
</group>
#Motherboard temperature (2nd temp sensor, sometimes cooler temperature)
#!Needs lm_sensors installed!
#!Replace "M/B Temp" if different! (execute "sensors" command and check your 2nd sensor name)
<group> x=0 y=200
image x=0 y=0 path="img/back_20b.png"
#M/B Temp
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=sensor type="M/B Temp" path="img/bar6.png" max=60 interval=10000
text x=63 y=4 value="M/B Temp"
text x=213 y=4 value="°C" align="right"
text x=197 y=4 sensor=sensor type="M/B Temp" align="right" interval=10000
</group>
#3rd temperature (3nd temp sensor, sometimes motherboard temperature
#!Needs lm_sensors installed!
#!Look for lm_sensors package for Your distro
#!Replace "temp3" if different! (execute "sensors" command and check your 3rd sensor name)
<group> x=0 y=220
image x=0 y=0 path="img/back_20b.png"
#AIR Temp
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=sensor type="temp3" path="img/bar6.png" max=60 interval=10000
text x=63 y=4 value="AIR Temp"
text x=213 y=4 value="°C" align="right"
text x=197 y=4 sensor=sensor type="temp3" align="right" interval=10000
</group>
#HDD temperatures
#!There are two methods to get the temperatures.
#!EXAMPLES:
#!1st method - faster
#!Needs hddtemp installed and the service running!
#!Look for hddtemp package for Your distro
#!Change the "awk '{print $4}'" to $9 for hdd2, $14 for hdd3 etc
# #HD1 Temp from hddtemp
# bar x=63 y=2 w=150 h=15 vertical=false sensor=program program="nc localhost 7634 | sed 's/|/ /g' | awk '{print $4}'" path="img/bar6.png" max=70 interval=10000
# text x=197 y=4 sensor=program program="nc localhost 7634 | sed 's/|/ /g' | awk '{print $4}'" align="right" interval=10000
#!2nd method - slower
#!Needs smartmontools installed - also needed for displaying the hard disk SMART (Health) information
#!Look for smartmontools package for Your distro
#!Change /dev/sda to Your harddisk
# #HD1 Temp from smartctl
# bar x=63 y=2 w=150 h=15 vertical=false sensor=program program="sudo smartctl -d ata -A /dev/sda | grep Temperature | awk '{print $10}'" path="img/bar6.png" max=70 interval=10000
#First HDD temperature
<group> x=0 y=240
image x=0 y=0 path="img/back_20b.png"
#HD1 Temp
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=program program="nc localhost 7634 | sed 's/|/ /g' | awk '{print $4}'" path="img/bar6.png" max=70 interval=10000
text x=63 y=4 value="HD1 Temp"
text x=213 y=4 value="°C" align="right"
text x=197 y=4 sensor=program program="nc localhost 7634 | sed 's/|/ /g' | awk '{print $4}'" align="right" interval=10000
</group>
#Second HDD temperature
<group> x=0 y=260
image x=0 y=0 path="img/back_20b.png"
#HD2 Temp
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=program program="nc localhost 7634 | sed 's/|/ /g' | awk '{print $9}'" path="img/bar6.png" max=70 interval=10000
text x=63 y=4 value="HD2 Temp"
text x=213 y=4 value="°C" align="right"
text x=197 y=4 sensor=program program="nc localhost 7634 | sed 's/|/ /g' | awk '{print $9}'" align="right" interval=10000
</group>
########END OF TEMPERATURES
########FANS SECTION
#CPU Fan sensor
#!Needs lm_sensors installed!
<group> x=0 y=280
image x=0 y=0 path="img/back_20b.png"
#CPU Fan
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=sensor type="CPU Fan" path="img/bar6.png" max=5000 interval=10000
text x=63 y=4 value="CPU Fan"
text x=213 y=4 value="RPM" align="right"
text x=193 y=4 sensor=sensor type="CPU Fan" align="right" interval=10000
</group>
#CPU Fan sensor
#!Needs lm_sensors installed!
<group> x=0 y=300
image x=0 y=0 path="img/back_20b.png"
#SYS Fan
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=sensor type="CPU Fan" path="img/bar6.png" max=5000 interval=10000
text x=63 y=4 value="SYS Fan"
text x=213 y=4 value="RPM" align="right"
text x=193 y=4 sensor=sensor type="CPU Fan" align="right" interval=10000
</group>
########END OF FANS SECTION
########MEMORY
#Memory bar, shows the RAM usage
<group> x=0 y=320
image x=0 y=0 path="img/back_20b.png"
# RAM
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=memory format="%um" path="img/bar6.png" min=0 interval=5000
text x=63 y=4 value="RAM"
text x=213 y=4 sensor=memory format="%um / %tm MB" align="right" interval=5000
</group>
#Swap bar, shows the swap usage
<group> x=0 y=340
image x=0 y=0 path="img/back_20b.png"
# Swap space
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=memory format="%us" path="img/bar6.png" min=0 interval=5000
text x=63 y=4 value="Swap"
text x=213 y=4 sensor=memory format="%us / %ts MB" align="right" interval=5000
</group>
########END OF MEMORY
########DISK STATUS
#Disk usage bar
#!Replace MD0 with your root hard disk partition (hda1, hdb2, sda3, etc)
<group> x=0 y=360
image x=0 y=0 path="img/back_20b.png"
# / - MD0
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=disk mountpoint="/" format="%u" path="img/bar6.png" min=0 interval=600000
text x=63 y=4 value="MD0"
text x=213 y=4 sensor=disk mountpoint="/" format="%u / %t MB" align="right" interval=600000
</group>
#Disk usage bar
#!Replace SDA6 with your any hard disk partition (hda1, hdb2, sda3, etc)
<group> x=0 y=380
image x=0 y=0 path="img/back_20b.png"
# / - SDA6
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=disk mountpoint="/media/sda6" format="%u" path="img/bar6.png" min=0 interval=600000
text x=63 y=4 value="sda6"
text x=213 y=4 sensor=disk mountpoint="/media/sda6" format="%u / %t MB" align="right" interval=600000
</group>
#Disk usage bar
#!Replace SDB6 with your any hard disk partition (hda1, hdb2, sda3, etc)
<group> x=0 y=400
image x=0 y=0 path="img/back_20b.png"
# / - SDB6
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=disk mountpoint="/media/sdb6" format="%u" path="img/bar6.png" min=0 interval=600000
text x=63 y=4 value="sdb6"
text x=213 y=4 sensor=disk mountpoint="/media/sdb6" format="%u / %t MB" align="right" interval=600000
</group>
#Disk usage bar
#!Replace SDB7 with your any hard disk partition (hda1, hdb2, sda3, etc)
<group> x=0 y=420
image x=0 y=0 path="img/back_20b.png"
# / - SDB7
image x=63 y=2 path="img/backsens.png"
bar x=63 y=2 w=150 h=15 vertical=false sensor=disk mountpoint="/media/sdb7" format="%u" path="img/bar6.png" min=0 interval=600000
text x=63 y=4 value="sdb7"
text x=213 y=4 sensor=disk mountpoint="/media/sdb7" format="%u / %t MB" align="right" interval=600000
</group>
#Network graph with ip address
#!Replace eth1 with Your network device
<group> x=0 y=440
image x=0 y=0 path="img/back_40b.png"
# Network up/down graph
image x=63 y=1 path="img/backgrix.png"
graph x=63 y=0 w=149 h=30 points=75 color=255,0,0 sensor=network device="eth1" format="%out" max=64
graph x=63 y=0 w=149 h=30 points=75 color=0,0,255 sensor=network device="eth1" format="%in" max=64
text x=70 y=5 sensor=network device="eth1" format="%out kB/s ul" color=255,0,0
text x=70 y=15 sensor=network device="eth1" format="%in kB/s dl" color=0,0,255
text x=63 y=30 value="Network"
text x=213 y=30 sensor=program program="IPADDR=`ip addr show eth1`; if [ 0 -eq `echo $IPADDR | grep -c UP` ] ; then echo down ; elif [ 0 -eq `echo $IPADDR | grep -c 'inet '` ] ; then echo up, no IP ; else echo $IPADDR | sed -e 's/.*inet //;s/ .*$//' ; fi" align="right" interval=60000
</group>
#WLAN up/down graph
#!Replace wlan0 with Your network device
#<group> x=0 y=480
# image x=0 y=0 path="img/back_40b.png"
# # Wlan up/down graph
# image x=63 y=1 path="img/backgrix.png"
# graph x=63 y=0 w=149 h=30 points=75 color=255,0,0 sensor=network device="wlan0" format="%out" max=64
# graph x=63 y=0 w=149 h=30 points=75 color=0,0,255 sensor=network device="wlan0" format="%in" max=64
# text x=70 y=5 sensor=network device="wlan0" format="%out kB/s ul" color=255,0,0
# text x=70 y=15 sensor=network device="wlan0" format="%in kB/s dl" color=0,0,255
# text x=63 y=30 value="WLAN"
# text x=213 y=30 sensor=program program="IPADDR=`ip addr show wlan0`; if [ 0 -eq `echo $IPADDR | grep -c UP` ] ; then echo down ; elif [ 0 -eq `echo $IPADDR | grep -c 'inet '` ] ; then echo up, no IP ; else echo $IPADDR | sed -e 's/.*inet //;s/ .*$//' ; fi" align="right" interval=5000
#</group>
#WLAN signal level graph
#<group> x=0 y=480
# image x=0 y=0 path="img/back_40b.png"
# # Wlan signal level
# image x=63 y=1 path="img/backgrix.png"
# text x=63 y=30 value="Wireless signal"
# text x=213 y=0 sensor=program program="cat /proc/net/wireless | grep 'wlan0:' | awk '{print $4}'" align="right" interval=1000
# graph x=63 y=0 w=149 h=30 points=75 color=100,100,100 sensor=program program="cat /proc/net/wireless | grep 'wlan' | awk '{print $4}'" max=250 interval=1000
#</group>
#Gateway (Its a ten pixel height text bar)
<group> x=0 y=480
image x=0 y=0 path="img/back_10b.png"
# Routing
text x=63 y=0 value="Gateway"
text x=213 y=0 sensor=program program="ip -f inet route list | grep default | sed 's/.*via //;s/ dev.*//'" align="right" interval=15000
</group>
########Hard disk smart status requires smartmontools package installed
########To run as user, smartctl requires the following inserted into /etc/sudoers file
########your_user_name ALL=NOPASSWD:/usr/sbin/smartctl
########Health status: smartctl -d ata -H -T conservative /dev/sda | grep result: | awk '{print $6}'
########Temperature: smartctl -d ata -A /dev/sda | grep Temperature | awk '{print $10}'
#Smart Disk Status (Its a ten pixel height text bar)
<group> x=0 y=490
image x=0 y=0 path="img/back_10b.png"
text x=63 y=0 value="SMART Status SDA:"
text x=213 y=0 sensor=program program="sudo smartctl -d ata -H -T conservative /dev/sda | grep result: | awk '{print $6}'" align="right" interval=3600000
</group>
#Smart Disk Status (Its a ten pixel height text bar)
<group> x=0 y=500
image x=0 y=0 path="img/back_10b.png"
text x=63 y=0 value="SMART Status SDB:"
text x=213 y=0 sensor=program program="sudo smartctl -d ata -H -T conservative /dev/sdb | grep result: | awk '{print $6}'" align="right" interval=3600000
</group>
##Smart Disk Status (Its a ten pixel height text bar)
#<group> x=0 y=510
# image x=0 y=0 path="img/back_10b.png"
# text x=63 y=0 value="SMART Status HDD:"
# text x=213 y=0 sensor=program program="sudo smartctl -d ata -H -T conservative /dev/hdd | grep result: | awk '{print $6}'" align="right" interval=3600000
#</group>
#THE THEME BOTTOM GRAPHICS WITH THE LOGGED IN USERS
<group> x=0 y=510
image x=0 y=0 path="img/back_bottomb.png"
#Users logged in
text x=63 y=0 value="Users logged in:"
text x=63 y=10 sensor=program program="users" interval=10000
</group>
#THE LEFT SIDE ICONS
#!Change it to fit Your theme!
<group> x=13 y=10
# Graphics
image x=9 y=12 path="img/case1.png"
image x=8 y=70 path="img/cpu2.png"
image x=5 y=104 path="img/cpu.png"
image x=13 y=150 path="img/temp3.png"
image x=15 y=196 path="img/temp.png"
image x=7 y=226 path="img/disks2.png"
image x=10 y=272 path="img/fan2.png"
image x=8 y=309 path="img/memory5.png"
image x=7 y=346 path="img/disks2.png"
image x=7 y=386 path="img/disks2.png"
image x=2 y=418 path="img/network2.png"
# image x=2 y=360 path="img/network2.png"
# image x=16 y=416 path="img/network.png"
image x=13 y=468 path="img/gateway2.png"
</group>