Display picoLCD { Driver 'picoLCDGraphic' Size '256x64' Update 200 Contrast 230 Backlight 1 Inverted 1 Icons 1 } Variables { tick 500 tack 100 minute 60000 } #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 'user' # password1 'pass' #} Widget OS { class 'Text' expression '*** '.uname('sysname').' '.uname('release').' ***' width 20 align 'M' style 'bold' speed 50 update tick } Widget HDDTemp { class 'Text' expression 'IDE Temp'.exec ('hddtemp /dev/sda | cut -f 3 -d :', 1000) width 14 align 'L' update 1000 } Widget FSSpace { class 'Text' expression a=((statfs('/', 'bavail')*statfs('/', 'bsize'))/1024/1024);b=((statfs('/media/disk', 'bavail')*statfs('/media/disk', 'bsize'))/1024/1024);c='/ '.' '.a.'MB /media/disk/ '.b.' MB' prefix 'Free Space:' postfix '' width 42 align 'M' #precision 0 update 1000 } Widget BottomTicker { class 'Text' expression uname('sysname').' '.uname('nodename').' '.uname('release').' '.uname('machine').' '.cpuinfo('model name') #expression strftime('%A %d/%m %H:%M:%S',time()).' '.cpuinfo('model name').' '. uptime('%d days %H:%M:%S') #expression strftime('%A %d/%m %H:%M:%S',time()) prefix '' width 42 align 'M' speed 1000 update tick style 'bold' } #Widget CPU { # class 'Text' # expression uname('machine') # prefix 'CPU ' # width 9 # align 'L' # style test::onoff(7)>0?'bold':'norm' # update tick #} Widget CPULabel { class 'text' expression 'CPU:' width 4 align 'L' style 'bold' } Widget CPU { class 'Text' expression proc_stat::cpu('busy', 500) prefix '' postfix '% ' width 5 precision 0 align 'R' update tick } Widget CPUBar { class 'Bar' expression proc_stat::cpu('busy', 500) expression2 proc_stat::cpu('system', 500) length 10 min 1 max 100 direction 'E' style 'H' update tick } Widget RAMLabel { class 'text' expression 'RAM:' width 4 align 'L' style 'bold' } Widget RAMTotal { class 'Text' expression meminfo('MemTotal')/1024 postfix 'MB FREE' width 11 precision 0 align 'L' update tick } Widget RAMFree { class 'Text' expression meminfo('MemFree')/1024 prefix '' postfix '/' width 5 precision 0 align 'R' update tick } Widget IDELabel { class 'text' expression 'IDE:' width 4 align 'L' style 'bold' } Widget IDEIn { class 'text' # In MB/s expression (diskstats('sda', 'read_sectors', 500))/2048 prefix 'OUT ' postfix 'MB' precision 2 align 'R' width 10 update tick } Widget IDEOut { class 'text' # In MB/s expression (diskstats('sda', 'write_sectors', 500))/2048 prefix 'IN ' postfix 'MB' precision 2 align 'R' width 10 update tick } Widget IDEBar { class 'Bar' expression diskstats('sda', 'read_sectors', 500) expression2 diskstats('sda', 'write_sectors', 500) length 14 direction 'E' style 'H' update tick } Widget ETHLabel { class 'text' expression 'ETH:' width 4 align 'L' style 'bold' } Widget ETHIn { class 'Text' expression (netdev('eth0', 'Rx_bytes', 500))/1024 prefix 'OUT' postfix 'KB' width 9 precision 0 align 'R' update tick } Widget ETHOut { class 'Text' expression (netdev('eth0', 'Tx_bytes', 500))/1024 prefix 'IN' postfix 'KB' width 9 precision 0 align 'R' update tick } Widget ETHBar { class 'Bar' expression netdev('eth0', 'Rx_bytes', 500) expression2 netdev('eth0', 'Tx_bytes', 500) length 14 direction 'E' style 'H' update tick } Widget Time { class 'Text' expression strftime('%a,%d/%m %H:%M:%S',time()) width 20 align 'Left' update 1000 } Widget Uptime { class 'Text' expression uptime('%d d %H:%M:%S') width 21 align 'R' prefix 'Uptime ' update 1000 } #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('sda', 'read_sectors', 500) + diskstats('sda', 'write_sectors', 500) # prefix '' # postfix ' ' # width 7 # 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('sda', 'read_sectors', 500) # expression2 diskstats('sda', 'write_sectors', 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 } # 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 IOIcon { 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 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 GPO_picolcd { class 'GPO' expression test::onoff(1) update 300 } Widget CpuImage { class 'Image' file '/etc/picoLCDGraphic/Images/cpu_a.png' update 1000 visible 1 inverted 0 reload 0 } Widget HddImage { class 'Image' file '/etc/picoLCDGraphic/Images/hdd_a.png' update 1000 visible 1 inverted 0 reload 0 } Widget RamImage { class 'Image' file '/etc/picoLCDGraphic/Images/ram_a.png' update 1000 visible 1 inverted 0 reload 0 } Widget NetImage { class 'Image' file '/etc/picoLCDGraphic/Images/net_a.png' update 1000 visible 1 inverted 0 reload 0 } Widget FanImage { class 'Image' file '/etc/picoLCDGraphic/Images/fan_a.png' update 1000 visible 1 inverted 0 reload 0 } Layout picoLCD { # Layer 1 { # X0.Y0 'BandwidthImage' # } # Layer 1 { # X0.Y0 'CpuImage' # } Row1 { Col1 'CPULabel' Col6 'CPU' Col11 'CPUBar' Col21 'RAMLabel' Col26 'RAMFree' Col31 'RAMTotal' } Row2 { Col1 'IDELabel' Col6 'IDEIn' Col17 'IDEOut' Col28 'IDEBar' } Row3 { Col1 'FSSpace' } Row4 { Col1 'ETHLabel' Col6 'ETHIn' Col17 'ETHOut' Col28 'ETHBar' } Row7 { Col1 'Time' Col22 'Uptime' } Row8 { Col1 'Uptime' Col1 'BottomTicker' } #Layer 2 { # X0.Y0 'ImageTest' #} #GPO1 'GPO_picolcd' #GPO2 'GPO_picolcd' #GPO8 'GPO_picolcd' } Display 'picoLCD' Layout 'picoLCD'