====== 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|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|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 '&' \\\ **$[[:+]]** 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,** 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. **&** 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!\\\ 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.Bitmap**: 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 [[:Sample_09|lcd4linux.conf.sample]], where you can find examples of all options and their usage. ----