My current lcd4linux configuration. For more details of some of the python stuff here, and some preview videos, see: http://www.tenshu.net/2013/01/funky-lcd4linux-python-module.html
# lcd4linux config | |
## Local config | |
Variables { | |
# This are useful substitutions for later | |
tick 500 | |
tack 100 | |
seconds 2000 | |
net_if 'br0' # Set this to the network interface to monitor | |
disk_match 'sd.' # Set this to something that matches disks (sdX, hdX, mdX, etc) | |
alldisks '/=/,srv=/srv,New=/srv/media/New' | |
} | |
## Displays | |
Display LCD2USB { | |
# My actual hardware LCD | |
Driver 'LCD2USB' | |
Size '20x4' | |
Icons 2 | |
Contrast 220 | |
Brightness 50 | |
Bus '005' | |
Device '003' | |
} | |
Display Curses { | |
# Show in a terminal for very quick testing | |
Driver 'Curses' | |
Size '20x4' | |
} | |
Display XWindow { | |
# Show in an X11 window for testing. | |
# Note that this is configured to replicate the 20x4 red-on-black LCD I own | |
Driver 'X11' | |
Size '100x32' | |
Font '5x8' | |
Pixel '4+1' | |
Gap '-1x-1' | |
Border 20 | |
Buttons 0 | |
Foreground 'ff0000ff' | |
Background '000000ff' | |
Basecolor '000000' | |
Bordercolor '000000' | |
} | |
## Labels | |
Widget LabelAllDisks { | |
# Rotating label for the disks I want to monitor space usage on | |
class 'Text' | |
update seconds | |
width 3 | |
expression python::exec('lcd4linux_rotator', 'main', 'AllDisks key ' . alldisks) | |
} | |
Widget LabelDiskRW { | |
# Two arrows moving in opposite directions. | |
# This is intended to be placed between an icon/word and a bar | |
# widget to indicate which half of the widget is which direction | |
class 'Icon' | |
speed 400 | |
Bitmap { | |
Row1 '.....|.....|*....|.*...|..*..|...*.|....*|.....|.....' | |
Row2 '.....|*....|**...|***..|****.|.****|..***|...**|....*' | |
Row3 '.....|.....|*....|.*...|..*..|...*.|....*|.....|.....' | |
Row4 '.....|.....|.....|.....|.....|.....|.....|.....|.....' | |
Row5 '.....|.....|.....|.....|.....|.....|.....|.....|.....' | |
Row6 '.....|.....|....*|...*.|..*..|.*...|*....|.....|.....' | |
Row7 '.....|....*|...**|..***|.****|****.|***..|**...|*....' | |
Row8 '.....|.....|....*|...*.|..*..|.*...|*....|.....|.....' | |
} | |
} | |
Widget LabelRxTx { | |
# Animated Rx/Tx label showing which relates to which half of a bar | |
class 'Icon' | |
speed 250 | |
Bitmap { | |
Row1 '****.|***..|**...|*....|.....|.....|....*|...**|..***|.****' | |
Row2 '*...*|...*.|..*.*|.*.*.|*.*.*|.*.*.|*.*.*|.*.*.|*.*..|.*...' | |
Row3 '****.|***..|**...|*...*|...*.|..*..|.*..*|*..**|..***|.****' | |
Row4 '*...*|...*.|..*.*|.*.*.|*.*.*|.*.*.|*.*.*|.*.*.|*.*..|.*...' | |
Row5 '.....|.....|.....|.....|.....|.....|.....|.....|.....|.....' | |
Row6 '*****|****.|***.*|**.*.|*.*.*|.*.*.|*.*.*|.*.**|*.***|.****' | |
Row7 '..*..|.*...|*....|....*|...*.|..*..|.*...|*....|....*|...*.' | |
Row8 '..*..|.*...|*...*|...*.|..*.*|.*.*.|*.*..|.*...|*...*|...*.' | |
} | |
} | |
## Widgets | |
Widget DiskBar { | |
# Split bar widget that shows all the read/write activity on a given | |
# set of disks (as defined earlier by 'disk_match') | |
class 'Bar' | |
expression diskstats(disk_match, 'read_sectors', 500) | |
expression2 diskstats(disk_match, 'write_sectors', 500) | |
length 19 | |
direction 'E' | |
#style 'H' | |
update tack | |
} | |
Widget NetBar { | |
# Split bar widget that shows all the receive/transmit activity on a | |
# given network interface (as defined earlier by 'net_if') | |
class 'Bar' | |
expression netdev(net_if, 'Rx_bytes', 500) | |
expression2 netdev(net_if, 'Tx_bytes', 500) | |
length 19 | |
direction 'E' | |
update tack | |
#style 'H' | |
} | |
Widget BarAllDisks { | |
# Bar widget that rotates through the percentage usage of several | |
# disks (as defined earlier by LabelAllDisks) | |
class 'Bar' | |
update seconds | |
length 17 | |
#style 'H' | |
direction 'E' | |
min 0 | |
max 100 | |
expression path=python::exec('lcd4linux_rotator', 'main', 'AllDisks value') ; ((statfs(path, 'blocks') - statfs(path, 'bavail')) / statfs(path, 'blocks'))*100 | |
} | |
Widget TextScroll { | |
class 'Text' | |
width 20 | |
align 'M' | |
update 20000 | |
speed 130 | |
expression python::exec('dailymail', 'main') | |
} | |
## Layouts | |
Layout tenshu { | |
# The Layout I use for my fileserver | |
Row1 { | |
Col1 'LabelDiskRW' | |
Col2 'DiskBar' | |
} | |
Row2 { | |
Col1 'LabelRxTx' | |
Col2 'NetBar' | |
} | |
Row3 { | |
Col1 'LabelAllDisks' | |
Col4 'BarAllDisks' | |
} | |
Row4 { | |
Col1 'TextScroll' | |
} | |
} | |
## Config selection | |
## Choose which output display to use | |
## and which layout | |
#Display 'Curses' | |
Display 'XWindow' | |
#Display 'LCD2USB' | |
Layout 'tenshu' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Thanks for sharing!