Variables { tick 500 tack 100 minute 60000 } Display G15 { Driver 'G-15' Font '6x8' Contrast 10 Inverted 0 UInput '/dev/input/uinput' SingleKeyPress 1 } Display SerDispLib { Driver 'serdisplib' Port 'PAR:/dev/parports/0' #Port '/dev/tts/0' Model 'OPTREX323' Options '' } Display Trefon { Driver 'TREFON' Size '16x2' Backlight 1 Icons 1 } Display LCD-Linux { Driver 'LCD-Linux' Size '20x2' UseBusy 0 } Display LCD2USB { Driver 'LCD2USB' Size '20x2' Backlight 1 Icons 1 } Display LCD2041 { Driver 'MatrixOrbital' Model 'LCD2041' Port '/dev/tts/0' Speed 19200 Contrast 160 } Display LK202 { Driver 'MatrixOrbital' Model 'LK202-24-USB' Port '/dev/tts/USB0' Speed 19200 Contrast 256/2 } Display LK204 { Driver 'MatrixOrbital' Model 'LK204-24-USB' Port '/dev/usb/tts/0' # Port '/dev/tts/0' Speed 19200 Contrast 256/2 } Display MI240 { Driver 'MilfordInstruments' Model 'MI240' Port '/dev/tts/0' Speed 19200 } Display CW12232 { Driver 'Cwlinux' Model 'CW12232' Port '/dev/usb/tts/0' Speed 19200 Brightness 2 Icons 1 } Display CF631 { Driver 'Crystalfontz' Model '631' Port '/dev/tts/USB0' Speed 115200 Contrast 95 Backlight 50 Icons 1 } Display CF632 { Driver 'Crystalfontz' Model '632' Port '/dev/tts/0' Speed 19200 Icons 1 } Display CF633 { Icons 1 Driver 'Crystalfontz' Model '633' Port '/dev/tts/0' Speed 19200 Contrast 16 Backlight 50 } Display Curses { Driver 'Curses' Size '20x6' } # generic HD44780 display (LCD4Linux wiring) Display HD44780-generic { Driver 'HD44780' Model 'generic' Port '/dev/parports/0' Size '8x2' asc255bug 0 GPOs 8 Wire { RW 'GND' RS 'AUTOFD' ENABLE 'STROBE' ENABLE2 'GND' GPO 'INIT' POWER 'GND' } } # generic HD44780 display (WinAmp wiring) Display HD44780-winamp { Driver 'HD44780' Model 'generic' UseBusy 1 Port '/dev/parports/0' Size '20x4' asc255bug 1 Wire { RW 'AUTOFD' RS 'INIT' ENABLE 'STROBE' ENABLE2 'GND' GPO 'GND' POWER 'GND' } Timing { # fuzz timings by value (100 = no change) fuzz 100 # low-level communication [ns] CY 1000 # Enable cycle time PW 450 # Enable pulse width AS 140 # Address setup time AH 20 # Address hold time # HD44780 execution timings [us] INIT1 4100 # first init sequence: 4.1 msec INIT2 100 # second init sequence: 100 usec EXEC 80 # normal execution time WRCG 120 # CG RAM Write CLEAR 2250 # Clear Display HOME 2250 # Return Cursor Home ONOFF 2250 # Display On/Off Control # GPO timing [ns] GPO_ST 20 # 74HCT573 set-up time GPO_PW 230 # 74HCT573 enable pulse width # Power supply timing [ms] POWER 500 # power-on delay } } # HD44780 display 4-Bit mode Display HD44780-4bit { Driver 'HD44780' Model 'generic' Port '/dev/parports/0' Size '16x1' Bits 4 UseBusy 0 asc255bug 0 Wire { RW 'GND' RS 'DB4' ENABLE 'DB6' GPO 'GND' } } # Dual-HD44780 display from Pollin Display WDC2704M { Driver 'HD44780' Model 'generic' Controllers 2 UseBusy 1 Port '/dev/parports/0' Size '27x4' Wire { RW 'AUTOFD' RS 'INIT' ENABLE 'STROBE' ENABLE2 'SLCTIN' GPO 'GND' POWER 'GND' } } # HD44780 display from www.kernelconcepts.de Display HD44780-kernelconcepts { Driver 'HD44780' Model 'HD66712' UseBusy 1 Port '/dev/parports/0' Size '20x4' Wire { RW 'AUTOFD' RS 'INIT' ENABLE 'STROBE' ENABLE2 'GND' GPO 'GND' POWER 'GND' } } Display SC1602D { Driver 'HD44780' Port '/dev/parports/0' Bits '8' Size '16x2' asc255bug 0 Icons 1 Wire { RW 'GND' RS 'AUTOFD' ENABLE 'STROBE' GPO 'INIT' POWER 'GND' } } Display LCM-162 { Driver 'HD44780' Model 'LCM-162' # Bus 'parport' Port '/dev/parports/0' Size '16x2' UseBusy 1 asc255bug 0 Icons 1 } Display HD44780-I2C { Driver 'HD44780' Model 'generic' Bus 'i2c' Port '/dev/i2c-0' Device '70' Bits '4' Size '20x4' asc255bug 0 Icons 1 Wire { RW 'DB5' RS 'DB4' ENABLE 'DB6' GPO 'GND' } } Display LCDTerm { Driver 'LCDTerm Port '/dev/tts/0' Speed 19200 Size '20x4' Icons 1 } Display SimpleLCD { Driver 'SimpleLCD' Port '/dev/tts/0' Speed 1200 Options 0 Size '20x2' } Display BA63 { Driver 'WincorNixdorf' Model 'BA63' Port '/dev/tts/0' # Port '/dev/tts/USB0' Speed 9600 BarChar 219 SelfTest 0 } Display M50530-24x8 { Driver 'M50530' Port '/dev/parports/0' # Port '0x378' Size '24x8' Font '5x7' Duty 2 Wire.RW 'INIT' Wire.EX 'STROBE' Wire.IOC1 'SLCTIN' Wire.IOC2 'AUTOFD' Wire.GPO 'GND' UseBusy 1 Timing.fuzz 100 } Display CT20x4 { Driver 'Beckmann+Egle' Model 'CT20x4' Port '/dev/tts/0' # Size '16x2' # Contrast 7 # Backlight 1 Icons 1 } Display USBLCD { Driver 'USBLCD' # Port '/dev/lcd0' Port 'libusb' Size '20x4' asc255bug 1 Icons 1 } Display BWCT { Driver 'BWCT' Size '20x4' Contrast 220 asc255bug 1 Icons 1 } Display T6963-240x64 { Driver 'T6963' Port '/dev/parports/0' Size '240x64' Font '6x8' Wire.CE 'STROBE' Wire.CD 'SLCTIN' Wire.RD 'AUTOFD' Wire.WR 'INIT' } Display T6963-240x128 { Driver 'T6963' Port '/dev/parports/0' Size '240x128' Font '6x8' Wire.CE 'STROBE' Wire.CD 'SLCTIN' Wire.RD 'AUTOFD' Wire.WR 'INIT' Timing.fuzz 120 } Display LPH7508 { Driver 'LPH7508' Port '/dev/parports/0' Font '6x8' Contrast 15 Inverted 0 } Display LPH7508-serdisplib { Driver 'serdisplib' Port 'PAR:/dev/parports/0' Model 'LPH7508' } Display ctinclud { Driver 'serdisplib' Port 'USB:7c0/1501' Model 'CTINCLUD' Options '' Inverted 0 } Display XWindow { Driver 'X11' Size '120x32' Font '5x8' Pixel '4+1' Gap '-1x-1' Border 20 # Foreground '#000000' # Background '#80d000' # Halfground '#70c000' Foreground '000000cc' Background '00000022' Basecolor '80d000' } Display Image { Driver 'Image' # Format 'PPM' Format 'PNG' Size '120x32' Font '6x8' Pixel '4+1' Gap '-1x-1' Border 20 # Foreground '#000000' # Background '#80d000' # Halfground '#70c000' Foreground '000000cc' Background '00000022' Basecolor '80d000' } Plugin KVV { StationID '12_701' Refresh 30 Proxy 'igate' Port 8080; } Plugin Seti { Directory '/root/setiathome-3.08.i686-pc-linux-gnu' } Plugin MySQL { server 'gsmlandia.com' # if none, localhost assumed port 3306 # if none, MySQL default assumed user 'lcd4linux' # if none, lcd4linux unix owner assumed password 'lcd4linux' # if none, empty password assumed database 'lcd4linux' # MUST be specified } Plugin Pop3 { server1 'localhost' port1 110 user1 'michael' password1 'secret' } Widget OS { class 'Text' expression '*** '.uname('sysname').' '.uname('release').' ***' width 20 align 'M' style 'bold' speed 50 update tick } Widget CPU { class 'Text' expression uname('machine') prefix 'CPU ' width 9 align 'L' style test::onoff(7)>0?'bold':'norm' update tick } Widget CPUinfo { class 'Text' expression cpuinfo('model name') prefix '' width 20 align 'M' speed 100 update tick } Widget RAM { class 'Text' expression meminfo('MemTotal')/1024 postfix ' MB RAM' width 11 precision 0 align 'R' update tick } Widget Busy { class 'Text' expression proc_stat::cpu('busy', 500) prefix 'Busy' postfix '%' width 9 precision 1 align 'R' update tick } Widget BusyBar { class 'Bar' expression proc_stat::cpu('busy', 500) expression2 proc_stat::cpu('system', 500) length 10 direction 'E' update tack } Widget Load { class 'Text' expression loadavg(1) prefix 'Load' postfix loadavg(1)>1.0?'!':' ' width 10 precision 1 align 'R' update tick } Widget LoadBar { class 'Bar' expression loadavg(1) max 2.0 length 10 direction 'E' update tack } 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', 500)+proc_stat::disk('.*', 'wblk', 500))/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('hd.', 'read_sectors', 500) + diskstats('hd.', 'write_sectors', 500) prefix 'disk' postfix ' ' width 10 precision 0 align 'R' update tick } Widget DiskBar { class 'Bar' #expression proc_stat::disk('.*', 'rblk', 500) #expression2 proc_stat::disk('.*', 'wblk', 500) # for kernel 2.6: expression diskstats('hd.', 'read_sectors', 500) expression2 diskstats('hd.', 'write_sectors', 500) length 14 direction 'E' update tack } Widget Eth0 { class 'Text' expression (netdev('eth0', 'Rx_bytes', 500)+netdev('eth0', 'Tx_bytes', 500))/1024 prefix 'eth0' postfix ' ' width 10 precision 0 align 'R' update tick } Widget Eth0Bar { class 'Bar' expression netdev('eth0', 'Rx_bytes', 500) expression2 netdev('eth0', 'Tx_bytes', 500) length 14 direction 'E' update tack } Widget PPP { class 'Text' expression (ppp('Rx:0', 500)+ppp('Tx:0', 500)) prefix 'PPP' width 9 precision 0 align 'R' update tick } Widget Temp { class 'Text' expression i2c_sensors('temp_input3')*1.0324-67 prefix 'Temp' width 9 precision 1 align 'R' update tick } Widget TempBar { class 'Bar' expression i2c_sensors('temp_input3')*1.0324-67 min 40 max 80 length 10 direction 'E' update tack } Widget MySQLtest1 { class 'Text' expression MySQL::query('SELECT id FROM table1') width 20 align 'R' prefix 'MySQL test:' update minute } Widget MySQLtest2 { class 'Text' expression MySQL::status() width 20 align 'M' prefix 'Status: ' update minute } Widget Uptime { class 'Text' expression uptime('%d days %H:%M:%S') width 20 align 'R' prefix 'Up ' update 1000 } # debugging widgets Widget BarTest { class 'Bar' # test::bar(barno,maxval,startval,delta) - move a test value between 0 and max. # delta= step to change value by each time it's read. # barno - ten different test bar values can be set up, with barno=0..9 # if delta=0, just returns the value of bar n instead of changing it. expression test::bar(0,30,25,1) expression2 test::bar(1,30,0,1) length 8 # max 50 direction 'E' update 10 } Widget BarTestVal { class 'Text' expression test::bar(0,100,50,0) prefix 'Test ' width 9 update 200 } Widget LightningTest { class 'icon' speed 500 visible test::onoff(0) bitmap { row1 '...***' row2 '..***.' row3 '.***..' row4 '.****.' row5 '..**..' row6 '.**...' row7 '**....' row8 '*.....' } } # Icons Widget Heartbeat { class 'Icon' speed 800 Bitmap { Row1 '.....|.....' Row2 '.*.*.|.*.*.' Row3 '*****|*.*.*' Row4 '*****|*...*' Row5 '.***.|.*.*.' Row6 '.***.|.*.*.' Row7 '..*..|..*..' Row8 '.....|.....' } } Widget EKG { class 'Icon' speed 50 Bitmap { Row1 '.....|.....|.....|.....|.....|.....|.....|.....' Row2 '.....|....*|...*.|..*..|.*...|*....|.....|.....' Row3 '.....|....*|...*.|..*..|.*...|*....|.....|.....' Row4 '.....|....*|...**|..**.|.**..|**...|*....|.....' Row5 '.....|....*|...**|..**.|.**..|**...|*....|.....' Row6 '.....|....*|...*.|..*.*|.*.*.|*.*..|.*...|*....' Row7 '*****|*****|****.|***..|**..*|*..**|..***|.****' Row8 '.....|.....|.....|.....|.....|.....|.....|.....' } } Widget Karo { class 'Icon' speed 200 Bitmap { Row1 '.....|.....|.....|.....|..*..|.....|.....|.....' Row2 '.....|.....|.....|..*..|.*.*.|..*..|.....|.....' Row3 '.....|.....|..*..|.*.*.|*...*|.*.*.|..*..|.....' Row4 '.....|..*..|.*.*.|*...*|.....|*...*|.*.*.|..*..' Row5 '.....|.....|..*..|.*.*.|*...*|.*.*.|..*..|.....' Row6 '.....|.....|.....|..*..|.*.*.|..*..|.....|.....' Row7 '.....|.....|.....|.....|..*..|.....|.....|.....' Row8 '.....|.....|.....|.....|.....|.....|.....|.....' } } Widget Heart { class 'Icon' speed 250 Bitmap { Row1 '.....|.....|.....|.....|.....|.....' Row2 '.*.*.|.....|.*.*.|.....|.....|.....' Row3 '*****|.*.*.|*****|.*.*.|.*.*.|.*.*.' Row4 '*****|.***.|*****|.***.|.***.|.***.' Row5 '.***.|.***.|.***.|.***.|.***.|.***.' Row6 '.***.|..*..|.***.|..*..|..*..|..*..' Row7 '..*..|.....|..*..|.....|.....|.....' Row8 '.....|.....|.....|.....|.....|.....' } } Widget Blob { class 'Icon' speed 250 Bitmap { Row1 '.....|.....|.....' Row2 '.....|.....|.***.' Row3 '.....|.***.|*...*' Row4 '..*..|.*.*.|*...*' Row5 '.....|.***.|*...*' Row6 '.....|.....|.***.' Row7 '.....|.....|.....' Row8 '.....|.....|.....' } } Widget Wave { class 'Icon' speed 100 Bitmap { Row1 '..**.|.**..|**...|*....|.....|.....|.....|.....|....*|...**' Row2 '.*..*|*..*.|..*..|.*...|*....|.....|.....|....*|...*.|..*..' Row3 '*....|....*|...*.|..*..|.*...|*....|....*|...*.|..*..|.*...' Row4 '*....|....*|...*.|..*..|.*...|*....|....*|...*.|..*..|.*...' Row5 '*....|....*|...*.|..*..|.*...|*....|....*|...*.|..*..|.*...' Row6 '.....|.....|....*|...*.|..*..|.*..*|*..*.|..*..|.*...|*....' Row7 '.....|.....|.....|....*|...**|..**.|.**..|**...|*....|.....' Row8 '.....|.....|.....|.....|.....|.....|.....|.....|.....|.....' } } Widget Squirrel { class 'Icon' speed 100 Bitmap { Row1 '.....|.....|.....|.....|.....|.....' Row2 '.....|.....|.....|.....|.....|.....' Row3 '.....|.....|.....|.....|.....|.....' Row4 '**...|.**..|..**.|...**|....*|.....' Row5 '*****|*****|*****|*****|*****|*****' Row6 '...**|..**.|.**..|**...|*....|.....' Row7 '.....|.....|.....|.....|.....|.....' Row8 '.....|.....|.....|.....|.....|.....' } } Widget Lightning { class 'icon' speed 100 visible cpu('busy', 500)-50 bitmap { row1 '...***' row2 '..***.' row3 '.***..' row4 '.****.' row5 '..**..' row6 '.**...' row7 '**....' row8 '*.....' } } Widget Rain { class 'icon' speed 200 bitmap { row1 '...*.|.....|.....|.*...|....*|..*..|.....|*....' row2 '*....|...*.|.....|.....|.*...|....*|..*..|.....' row3 '.....|*....|...*.|.....|.....|.*...|....*|..*..' row4 '..*..|.....|*....|...*.|.....|.....|.*...|....*' row5 '....*|..*..|.....|*....|...*.|.....|.....|.*...' row6 '.*...|....*|..*..|.....|*....|...*.|.....|.....' row7 '.....|.*...|....*|..*..|.....|*....|...*.|.....' row8 '.....|.....|.*...|....*|..*..|.....|*....|...*.' } } Widget Test { class 'Text' expression '1234567890123456789012345678901234567890' width 40 foreground 'ff0000ff' } Widget Test1 { class 'Text' expression 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' width 40 align 'M' speed 100 } Widget Test2 { class 'Text' expression '1234567890abcdefghijklmnopqrstuvwxyz' width 40 align 'M' speed 150 } Widget GPO_Val1 { class 'Text' expression LCD::GPO(1) prefix 'GPO#1' width 10 precision 0 align 'R' update tick } Widget GPI_Val1 { class 'Text' expression LCD::GPI(1) prefix 'GPI#1' width 10 precision 0 align 'R' update tick } Widget GPO_Val4 { class 'Text' expression LCD::GPO(4) prefix 'GPO#4' width 10 precision 0 align 'R' update tick } Widget GPO_Test1 { class 'GPO' expression 255*test::onoff(1) update 300 } Widget GPO_Test255 { class 'GPO' expression test::bar(0,255, 0, 1) update 100 } Widget ImageTest { class 'Image' file 'tux.png' update 1000 visible 1 inverted 0 } Widget KVV { class 'Text' expression kvv::line(0).' '.kvv::station(0) width 11 align 'L' update tick Foreground 'ffff00' style 'bold' } Widget KVV_TIME { class 'Text' expression kvv::time_str(0) width 2 align 'R' update tick foreground kvv::time(0) < 2 ? 'FF0000' : ( kvv::time(0) < 5 ? 'FFFF00' : '00FF00' ) style 'bold' } Layout Default { Row1 { Col1 'OS' } Row2 { Col1 'CPU' Col10 'RAM' } Row3 { Col1 'Busy' Col10 'Rain' Col11 'BusyBar' } Row4 { Col1 'Load' Col11 'LoadBar' } Row5 { Col1 'Disk' Col11 'DiskBar' } Row6 { Col1 'Eth0' Col11 'Eth0Bar' } } Layout TestLayer { Row1 { Col1 'OS' } Row2 { Col1 'CPU' Col10 'RAM' } Row3 { Col1 'Busy' Col10 'Rain' Col11 'BusyBar' } Row4 { Col1 'Load' Col11 'LoadBar' } Row5 { Col1 'Disk' Col11 'DiskBar' } Row6 { Col1 'Eth0' Col11 'Eth0Bar' } Layer 2 { X1.Y1 'ImageTest' } } Layout TestImage { Layer 2 { X1.Y1 'ImageTest' } } Layout L24x8 { Row1 { Col1 'Load' Col11 'BusyBar' } Row2 { } } Layout L8x2 { Row1 { Col1 'Busy' } Row2 { Col1 'BarTest' } } Layout L16x1 { Row1 { Col1 'Busy' Col11 'BusyBar' } } Layout L16x2 { Row1 { Col1 'Busy' Col11 'BusyBar' } Row2 { Col1 'Disk' #Col11 'DiskBar' Col11 'BarTest' } } Layout L20x2 { Row1 { Col1 'CPUinfo' } Row2 { Col1 'Busy' Col11 'BusyBar' } } Layout L40x2 { Row1 { Col1 'OS' Col21 'Busy' Col31 'BusyBar' } Row2 { Col1 'CPU' Col10 'RAM' Col21 'Load' Col31 'LoadBar' } } Layout Test { Row01.Col1 'Test1' Row02.Col1 'Test1' Row03.Col1 'Test1' Row04.Col1 'Test1' Row05.Col1 'Test1' Row06.Col1 'Test1' Row07.Col1 'Test1' Row08.Col1 'Test1' Row09.Col1 'Test1' Row10.Col1 'Test1' Row11.Col1 'Test1' Row12.Col1 'Test1' Row13.Col1 'Test1' Row14.Col1 'Test1' Row15.Col1 'Test1' Row16.Col1 'Test1' Row17.Col1 'Test1' Row18.Col1 'Test1' Row19.Col1 'Test1' Row20.Col1 'Test1' Row21.Col1 'Test1' Row22.Col1 'Test1' Row23.Col1 'Test1' Row24.Col1 'Test1' } Layout Test2 { Row01.Col1 'Test1' #Row02.Col1 'Rain' Row02.Col1 'Test2' Row03.Col1 'Test1' Row04.Col1 'Test2' Row05.Col1 'Test1' Row06.Col1 'Test2' Row07.Col1 'Test1' Row08.Col1 'Test2' } Layout TestGPO { Row1.Col1 'GPO_Val1' Row1.Col10 'GPI_Val1' Row2.Col1 'GPO_Val4' GPO1 'GPO_Test255' GPO4 'GPO_Test1' } Layout testMySQL { Row1 { Col1 'MySQLtest1' } Row2 { Col1 'MySQLtest2' } } Layout Debug { #Row09.Col1 'Test' Row09.Col1 'Heartbeat' } #Display 'SerDispLib' #Display 'LCD-Linux' #Display 'LCD2041' #Display 'LK202' #Display 'LK204' #Display 'MI240' #Display 'CW12232' #Display 'HD44780-generic' #Display 'HD44780-WinAmp' #Display 'HD44780-4bit' #Display 'WDC2704M' #Display 'SC1602D' #Display 'LCM-162' #Display 'CF631' #Display 'CF632' #Display 'CF633' #Display 'Curses' #Display 'M50530-24x8' #Display 'LCDTerm' #Display 'SimpleLCD' #Display 'BA63' #Display 'CT20x4' Display 'T6963-240x128' #Display 'T6963-240x64' #Display 'XWindow' #Display 'USBLCD' #Display 'BWCT' #Display 'Image' #Display 'Trefon' #Display 'LCD2USB' #Display 'LPH7508-serdisplib' #Display 'LPH7508' #Display 'ctinclud' #Layout 'Default' #Layout 'TestLayer' #Layout 'TestImage' #Layout 'L8x2' #Layout 'L16x1' #Layout 'L16x2' #Layout 'L20x2' #Layout 'L40x2' Layout 'Test' #Layout 'Test2' #Layout 'TestGPO' #Layout 'Debug'