Sample LCD4Linux Config File

  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'
Edit Page ‐ Yes, you can edit!

Older Revisions • March 25 at 8:34 pm • Jon