# Layout 'dudl' # PC running Ubuntu, eth0 # Layout 'fredl' # Dockstar running Debian, eth0 Layout 'bastl' # Dockstar running Debian, wlan0, webcam (set standard colors below to webcam style if you enable this) Display 'DPF' # Display 'XWindow' Variables { # Ticks: second 1000 minute 60 * second # Standard Dimensions: linesize 53 # max line length, for status lines etc. width100 51 # full width after padding (border) width050 24 # 1/2 of full width width033 17 # 1/3 of full width width025 12 # 1/4 of full width width010 6 # 1/10 of full width # Colors; see http://www.uize.com/examples/sortable-color-table.html # ToDo: Alphakanal ausnutzen # aliceblue 'f0f8ff' # antiquewhite 'faebd7' # aqua '00ffff' # aquamarine '7fffd4' # azure 'f0ffff' # beige 'f5f5dc' # bisque 'ffe4c4' black '000000' # blanchedalmond 'ffebcd' # blue '0000ff' # blueviolet '8a2be2' # brown 'a52a2a' # burlywood 'deb887' # cadetblue '5f9ea0' # chartreuse '7fff00' # chocolate 'd2691e' # coral 'ff7f50' # cornflowerblue '6495ed' # cornsilk 'fff8dc' # crimson 'dc143c' # cyan '00ffff' # darkblue '00008b' # darkcyan '008b8b' # darkgoldenrod 'b8860b' # darkgray 'a9a9a9' # darkgreen '006400' # darkgrey 'a9a9a9' # darkkhaki 'bdb76b' # darkmagenta '8b008b' # darkolivegreen '556b2f' # darkorange 'ff8c00' # darkorchid '9932cc' # darkred '8b0000' # darksalmon 'e9967a' # darkseagreen '8fbc8f' # darkslateblue '483d8b' darkslategray '2f4f4f' # darkslategrey '2f4f4f' # darkturquoise '00ced1' # darkviolet '9400d3' # deeppink 'ff1493' # deepskyblue '00bfff' # dimgray '696969' # dimgrey '696969' # dodgerblue '1e90ff' # firebrick 'b22222' # floralwhite 'fffaf0' # forestgreen '228b22' # fuchsia 'ff00ff' # gainsboro 'dcdcdc' ghostwhite 'f8f8ff' # gold 'ffd700' # goldenrod 'daa520' # gray '808080' # green '008000' # greenyellow 'adff2f' # grey '808080' # honeydew 'f0fff0' # hotpink 'ff69b4' # indianred 'cd5c5c' # indigo '4b0082' # ivory 'fffff0' # khaki 'f0e68c' # lavender 'e6e6fa' # lavenderblush 'fff0f5' # lawngreen '7cfc00' # lemonchiffon 'fffacd' # lightblue 'add8e6' # lightcoral 'f08080' # lightcyan 'e0ffff' # lightgoldenrodyellow 'fafad2' # lightgray 'd3d3d3' # lightgreen '90ee90' # lightgrey 'd3d3d3' # lightpink 'ffb6c1' # lightsalmon 'ffa07a' # lightseagreen '20b2aa' # lightskyblue '87cefa' lightslategray '778899' # lightslategrey '778899' # lightsteelblue 'b0c4de' # lightyellow 'ffffe0' # lime '00ff00' # limegreen '32cd32' # linen 'faf0e6' # magenta 'ff00ff' # maroon '800000' # mediumaquamarine '66cdaa' # mediumblue '0000cd' # mediumorchid 'ba55d3' # mediumpurple '9370db' # mediumseagreen '3cb371' # mediumslateblue '7b68ee' # mediumspringgreen '00fa9a' # mediumturquoise '48d1cc' # mediumvioletred 'c71585' midnightblue '191970' # mintcream 'f5fffa' # mistyrose 'ffe4e1' # moccasin 'ffe4b5' # navajowhite 'ffdead' # navy '000080' # oldlace 'fdf5e6' # olive '808000' # olivedrab '6b8e23' # orange 'ffa500' # orangered 'ff4500' # orchid 'da70d6' # palegoldenrod 'eee8aa' # palegreen '98fb98' # paleturquoise 'afeeee' # palevioletred 'db7093' # papayawhip 'ffefd5' # peachpuff 'ffdab9' # peru 'cd853f' # pink 'ffc0cb' # plum 'dda0dd' # powderblue 'b0e0e6' # purple '800080' # red 'ff0000' # rosybrown 'bc8f8f' # royalblue '4169e1' # saddlebrown '8b4513' salmon 'fa8072' # sandybrown 'f4a460' # seagreen '2e8b57' # seashell 'fff5ee' # sienna 'a0522d' # silver 'c0c0c0' # skyblue '87ceeb' # slateblue '6a5acd' # slategray '708090' # slategrey '708090' # snow 'fffafa' # springgreen '00ff7f' # steelblue '4682b4' # tan 'd2b48c' # teal '008080' # thistle 'd8bfd8' tomato 'ff6347' # turquoise '40e0d0' # violet 'ee82ee' # wheat 'f5deb3' white 'ffffff' # whitesmoke 'f5f5f5' yellow 'ffff00' # yellowgreen '9acd32' transparent 'ffffff00' # Standard colors (standard style): # std_fg ghostwhite # std_bg midnightblue # std_fg_bar0 '72a8f9' # std_fg_bar1 salmon # std_bg_bar darkslategray # std_fg_inverse darkslategray # std_bg_inverse ghostwhite # std_fg_area ghostwhite # std_bg_area darkslategray # std_fg_debug lightslategray # std_bg_debug midnightblue # Standard colors (webcam style): std_fg ghostwhite std_bg '00000066' std_fg_bar0 '72a8f9ff' std_fg_bar1 'fa8072ff' std_bg_bar '00000066' std_fg_inverse darkslategray std_bg_inverse ghostwhite std_fg_area ghostwhite std_bg_area '00000066' std_fg_debug lightslategray std_bg_debug '00000066' # To be set later by timers: SyslogMsg 'Dummy' TopMsg 'Dummy' } Display dpf { driver 'DPF' port 'usb0' font '6x8' foreground std_fg background std_bg basecolor std_bg } Display XWindow { driver 'X11' size '320x240' font '6x8' pixel '2+0' gap '0x0' foreground std_fg background std_bg basecolor std_bg } Widget SystemEth0 { class 'Text' expression '*** ' . uname('nodename') . ' '. netinfo::ipaddr('eth0') . ' ' . uname('machine') . ' ' . uname('release') . ' ***' width linesize align 'C' update 0 background std_bg_inverse foreground std_fg_inverse } Widget SystemWlan0 { class 'Text' expression '*** ' . uname('nodename') . ' '. netinfo::ipaddr('wlan0') . ' ' . uname('machine') . ' ' . uname('release') . ' ***' width linesize align 'C' update 0 background std_bg_inverse foreground std_fg_inverse } Widget Time { class 'Text' expression strftime('%a, %d.%m.%Y -- %H:%M:%S', time()) . ' -- Up: ' . uptime('%d days %H:%M:%S') width linesize align 'C' update 1 * second background std_bg_inverse foreground std_fg_inverse } Widget Heartbeat { class 'Icon' speed 0.5 * second Bitmap { Row1 '.....|.....|.....|.....' Row2 '.....|.....|.***.|.....' Row3 '.....|.***.|*****|.***.' Row4 '..*..|.***.|*****|.***.' Row5 '.....|.***.|*****|.***.' Row6 '.....|.....|.***.|.....' Row7 '.....|.....|.....|.....' Row8 '.....|.....|.....|.....' } } Widget Busy { class 'Text' expression proc_stat::cpu('busy', 1 * second) prefix 'Busy' postfix '%' width width050 precision 1 align 'R' update 1 * second } Widget BusyBar { class 'Bar' expression proc_stat::cpu('busy', 1 * second) expression2 proc_stat::cpu('system', 1 * second) length width050 direction 'E' update 1 * second background std_bg_bar barcolor0 std_fg_bar0 barcolor1 std_fg_bar1 } Widget Load { class 'Text' expression loadavg(1) prefix 'Load' postfix loadavg(1) > 1.0 ? '!' : '' width width050 precision 1 align 'R' update 1 * second } Widget LoadBar { class 'Bar' expression loadavg(1) expression2 loadavg(2) max 4.0 length width050 direction 'E' update 1 * second background std_bg_bar barcolor0 std_fg_bar0 barcolor1 std_fg_bar1 } Widget Disk { class 'Text' # disk.[rw]blk return blocks, we assume a blocksize of 512 # to get the number in kB/s we would do blk*512/1024, which is blk/2 # expression (proc_stat::disk('.*', 'rblk', 1 * second)+proc_stat::disk('.*', 'wblk', 1 * second))/2 # with kernel 2.6, disk_io disappeared from /proc/stat but moved to /proc/diskstat # therefore you have to use another function called 'diskstats': expression (diskstats('sd[a-z]$', 'read_sectors', 1 * second) + diskstats('sd[a-z]$', 'write_sectors', 1 * second)) / 2 / 1024 prefix 'Disk' postfix ' MB/s' width width050 precision 1 align 'R' update 1 * second } Widget DiskBar { class 'Bar' #expression proc_stat::disk('.*', 'rblk', 1 * second) #expression2 proc_stat::disk('.*', 'wblk', 1 * second) # for kernel 2.6: expression diskstats('sd[a-z]$', 'read_sectors', 1 * second) / 2 / 1024 expression2 diskstats('sd[a-z]$', 'write_sectors', 1 * second) / 2 / 1024 length width050 direction 'E' update 1 * second background std_bg_bar barcolor0 std_fg_bar0 barcolor1 std_fg_bar1 } Widget Eth0 { class 'Text' expression (netdev('eth0', 'Rx_bytes', 1 * second) + netdev('eth0', 'Tx_bytes', 1 * second)) * 8 / 1024 / 1024 prefix 'eth0' postfix ' Mbit/s' width width050 precision 1 align 'R' update 1 * second } Widget Eth0Bar { class 'Bar' expression netdev('eth0', 'Rx_bytes', 1 * second) * 8 / 1024 / 1024 expression2 netdev('eth0', 'Tx_bytes', 1 * second) * 8 / 1024 / 1024 length width050 direction 'E' update 1 * second background std_bg_bar barcolor0 std_fg_bar0 barcolor1 std_fg_bar1 } Widget Wlan0 { class 'Text' expression (netdev('wlan0', 'Rx_bytes', 1 * second) + netdev('wlan0', 'Tx_bytes', 1 * second)) * 8 / 1024 / 1024 prefix 'wlan0' postfix ' Mbit/s' width width050 precision 1 align 'R' update 1 * second } Widget Wlan0Bar { class 'Bar' expression netdev('wlan0', 'Rx_bytes', 1 * second) * 8 / 1024 / 1024 expression2 netdev('wlan0', 'Tx_bytes', 1 * second) * 8 / 1024 / 1024 length width050 direction 'E' update 1 * second background std_bg_bar barcolor0 std_fg_bar0 barcolor1 std_fg_bar1 } Widget WiFi { class 'Text' expression wifi::level('wlan0') prefix 'WiFi Signal' postfix ' dB' width width050 precision 1 align 'R' update 1 * second } Widget WiFiBar { class 'Bar' expression wifi::level('wlan0') + 100 expression2 wifi::quality('wlan0') min 0 max 100 length width050 direction 'E' update 1 * second background std_bg_bar barcolor0 std_fg_bar0 barcolor1 std_fg_bar1 } Widget DVB { class 'Text' expression dvb('signal_strength') * 100 prefix 'DVB Signal' postfix '%' width width050 precision 1 align 'R' update 1 * second } Widget DVBBar { class 'Bar' expression dvb('signal_strength') # expression2 dvb('snr') expression2 dvb('ber') min 0 max 1 length width050 direction 'E' update 1 * second background std_bg_bar barcolor0 std_fg_bar0 barcolor1 std_fg_bar1 } Widget MemoryTitle { class 'Text' expression 'Memory' width width050 align 'L' update 0 } Widget MemoryTotal { class 'Text' expression meminfo('MemTotal') / 1024 prefix ' Total ' postfix ' MB' width width050 precision 0 align 'R' update 0 } Widget MemoryFree { class 'Text' expression (meminfo('MemFree') + meminfo('Cached')) / 1024 prefix ' Free ' postfix ' MB' width width050 precision 0 align 'R' update 1 * second } Widget MemorySwapped { class 'Text' expression (meminfo('SwapTotal') - meminfo('SwapFree')) / 1024 prefix ' Swap used ' postfix ' MB' width width050 precision 0 align 'R' update 1 * second } Widget HDDTempTitle { class 'Text' expression 'Disk Temperature°C' width width050 align 'L' update 0 } Widget HDDTemp1 { class 'Text' expression hddtemp('/dev/sda') width width010 precision 1 align 'R' update 10 * second } Widget HDDTemp2 { class 'Text' expression hddtemp('/dev/sdb') width width010 precision 1 align 'R' update 10 * second } Widget HDDTemp3 { class 'Text' expression hddtemp('/dev/sdc') width width010 precision 1 align 'R' update 10 * second } Widget HDDTemp4 { class 'Text' expression ' ' # hddtemp('/dev/sdd') width width010 + 1 # precision 1 align 'R' update 0 # 10 * second } Widget Users { class 'Text' expression exec('/usr/bin/who | /usr/bin/wc -l', 10 * second) . ' User(s) logged in' width width050 align 'L' update 10 * second } Widget FSSpaceTitle { class 'Text' expression 'Disk Space available' width width050 align 'L' update 0 } Widget FSSpace1 { class 'Text' expression statfs('/', 'bavail') * statfs('/', 'bsize') / 1024 / 1024 / 1024 prefix ' / (Root FS)' postfix ' GB' width width050 precision 2 align 'R' update 10 * second } Widget FSSpace2 { class 'Text' expression statfs('/home', 'bavail') * statfs('/home', 'bsize') / 1024 / 1024 / 1024 prefix ' /home' postfix ' GB' width width050 precision 2 align 'R' update 10 * second } Widget FSSpace3 { class 'Text' expression statfs('/backup', 'bavail') * statfs('/backup', 'bsize') / 1024 / 1024 / 1024 prefix ' /backup ' postfix ' GB' width width050 precision 2 align 'R' update 10 * second } Widget FSSpace4 { class 'Text' expression statfs('/filme', 'bavail') * statfs('/filme', 'bsize') / 1024 / 1024 / 1024 prefix ' /filme ' postfix ' GB' width width050 precision 2 align 'R' update 10 * second } Widget FSSpace5 { class 'Text' expression statfs('/mufu', 'bavail') * statfs('/mufu', 'bsize') / 1024 / 1024 / 1024 prefix ' /mufu ' postfix ' GB' width width050 precision 2 align 'R' update 10 * second } Widget ServicesTitle { class 'Text' expression 'Services' width width100 align 'C' background std_bg_inverse foreground std_fg_inverse } Widget ApacheStatus { class 'Text' expression 'Apache ' width width050 postfix strstr(exec('/etc/init.d/apache2 status', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget BindDNSStatus { class 'Text' expression 'Bind DNS ' width width050 postfix strstr(exec('/etc/init.d/bind9 status', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget DHCPStatus { class 'Text' expression 'DHCP ' width width050 postfix strstr(exec('/etc/init.d/isc-dhcp-server status', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget IWatchStatus { class 'Text' expression 'IWatch ' width width050 postfix strstr(exec('/etc/init.d/iwatch status', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget LLTDStatus { class 'Text' expression 'LLTD Responder ' width width050 postfix strstr(exec('/etc/init.d/lld2d status', 10 * second), 'not running') > 0 ? 'down!' : 'up' update 10 * second } Widget LighttpdStatus { class 'Text' expression 'Lighttpd ' width width050 postfix strstr(exec('/etc/init.d/lighttpd status', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget MiniDLNAStatus { class 'Text' expression 'MiniDLNA ' width width050 postfix strstr(exec('/etc/init.d/minidlna status', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget MotionStatus { class 'Text' expression 'Motion ' width width050 # postfix strstr(exec('/etc/init.d/motion status', 10 * second), 'running') > 0 ? 'up' : 'down!' postfix 'n/a' update 10 * second } Widget MySQLStatus { class 'Text' expression 'MySQL ' width width050 postfix strstr(exec('/sbin/status mysql', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget MythTVStatus { class 'Text' expression 'MythTV Backend ' width width050 postfix strstr(exec('/sbin/status mythtv-backend', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget PostfixStatus { class 'Text' expression 'Postfix ' width width050 postfix strstr(exec('/etc/init.d/postfix status', 10 * second), 'not running') > 0 ? 'down!' : 'up' update 10 * second } Widget ProFTPStatus { class 'Text' expression 'ProFTP ' width width050 postfix strstr(exec('/etc/init.d/proftpd status', 10 * second), 'not running') > 0 ? 'down!' : 'up' update 10 * second } Widget SambaStatus { class 'Text' expression 'Samba ' width width050 postfix strstr(exec('/sbin/status smbd', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget SambaStatusDS { class 'Text' expression 'Samba ' width width050 postfix strstr(exec('/etc/init.d/samba status', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget SSHStatus { class 'Text' expression 'SSH ' width width050 postfix strstr(exec('/sbin/status ssh', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget SSHStatusDS { class 'Text' expression 'SSH ' width width050 postfix strstr(exec('/etc/init.d/ssh status', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget SWRAIDStatus { class 'Text' expression 'SW RAID ' width width050 postfix strstr(exec('cat /proc/mdstat', 10 * second), '[UUU]') > 0 ? 'up' : 'attention!' update 10 * second } Widget TwonkyStatus { class 'Text' expression 'Twonkymedia ' width width050 postfix strstr(exec('/sbin/status twonkymedia', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget WebcamStatus { class 'Text' expression 'Webcam ' width width050 postfix strstr(exec('/etc/init.d/webcam status', 10 * second), 'not running') > 0 ? 'down!' : 'up' update 10 * second } Widget WebminStatus { class 'Text' expression 'Webmin ' width width050 postfix strstr(exec('/etc/init.d/webmin status', 10 * second), 'running') > 0 ? 'up' : 'down!' update 10 * second } Widget SyslogTitle { class 'Text' expression '/var/log/syslog' width width100 align 'C' foreground std_fg_inverse background std_bg_inverse } Widget SetSyslogMsg { class 'Timer' expression SyslogMsg = exec('tail -n 1 /var/log/syslog', 4 * second) active 1 update 4 * second } Widget Syslog1 { class 'Text' expression substr(SyslogMsg, 0 * width100, width100) width width100 align 'L' foreground std_fg_area background std_bg_area update 4 * second } Widget Syslog2 { class 'Text' expression substr(SyslogMsg, 1 * width100, width100) width width100 align 'L' foreground std_fg_area background std_bg_area update 4 * second } Widget Syslog3 { class 'Text' expression substr(SyslogMsg, 2 * width100, width100) width width100 align 'L' foreground std_fg_area background std_bg_area update 4 * second } Widget Syslog4 { class 'Text' expression substr(SyslogMsg, 3 * width100, width100) width width100 align 'L' foreground std_fg_area background std_bg_area update 4 * second } Widget TopTitle { class 'Text' expression 'USER PID %CPU VSZ TIME COMMAND' width width100 align 'L' background std_bg_inverse foreground std_fg_inverse } Widget SetTopMsg { class 'Timer' # ps output must be exactly with100 (51) characters wide, including \n # (the last field 's' ensures there are no shorter lines). # /bin/ps -e -o "user:8,pid:5,pcpu:4,vsize:6,cputime:8,comm:12,s:1" --cols 51 --sort -pcpu # mysql 1218 1.5 151696 00:03:26 mysqld S expression TopMsg = exec('/bin/ps -e -o "user:8,pid:5,pcpu:4,vsize:6,cputime:8,comm:' . (width100 - 39) . ',s:1" --cols ' . width100 . ' --sort -pcpu | /usr/bin/tail -n"+2" | /usr/bin/head -4', 4 * second) active 1 update 4 * second } Widget Top1 { class 'Text' expression substr(TopMsg, 0 * width100, width100) width width100 align 'L' foreground std_fg_area background std_bg_area update 4 * second } Widget Top2 { class 'Text' expression substr(TopMsg, 1 * width100, width100) width width100 align 'L' foreground std_fg_area background std_bg_area update 4 * second } Widget Top3 { class 'Text' expression substr(TopMsg, 2 * width100, width100) width width100 align 'L' foreground std_fg_area background std_bg_area update 4 * second } Widget Top4 { class 'Text' expression substr(TopMsg, 3 * width100, width100) width width100 align 'L' foreground std_fg_area background std_bg_area update 4 * second } Widget Debug { class 'Text' # expression cfg('Layout') expression '$Revision: 1.54 $ -- DPF Driver by hackfin' width linesize align 'C' foreground std_fg_debug background std_bg_debug } Widget na { class 'Text' expression 'n/a' width 3 align 'L' } Widget Bgnd { class 'Image' file '/usr/local/share/backgrounds/mythbuntu-320x240.png' reload 0 update 0 inverted 0 visible 1 } Widget BgndDS { class 'Image' file '/usr/local/share/backgrounds/dockstar-320x240.png' reload 0 update 0 inverted 0 visible 1 } Widget SetWebcamImg { class 'Timer' expression exec('/usr/bin/curl http://localhost:8083?action=snapshot | /usr/bin/convert jpg:- /tmp/webcam.png', 5 * second) active 1 update 5 * second } Widget Webcam { class 'Image' file '/tmp/webcam.png' reload 1 update 5 * second inverted 0 visible 1 } Layout dudl { Row01.Col01 'SystemEth0' Row02.Col01 'Time' # Row03.Col52 'Heartbeat' Row04.Col02 'Busy' Row05.Col02 'BusyBar' Row07.Col02 'Load' Row08.Col02 'LoadBar' Row10.Col02 'Disk' Row11.Col02 'DiskBar' Row13.Col02 'Eth0' Row14.Col02 'Eth0Bar' Row16.Col02 'DVB' Row17.Col02 'DVBBar' Row04.Col29 'MemoryTitle' Row05.Col29 'MemoryTotal' Row06.Col29 'MemoryFree' Row07.Col29 'MemorySwapped' Row09.Col29 'HDDTempTitle' Row10.Col29 'HDDTemp1' Row10.Col34 'HDDTemp2' Row10.Col40 'HDDTemp3' Row10.Col46 'HDDTemp4' Row12.Col29 'FSSpaceTitle' Row13.Col29 'FSSpace1' Row14.Col29 'FSSPace2' Row15.Col29 'FSSpace3' Row16.Col29 'FSSpace4' Row17.Col29 'FSSpace5' Row19.Col02 'ServicesTitle' Row20.Col02 'ApacheStatus' Row21.Col02 'MySQLStatus' Row22.Col02 'LLTDStatus' Row23.Col02 'MythTVStatus' Row24.Col02 'PostfixStatus' Row20.Col29 'SambaStatus' Row21.Col29 'SSHStatus' Row22.Col29 'SWRAIDStatus' Row23.Col29 'TwonkyStatus' Row24.Col29 'Users' # Row25.Col02 'TopTitle' # Row26.Col02 'Top1' # Row27.Col02 'Top2' # Row28.Col02 'Top3' # Row29.Col02 'Top4' Row26.Col02 'SyslogTitle' Row27.Col02 'Syslog1' Row28.Col02 'Syslog2' Row29.Col02 'Syslog3' # Row29.Col02 'Syslog4' Row30.Col01 'Debug' Timer1 'SetSyslogMsg' # Timer2 'SetTopMsg' # Layer 2 { # X1.Y1 'Bgnd' # } } Layout fredl { Row01.Col01 'SystemEth0' Row02.Col01 'Time' # Row03.Col52 'Heartbeat' Row04.Col02 'Busy' Row05.Col02 'BusyBar' Row07.Col02 'Load' Row08.Col02 'LoadBar' Row10.Col02 'Disk' Row11.Col02 'DiskBar' Row13.Col02 'Eth0' Row14.Col02 'Eth0Bar' Row04.Col29 'MemoryTitle' Row05.Col29 'MemoryTotal' Row06.Col29 'MemoryFree' Row07.Col29 'MemorySwapped' # Row09.Col29 'HDDTempTitle' # Row10.Col29 'na' Row09.Col29 'Users' Row11.Col29 'FSSpaceTitle' Row12.Col29 'FSSpace1' # Row13.Col29 'FSSpace2' Row16.Col02 'ServicesTitle' Row17.Col02 'BindDNSStatus' Row18.Col02 'DHCPStatus' Row19.Col02 'IWatchStatus' Row20.Col02 'LighttpdStatus' Row21.Col02 'LLTDStatus' Row22.Col02 'MiniDLNAStatus' Row23.Col02 'MotionStatus' Row17.Col29 'PostfixStatus' # Row18.Col29 'ProFTPStatus' Row18.Col29 'SambaStatusDS' Row19.Col29 'SSHStatusDS' Row20.Col29 'WebcamStatus' Row21.Col29 'WebminStatus' Row25.Col02 'SyslogTitle' Row26.Col02 'Syslog1' Row27.Col02 'Syslog2' Row28.Col02 'Syslog3' Row29.Col02 'Syslog4' Row30.Col01 'Debug' Timer1 'SetSyslogMsg' # Layer 2 { # X1.Y1 'BgndDS' # } } Layout bastl { Row01.Col01 'SystemWlan0' Row02.Col01 'Time' Row26.Col02 'Busy' Row27.Col02 'BusyBar' Row26.Col28 'Load' Row27.Col28 'LoadBar' Row28.Col02 'WiFi' Row29.Col02 'WiFiBar' Row28.Col28 'Wlan0' Row29.Col28 'Wlan0Bar' # Row30.Col01 'Debug' Timer1 'SetWebcamImg' Layer 2 { X1.Y1 'Webcam' } }