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'


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.


See the Displays page for information on supported displays and their 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:

Quiet: Omit startup splash screen (same as commandline option '-q') Default: 0

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\ 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\

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: be documented (Default: 10)\

SetiDir: directory where seti@home stores its data files\

Wifi.interface: interface used for data collection (default: “wlan0”) \

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!) \

sensor2..9_min, _max, _factor, _offset: entries for the 2nd to 9th temperature sensor \


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 \

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. \\\

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.

row1: Text to display in row 1 \

row2..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…

From 0.9.11 lcd4linux can display icons, and even animate them. If you want a 'heartbeat', that's what you're looking for!\

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 .....|.....|.....|.....|.....|.....|.....|.....

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 \

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 \

GPO2..max: Token to be used for other GPO's \

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.

  • manual_09.txt
  • Last modified: 2020/07/17 18:33
  • (external edit)