Driver 'Crystalfontz'
Model '634'
Port '/dev/ttyS0'
Speed 19200
Contrast 85
Backlight 20
Size '20x4'
Icons 1
}
Widget Time {
class 'Text'
expression strftime('%l:%M%p',time())
width 7
align 'L'
update minute
}
Widget OS {
class 'Text'
expression '*'.uname('sysname').' '.uname('release').'*'
width 20
align 'M'
speed 400
update tick
}
Widget CPU {
class 'Text'
expression uname('machine')
prefix 'CPU '
width 9
align 'L'
update tick
}
Widget RAM {
class 'Text'
expression meminfo('MemTotal')/1024
postfix 'MB RAM'
width 10
precision 0
align 'M'
update tick
}
Widget RAMFree {
class 'Text'
expression meminfo('MemFree')/1024
postfix 'MB F'
width 10
precision 0
align 'L'
update tick
}
Widget RAMUsed {
class 'Text'
expression meminfo('Active')/1024
postfix 'MB U'
width 10
precision 0
align 'R'
update tick
}
Widget Busy {
class 'Text'
expression proc_stat::cpu('busy', tock)
prefix 'Busy'
postfix '%'
width 10
precision 1
align 'R'
update tick
}
Widget Load {
class 'Text'
expression loadavg(1)
prefix 'Load'
postfix loadavg(1)>1.0?'!':' '
width 10
precision 1
align 'R'
update tick
}
Widget Disk {
class 'Text'
expression (proc_stat::disk('.*', 'rblk', tick) + proc_stat::disk('.*', 'wblk', tick))/2
prefix 'I/O'
width 10
precision 0
align 'R'
update tack
}
Widget red0 {
class 'Text'
expression (netdev('red0', 'Rx_bytes', tick)+netdev('red0', 'Tx_bytes', tick))/1024
prefix 'WAN'
postfix ' '
width 10
precision 0
align 'R'
update tick
}
Widget blue0 {
class 'Text'
expression (netdev('blue0', 'Rx_bytes', tick)+netdev('blue0', 'Tx_bytes', tick))/1024
prefix 'WIFI'
postfix ' '
width 10
precision 0
align 'R'
update tick
}
Widget green0 {
class 'Text'
expression (netdev('green0', 'Rx_bytes', tick)+netdev('green0', 'Tx_bytes', tick))/1024
prefix 'LAN'
postfix ' '
width 10
precision 0
align 'R'
update tick
}
Widget Temp {
class 'Text'
expression i2c_sensors('temp3_input')#*1.0324-67
prefix 'Temp'
width 9
precision 1
align 'R'
update tick
}
Widget Uptime {
class 'Text'
expression uptime('%dD %H:%M')
width 12
align 'R'
prefix 'Up:'
update minute
}
Widget CoreNum {
class 'Text'
expression exec('cat /opt/pakfire/db/core/mine', 1000)
width 9
align 'R'
prefix 'Core: '
update minute
}
Layout Default {
Row1 {
Col1 'Time'
Col9 'Uptime'
}
Row2 {
Col1 'Load'
Col11 'Temp'
}
Row3 {
Col1 'red0'
Col11 'green0'
}
Row4 {
Col1 'blue0'
Col11 'CoreNum'
}
}
Display 'CF634'
Layout 'Default'
Variables {
tick 500
tack 100
tock 1000
minute 60000
hour 3600000
}
`
## Sample LCD4Linux Config File for picoLCD 256x64 Sideshow
`
Driver 'picoLCDGraphic'
Size '256x64'
Contrast 200
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('/backup/', 'bavail')*statfs('/backup/', 'bsize'))/1024/1024);c='/ '.' '.a.'MB /backup/ '.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'