USAGE
lcd4linux -h
- print version number and a small help text, then exit
lcd4linux -l
- list available drivers
lcd4linux [-c key=val] [-F] [-f config-file] [-o output] [-q] [-v]
- run lcd4linux
- overwrite entries from the config-file with '-c'
- do not fork and detach with '-F'
- use configuration from 'config-file' instead of /etc/lcd4linux.conf
- write picture to 'output' (raster driver only)
- suppress startup splash screen with '-q'
- generate info messages with '-v'
- generate debugging messages with '-vv'
- debug socket traffic too, with '-vvv'
DIAGNOSTICS
lcd4linux on foreground writes (depending on level) to stdout or stderr. The Text-Driver has ist's own diagnostics window. Started in the background (the default), lcd4linux uses your syslog daemon for logging. Facility is USER, levels are ERR, INFO and DEBUG.
SUPPORTED DISPLAYS
See the Displays page for information on supported displays and their configuration.
CONFIGURATION
The configuration file (default: /etc/lcd4linux.conf) has a very simple format: Every line consists of a key and a value, seperated by whitespace (blanks or tabs). Values can contain whitespace, and can be enclosed in single or double quotes. A key must not contain whitespace. Keys are NOT case-sensitive. Order doesn't matter. Empty lines and all text on a line after a '#' will be ignored. If you want to use '#' in a value (think of X11-colors), you have to quote it with a backslash.
Because of security reasons (the configuration may contain usernames/passwords for mail accounts) the config file is assured to be:
- file is a normal file (or /dev/null)
- file owner is owner of program
- file is not accessible by group
- file is not accessible by other
So if you run lcd4linux as root, /etc/lcd4linux.conf has to be:
chmod 600 chown root.root
The configuration file contains information for different modules of lcd4linux:
General options:
Quiet: Omit startup splash screen (same as commandline option '-q') Default: 0
Timing options:
until 0.9.10, timing was controlled with the following entries:
tick: time in milliseconds between bar updates
tack: time in milliseconds between text updates (text can be updated less often than bars, so you get a smooth bar display and readable text)
tau: time constant (in milliseconds) for damping function (not used by now)
starting with 0.9.11, these settings are obsolete, and replaced by the following entries:
Tick.Text: time in milliseconds between text updates (text can be updated less often than bars, so you get a smooth bar display and readable text). Default: 500 msec
Tick.bar: time in milliseconds between bar updates. Default: 100 msec
Tick.icon: time in milliseconds between icon updates (especially animated icons can be updated more oftan than text or bars to get a smooth display. Note that an icon updated does not require a data collection, and therefore does not consume too much CPU time). Default: 100 msec
Tick.gpo: time in milliseconds between gpo updates. Default: 100 msec
Data-specific options:
overload: load average threshold and bar scaling. The %L token (see below) displays a '!' instead of a blank if the current load average exceeds this value. Load bars are scaled by this value (load=overload gives 100%)
battwarning: [to be documented] (Default: 10)
SetiDir?: directory where seti@home stores its data files
Wifi.interface: interface used for data collection (default: "wlan0")
Temperature sensors:
sensor1: path to the 1st temperature file (e.g. /proc/sys/dev/sensors/w83781d-isa-0290/temp1) it is important that you use the isa sensors, because the i2c sensors are very slow!
sensor1_min: temperature where the corresponding bar starts
sensor1_max: temperature where bar ends
sensor1_factor, sensor1_offset: formula to calculate real temperature: display_value=raw_value*factor+offset (lookup the values in your sensors.conf!)
sensor[2..9]_min, _max, _factor, _offset: entries for the 2nd to 9th temperature sensor
Plugins:
x1: command to execute PATH=/usr/local/bin:/usr/bin:/bin $X1...$X8 is result of command 1..8 in environment
Tick_x1: delay in ticks (overrides delay_x)
Delay_x1: delay in seconds (default 1)
Max_x1: max value for bars (default 100)
Min_x1: min value for bars (default 0)
x2..9, Tick_x2..9, Delays_x2..9, Max_x2..9, Min_x2..9: entries for plugin 2..9
Mail/News:
Mailbox1: The option string may be a plain mbox file or a pop3/imap4/nntp server string with the following format:
pop3:[user[:pass]@]machine[:port]
imap4:[user[:pass]@]machine[:port]/dir
nntp:[user[:pass]@]machine[:port]/dir
Port defaults to 110 and 143 respectively.
If /dir is not given, INBOX is assumed.
If dir is given for nntp: it should be a valid group name with '.' separating items
If dir is not given for nntp: all/unread news of subscribed groups from Newsrc are calcualted.
Delay_e1: delay in seconds for querying the Mailbox #1 (default 5)
Mailbox2..9, Delay_e2..9: entries for Mailboxes 2..9
Newsrc: path/name of your .newsrc file containing subscribed news
Note: authorization on newsservers is untested.
Note: user and pass may not contain a '/' with above syntax, I hope that's ok.
Driver-specific options:
Display: the name of a display driver
every driver has its own configuration options (e.g. 'Port', 'Speed', ...)
See the Displays page for information on supported displays and their configuration.
Display options:
row1: Text to display in row 1
row[2..max]: Text to display in other rows
The text to be displayed can contain specific directives, which will be replaced by the appropriate values, or will create bars or icons:
\nnn will write the ASCII-character nnn (octal)
%token will be replaced by the value of token
%% will write a '%'
%$ will write a '$'
%& will write a '&'
$<direction><length><token>[+<token>] will create a bar with the specified direction and length (in characters) with the value of token.
If the driver supports dual bars, you can specify the second value with '+token'.
direction can be 'l' (left), 'r' (right), 'u' (up) or 'd'(down).
If you specify the direction in upper case, a logarithmic bar will be created.
Note that the space occupied by a bar always grows from left to right or from top to bottom, regardless of the direction!
$t<height><token>,<width> will create a time series bar. The data are displayed like '$u', but are shifted every second 1 pixel to the left. Currently only displays based on the pixel-driver support this bar type.
&<num> will draw the icon num at this position. For the definition of an icons see below...
Icons:
From 0.9.11 lcd4linux can display icons, and even animate them. If you want a 'heartbeat', that's what you're looking for[[BR]] The icon definition consists of two parts: The number of icons you want to control, and a bitmap for each icon:
Icons: number of icons
Keep in mind that every icon you're reserving here is no longer available for bars! As most displays have only eight user-defineable characters, and a dual-bar needs at least five of them, you should not use more than 3 icons in parallel with bars...
Icon<num>.Bitmap<row>: bitmap row row for icon num
this looks far too complicated. Lets explain it with some examples:
Icon1.Bitmap1 ..... Icon1.Bitmap2 .*.*. Icon1.Bitmap3 ***** Icon1.Bitmap4 ***** Icon1.Bitmap5 .***. Icon1.Bitmap6 .***. Icon1.Bitmap7 ..*.. Icon1.Bitmap8 .....We define the bitmap of a simple (not animated) icon here. Usually an icon has the same size than a character, 5 columns and 8 rows here. The bitmap is defined with two characters, a '.' (dot) for 'pixel not set' and a '*' (asterisk) for 'pixel set'.
Now for an animated icon:
Icon2.Bitmap1 .....|..... Icon2.Bitmap2 .*.*.|.*.*. Icon2.Bitmap3 *****|*.*.* Icon2.Bitmap4 *****|*...* Icon2.Bitmap5 .***.|.*.*. Icon2.Bitmap6 .***.|.*.*. Icon2.Bitmap7 ..*..|..*.. Icon2.Bitmap8 .....|.....It's that simple! Just append the second bitmap with a '|' (pipe) character, and you're done! lcd4linux will automatically loop through all bitmaps.
Your animation can consist of as many bitmaps as you like:
Icon3.Bitmap1 .....|.....|.....|.....|..*..|.....|.....|..... Icon3.Bitmap2 .....|.....|.....|..*..|.*.*.|..*..|.....|..... Icon3.Bitmap3 .....|.....|..*..|.*.*.|*...*|.*.*.|..*..|..... Icon3.Bitmap4 .....|..*..|.*.*.|*...*|.....|*...*|.*.*.|..*.. Icon3.Bitmap5 .....|.....|..*..|.*.*.|*...*|.*.*.|..*..|..... Icon3.Bitmap6 .....|.....|.....|..*..|.*.*.|..*..|.....|..... Icon3.Bitmap7 .....|.....|.....|.....|..*..|.....|.....|..... Icon3.Bitmap8 .....|.....|.....|.....|.....|.....|.....|.....
Virtual Rows:
Rows: number of rows to use (may be greater than your display's rows)
Scroll: number of rows to scroll
Turn: number of milliseconds between scrolling events
General Purpose Outputs:
GPOs: number of outputs to use
GPO1: Token to use for GPO #1. The token should return a numeric value, if this value is greater then zero, the output will be enabled, otherwise disabled
GPO[2..max]: Token to be used for other GPO's
Tokens:
o operating system name ('Linux')
v operating system release ('2.0.38')
p processor ('i686')
r total amount of memory installed (MB)
mt total memory from /proc/meminfo (kB)
mu used memory (kB)
mf free memory (kB)
ms shared memory (kB)
mb buffers (kB)
mc page cache (kB)
ma application memory (kB) = used - buffer - cache
l1 load average for the past 1 minute
l2 load average for the past 5 minutes
l3 load average for the past 15 minutes
L '!' if load > overload (from config)
cu percentage of CPU in user mode
cn percentage of CPU in niced tasks
cs percentage of CPU in system mode
cb percentage of CPU busy (=100-idle)
ci percentage of CPU idle
dr disk blocks read
dw disk blocks written
dt disk blocks total (read+write)
dm disk blocks max (read, write)
nr network bytes received
nw network bytes transmitted
nt network bytes total (receive+transmit)
nm network bytes max (receive, transmit)
ii ISDN bytes received
io ISDN bytes sent
it ISDN bytes total (received+send)
im ISDN bytes max (received, send)
ic ISDN connected (0=offline, 1=online)
ti PPP bytes received
to PPP bytes sent
tt PPP bytes total (received+send)
tm PPP bytes max (received, send)
s1 temperature of sensor 1
s2 temperature of sensor 2 (up to s9)
bp battery percentage (APM by now)
bs battery status ('=' = online, '+' = charging, '-' discharging)
bd battery duration in s{econds}, m{ins}, h{ours} or d{ays}
hc seti@home % completed
ht seti@home time spent on workunit
wl WIFI link
ws WIFI signal level
wn WIFI noise
e* mails in mailbox 1-9, total mail
u* mails in mailbox 1-9, unseen mail
x* output of command 1-9
Please have a look at lcd4linux.conf.sample, where you can find examples of all options and their usage.
