# 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" 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 #CPU load graph, below the TOP process: 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="%" #CPU speed bar 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" #CPU speed MHz 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 #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! 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 #CPU temperature #!Needs lm_sensors installed! #!Replace "CPU Temp" if different! (execute "sensors" command and check your CPU sensor name) 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 #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) 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 #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) 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 #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 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 #Second HDD temperature 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 ########END OF TEMPERATURES ########FANS SECTION #CPU Fan sensor #!Needs lm_sensors installed! 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 #CPU Fan sensor #!Needs lm_sensors installed! 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 ########END OF FANS SECTION ########MEMORY #Memory bar, shows the RAM usage 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 #Swap bar, shows the swap usage 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 ########END OF MEMORY ########DISK STATUS #Disk usage bar #!Replace MD0 with your root hard disk partition (hda1, hdb2, sda3, etc) 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 #Disk usage bar #!Replace SDA6 with your any hard disk partition (hda1, hdb2, sda3, etc) 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 #Disk usage bar #!Replace SDB6 with your any hard disk partition (hda1, hdb2, sda3, etc) 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 #Disk usage bar #!Replace SDB7 with your any hard disk partition (hda1, hdb2, sda3, etc) 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 #Network graph with ip address #!Replace eth1 with Your network device 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 #WLAN up/down graph #!Replace wlan0 with Your network device # 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 # #WLAN signal level graph # 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 # #Gateway (Its a ten pixel height text bar) 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 ########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) 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 #Smart Disk Status (Its a ten pixel height text bar) 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 ##Smart Disk Status (Its a ten pixel height text bar) # 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 # #THE THEME BOTTOM GRAPHICS WITH THE LOGGED IN USERS 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 #THE LEFT SIDE ICONS #!Change it to fit Your theme! 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"