diff options
author | makefu <github@syntax-fehler.de> | 2013-01-04 04:31:25 +0700 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2013-01-04 04:31:25 +0700 |
commit | 1027cbc903b6e1852247225ca0aa6b958cf2550c (patch) | |
tree | 4768ab8ec4564ddbacd85b9872073868b7311f5b /minikrebs | |
parent | 137f9b7dd7112499f8a36600c0e2689d235b210b (diff) |
god/oncology -> minikrebs
Diffstat (limited to 'minikrebs')
-rw-r--r-- | minikrebs/lazorcam/doc/lazorcam_druck.svg | 231 | ||||
-rw-r--r-- | minikrebs/oncology/Makefile | 23 | ||||
-rw-r--r-- | minikrebs/oncology/config/full.conf | 572 |
3 files changed, 826 insertions, 0 deletions
diff --git a/minikrebs/lazorcam/doc/lazorcam_druck.svg b/minikrebs/lazorcam/doc/lazorcam_druck.svg new file mode 100644 index 00000000..4f376059 --- /dev/null +++ b/minikrebs/lazorcam/doc/lazorcam_druck.svg @@ -0,0 +1,231 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="744.09448" + height="524.40942" + id="svg2" + version="1.1" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="lazorcam_druck.svg"> + <defs + id="defs4"> + <filter + id="filter3162" + inkscape:menu-tooltip="Draws a black outline around" + inkscape:menu="ABCs" + inkscape:label="Black outline" + color-interpolation-filters="sRGB"> + <feGaussianBlur + id="feGaussianBlur3164" + stdDeviation="2" + in="SourceAlpha" + result="result0" /> + <feComposite + id="feComposite3166" + in2="result0" + result="result3" + operator="arithmetic" + in="SourceGraphic" + k2="1" + k3="10" /> + <feComposite + id="feComposite3168" + in2="result3" + k2="1" + operator="in" + in="result3" + result="result4" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.7" + inkscape:cx="540.90757" + inkscape:cy="337.03064" + inkscape:document-units="px" + inkscape:current-layer="layer2" + showgrid="false" + showguides="true" + inkscape:guide-bbox="true" + inkscape:window-width="1364" + inkscape:window-height="747" + inkscape:window-x="0" + inkscape:window-y="19" + inkscape:window-maximized="0"> + <sodipodi:guide + orientation="1,0" + position="58.571429,342.14286" + id="guide3033" /> + <sodipodi:guide + orientation="1,0" + position="169.70563,528.30978" + id="guide3069" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Layer"> + <rect + style="fill:#f9f9f9;fill-opacity:1;filter:url(#filter3162)" + id="rect3116" + width="747.14288" + height="525.71429" + x="0.71427059" + y="0.12369233" /> + </g> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-527.95273)"> + <text + xml:space="preserve" + style="font-size:73.84999847px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="372.04724" + y="618.20862" + id="text2985" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan2987" + x="372.04724" + y="618.20862">LAZORCAM</tspan></text> + <text + xml:space="preserve" + style="font-size:25px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="58.57143" + y="710.2193" + id="text3001" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3003" + x="58.57143" + y="710.2193">Boot: </tspan><tspan + sodipodi:role="line" + x="58.57143" + y="736.48553" + id="tspan3011" + style="font-size:20px">- Lazorcam hat Stom wenn die blaue LED leuchtet</tspan><tspan + sodipodi:role="line" + x="58.57143" + y="761.48553" + id="tspan3009" + style="font-size:20px">- Wenn die LED vom Zustand "Blinkend" in den</tspan><tspan + sodipodi:role="line" + x="58.57143" + y="786.48553" + id="tspan3017" + style="font-size:20px"> Zustand "durchgängig Leuchtend" gewechselt ist,</tspan><tspan + sodipodi:role="line" + x="58.57143" + y="811.48553" + id="tspan3019" + style="font-size:20px"> ist der Bootvorgang abgeschlossen </tspan></text> + <text + xml:space="preserve" + style="font-size:25px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="372.37073" + y="649.85162" + id="text3005" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3007" + x="372.37073" + y="649.85162">Schaue dem Lazor beim Arbeiten zu</tspan></text> + <text + xml:space="preserve" + style="font-size:25px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="76.428574" + y="352.98083" + id="text3021" + sodipodi:linespacing="125%" + transform="translate(0,527.95273)"><tspan + sodipodi:role="line" + id="tspan3023"></tspan></text> + <text + xml:space="preserve" + style="font-size:25px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="58.57143" + y="889.7276" + id="text3035" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + x="58.57143" + y="889.7276" + id="tspan3065">Erreichbarkeit:</tspan><tspan + sodipodi:role="line" + x="58.57143" + y="915.99384" + id="tspan3049" + style="font-size:20px"> HTTP: </tspan><tspan + sodipodi:role="line" + x="58.57143" + y="940.99384" + id="tspan3051" + style="font-size:20px" /><tspan + sodipodi:role="line" + x="58.57143" + y="965.99384" + id="tspan3039" + style="font-size:20px"> VLC: File -> Open Network Stream -></tspan></text> + <text + xml:space="preserve" + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="169.70563" + y="915.99158" + id="text3071" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3073" + x="169.70563" + y="915.99158">http://lazorcam.shack/</tspan></text> + <flowRoot + xml:space="preserve" + id="flowRoot3075" + style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:25px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion + id="flowRegion3077"><rect + id="rect3079" + width="91.923882" + height="160.61426" + x="11.111678" + y="21.353456" /></flowRegion><flowPara + id="flowPara3081"></flowPara></flowRoot> <text + xml:space="preserve" + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="169.70563" + y="989.73273" + id="text3087" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3089" + x="169.70563" + y="989.73273">http://lazorcam.shack/?action=stream</tspan><tspan + sodipodi:role="line" + x="169.70563" + y="1014.7327" + id="tspan3091" /></text> + </g> +</svg> diff --git a/minikrebs/oncology/Makefile b/minikrebs/oncology/Makefile new file mode 100644 index 00000000..05d5c422 --- /dev/null +++ b/minikrebs/oncology/Makefile @@ -0,0 +1,23 @@ +build-deps: + #punani -Ei libtool automake autoconf zlib1g-dev libssl-dev python-dev libc6 libusb-dev libibus-dev subversion libgd2-noxpm-dev libgd2-noxpm lcd4linux + +/usr/bin/lcd4linux: build-deps + #punani -Ei lcd4linux + sed -i 's/usr\/sbin\/lcd4linux/usr\/bin\/lcd4linux/g' /etc/init.d/lcd4linux + dpfhack_display/build-dpf-lcd4linux.sh + make -C dpfhack_display/lcd4linux/ install + +lcd4linux_autostart: + # service lcd4linux start + # update-rc.d lcd4linux + +install: /usr/bin/lcd4linux /etc/lcd4linux.conf lcd4linux_autostart + # TODO this is debian only + +update: /etc/lcd4linux.conf + service lcd4linux force-reload + +/etc/lcd4linux.conf: lcd4linux.conf + chown krebs:krebs lcd4linux.conf + chmod 600 lcd4linux.conf + cp -a lcd4linux.conf /etc/lcd4linux.conf diff --git a/minikrebs/oncology/config/full.conf b/minikrebs/oncology/config/full.conf new file mode 100644 index 00000000..be16629d --- /dev/null +++ b/minikrebs/oncology/config/full.conf @@ -0,0 +1,572 @@ +Layout 'Krebs'
+Display 'DPF'
+
+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 5 # 1/10 of full width
+
+ # Colors:
+ # ToDo: Alphakanal ausnutzen
+ black '000000'
+ white 'ffffff'
+ red 'ff0000'
+ darkblue '000066'
+ lightgray 'b2b2b2'
+ darkgray '191919'
+ barcolor0 '5f5fff'
+ barcolor1 'ff5f5c'
+
+ # To be set later by timers:
+ FileMsg 'Dummy'
+}
+
+Display dpf {
+ Driver 'DPF'
+ Port 'usb0'
+ Font '6x8'
+ Foreground white
+ Background darkblue
+ Basecolor darkblue
+}
+
+Widget System {
+ class 'Text'
+ expression '*** ' . uname('nodename') . ' '. netinfo::ipaddr('eth0') . ' ***'
+ width linesize
+ align 'C'
+ update 0
+ Background lightgray
+ Foreground darkgray
+}
+
+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 lightgray
+ Foreground darkgray
+}
+
+Widget Busy {
+ class 'Text'
+ expression proc_stat::cpu('busy', 0.5 * second)
+ prefix 'Busy'
+ postfix '%'
+ width width050
+ precision 1
+ align 'R'
+ update 0.5 * second
+}
+
+Widget BusyBar {
+ class 'Bar'
+ expression proc_stat::cpu('busy', 0.5 * second)
+ expression2 proc_stat::cpu('system', 0.5 * second)
+ length width050
+ direction 'E'
+ update 0.5 * second
+ Background darkgray
+ BarColor0 barcolor0
+ BarColor1 barcolor1
+}
+
+Widget Load {
+ class 'Text'
+ expression loadavg(1)
+ prefix 'Load'
+ postfix loadavg(1) > 1.0 ? '!' : ' '
+ width width050
+ precision 1
+ align 'R'
+ update 0.5 * second
+# Foreground loadavg(1) > 1.0 ? red : white
+}
+
+Widget LoadBar {
+ class 'Bar'
+ expression loadavg(1)
+ max 4.0
+ length width050
+ direction 'E'
+ update 0.5 * second
+ Background darkgray
+ BarColor0 barcolor0
+ BarColor1 barcolor1
+}
+
+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', 0.5 * second)+proc_stat::disk('.*', 'wblk', 0.5 * 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', 0.5 * second) + diskstats('sd[a-z]$', 'write_sectors', 0.5 * second)) / 2 / 1024
+ prefix 'Disk'
+ postfix ' MB/s'
+ width width050
+ precision 1
+ align 'R'
+ update 0.5 * second
+}
+
+Widget DiskBar {
+ class 'Bar'
+ #expression proc_stat::disk('.*', 'rblk', 0.5 * second)
+ #expression2 proc_stat::disk('.*', 'wblk', 0.5 * second)
+ # for kernel 2.6:
+ expression diskstats('sd[a-z]$', 'read_sectors', 0.5 * second) / 2 / 1024
+ expression2 diskstats('sd[a-z]$', 'write_sectors', 0.5 * second) / 2 / 1024
+ length width050
+ direction 'E'
+ update 0.5 * second
+ Background darkgray
+ BarColor0 barcolor0
+ BarColor1 barcolor1
+}
+
+Widget Eth0 {
+ class 'Text'
+ expression (netdev('eth0', 'Rx_bytes', 0.5 * second) + netdev('eth0', 'Tx_bytes', 0.5 * second)) / 1024
+ prefix 'eth0'
+ postfix ' KB/s'
+ width width050
+ precision 1
+ align 'R'
+ update 0.5 * second
+}
+
+Widget Eth0Bar {
+ class 'Bar'
+ expression netdev('eth0', 'Rx_bytes', 0.5 * second) / 1024
+ expression2 netdev('eth0', 'Tx_bytes', 0.5 * second) / 1024
+ length width050
+ direction 'E'
+ update 0.5 * second
+ Background darkgray
+ BarColor0 barcolor0
+ BarColor1 barcolor1
+}
+
+Widget Eth0Traffic {
+ class 'Text'
+ expression (netdev('eth0', 'Rx_bytes', 0)+netdev('eth0', 'Tx_bytes', 0))/1024/1024/1024
+ prefix 'Traffic:'
+ postfix ' GB'
+ width 21
+ precision 3
+ align 'R'
+ update 10 * second
+}
+
+Widget MemoryTitle {
+ class 'Text'
+ expression 'Memory/Swap'
+ width width050
+ align 'L'
+ update 0
+}
+
+Widget MemoryTotal {
+ class 'Text'
+ expression meminfo('MemTotal') / 1024
+ prefix 'Memory Total '
+ postfix ' MB'
+ width width050
+ precision 0
+ align 'R'
+ update 0
+}
+
+Widget MemoryFree {
+ class 'Text'
+ expression (meminfo('MemFree') + meminfo('Cached')) / 1024
+ prefix 'Memory Free '
+ postfix ' MB'
+ width width050
+ precision 0
+ align 'R'
+ update 1 * second
+}
+
+Widget MemorySwappedTotal {
+ class 'Text'
+ expression (meminfo('SwapTotal')) / 1024
+ prefix 'Swap Total '
+ postfix ' MB'
+ width width050
+ precision 0
+ align 'R'
+ update 1 * second
+}
+
+Widget MemorySwappedFree {
+ class 'Text'
+ expression (meminfo('SwapTotal') - meminfo('SwapUsed')) / 1024
+ prefix 'Swap Free''
+ postfix ' MB'
+ width width050
+ precision 0
+ align 'R'
+ update 1 * second
+}
+
+Widget MemorySwappedUsed {
+ class 'Text'
+ expression (meminfo('SwapTotal') - meminfo('SwapFree')) / 1024
+ prefix 'Swap Used '
+ postfix ' MB'
+ width width050
+ precision 0
+ align 'R'
+ update 1 * second
+}
+
+Widget LoggedInTitle {
+ class 'Text'
+ expression 'Hosts in Krebs Darknet'
+ width width050
+ align 'L'
+ update 0
+}
+
+Widget LoggedIn {
+ class 'Text'
+ expression exec('/krebs/oncology/bin/krebshostup')
+ width width050
+ align 'L'
+ update 300 * 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 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 ServicesTitle {
+ class 'Text'
+ expression 'Services'
+ width width100
+ align 'C'
+ Background lightgray
+ Foreground darkgray
+}
+
+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 MuninStatus {
+ class 'Text'
+ expression 'Monitoring '
+ width width050
+ postfix strstr(exec('/etc/init.d/munin-node 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 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 FileTitle {
+ class 'Text'
+ expression 'Syslog'
+ width width100
+ align 'C'
+ Background lightgray
+ Foreground darkgray
+}
+
+Widget SetFileMsg {
+ class 'Timer'
+ expression FileMsg = exec('tail -n 1 /var/log/syslog', 2 * second)
+ active 1
+ update 2 * second
+}
+
+Widget File1 {
+ class 'Text'
+ expression substr(FileMsg, 0 * width100, width100)
+ width width100
+ align 'L'
+ Background darkgray
+ update 2 * second
+}
+
+Widget File2 {
+ class 'Text'
+ expression substr(FileMsg, 1 * width100, width100)
+ width width100
+ align 'L'
+ Background darkgray
+ update 2 * second
+}
+
+Widget File3 {
+ class 'Text'
+ expression substr(FileMsg, 2 * width100, width100)
+ width width100
+ align 'L'
+ Background darkgray
+ update 2 * second
+}
+
+Widget Weather1 {
+ class 'Text'
+ expression exec('/krebs/kachelmann/wetter', 10 * second)
+ prefix 'Wetter:'
+ width width100
+ align 'L'
+ Background darkgray
+ update 10 * second
+}
+Widget Bitcoin {
+ class 'Text'
+ expression exec('/krebs/btc/mtgox/ticker_text.sh', 10 * second)
+ prefix 'BTC: '
+ width width100
+ align 'L'
+ Background darkgray
+ update 30 * second
+}
+
+Widget Stream {
+ class 'Text'
+ expression exec('/krebs/streams/streams status', 10 * second)
+ #prefix 'Stream:'
+ width width100
+ align 'L'
+ Background darkgray
+ update 10 * second
+}
+
+Widget Debug {
+ class 'Text'
+ expression 'Serverdisplay - Krebs'
+ width linesize
+ align 'C'
+ Foreground lightgray
+}
+
+Widget na {
+ class 'Text'
+ expression 'n/a'
+ width 3
+ align 'L'
+}
+
+Widget Bgnd {
+ class 'Image'
+ file '/krebs/cholerab/bling/krebs-v2_320x240.png'
+ reload 0
+ update 0
+ inverted 0
+ visible 1
+}
+
+Layout Krebs {
+ Row01.Col01 'System'
+ Row02.Col01 'Time'
+ Row04.Col02 'Busy'
+ Row05.Col02 'BusyBar'
+ Row07.Col02 'Load'
+ Row08.Col02 'LoadBar'
+ Row10.Col02 'Disk'
+ Row11.Col02 'DiskBar'
+ Row13.Col02 'Eth0'
+ Row14.Col02 'Eth0Bar'
+ Row15.Col02 'Eth0Traffic'
+
+ Row04.Col28 'MemoryTitle'
+ Row05.Col29 'MemoryTotal'
+ Row06.Col29 'MemoryFree'
+ Row07.Col29 'MemorySwappedTotal'
+ Row08.Col29 'MemorySwappedUsed'
+ Row10.Col28 'LoggedInTitle'
+ Row11.Col29 'LoggedIn'
+ Row13.Col28 'FSSpaceTitle'
+ Row14.Col29 'FSSpace1'
+
+ Row17.Col02 'ServicesTitle'
+ #Row18.Col02 'BindDNSStatus'
+ #Row19.Col02 'MuninStatus'
+ Row18.Col02 'ApacheStatus'
+ #Row21.Col02 'MiniDLNAStatus'
+ #Row18.Col29 'PostfixStatus'
+ #Row19.Col29 'ProFTPStatus'
+ #Row20.Col29 'SambaStatusDS'
+ Row18.Col29 'SSHStatusDS'
+
+ Row19.Col02 'Weather1'
+ Row21.Col02 'Bitcoin'
+ Row23.Col02 'Stream'
+
+ Row25.Col02 'FileTitle'
+ Row26.Col02 'File1'
+ Row27.Col02 'File2'
+ Row28.Col02 'File3'
+
+ Row30.Col01 'Debug'
+
+ Timer1 'SetFileMsg'
+
+ Layer 2 {
+ X1.Y1 'Bgnd'
+ }
+}
|