Format of lcdproc's configuration files
The syntax for LCDproc's configuration files is INI-file style.
They are 8-bit text files divided into sections, each containing zero or more key-value pairs. Sections are introduced by section labels which start with '[' and end with ']', and key-value pairs consist of a key name, a '=' sign and a value each.
Key names are sequences of non-space characters, not starting with '[' and not containing '=' or '\n', while values are shell like strings. I.e. they are either simple sequences of non-space characters, or double quoted-strings with C-style syntax (except the missing support for '\NNN' and '\xNN' escape sequences) or or a mix of both of these forms.
Section labels and key names are case-insensitive and may occur more than once. Keys of duplicate sections will be merged into one section, while the values of duplicate keys in a section will be appended to form an array of values for this key. (In the program, all values of a key can be retrieved individually)
Spaces around section labels, keys, and values are ignored. Lines starting with ';' or '#' are considered comments and ignored too.
While all of the above is quite common to almost all INI-file implementations, there are a few special features that make LCDproc's config files special:
Section labels may contain any character except ']', '\n' or '\0'. However, all characters are interpreted literally (i.e. neither quoting, nor escaping done).
Key names may contain any non-space character except '\n' or '\0'. However, all characters are interpreted literally (i.e. neither quoting, nor escaping done).
Comments are allowed after section labels and key value pairs
Values may be a mix of quoted and unquoted strings similar as strings are interpreted in the shell. E.g. the value 'string" with "blanks"\t!"' will be parsed as 'string with blanks<TAB>!' where <TAB> stands for the TAB character.
In case of a a parsing error the rest of the line is ignored and parsing continues with the next line.
Here is fully working example of an LCDd.conf (formatted somewhat strange to show the features):
# the server section [server] Bind=127.0.0.1 Port=13666 User="nobody" #Foreground=no #ReportLevel=3 #ReportToSyslog=yes Driver="my Curses Driver" DriverPath=/usr/lib/lcdproc/ WaitTime= "5" ServerScreen=no # assign keys to special functions # ToggleRotateKey = Enter PrevScreenKey = Left NextScreenKey = Right # ScrollUpKey = Up #ScrollDownKey=Down # menu section: define keys to use in the server menu # [menu] MenuKey = Escape # ESC switches to server menu EnterKey =Enter UpKey= Up DownKey="Down" LeftKey= "Left" RightKey = "Right" # configuration of the curses driver # [my curses Driver] # yes I use the curse driver File= "curses.so" Size="20"x"4" # LCD screen dimensions TopLeftX=7 # screen position: X coordinate TopLeftY=7 # screen position: Y coordinate Foreground=blue # foreground color Background=cyan # background color when backight is off Backlight=red # background color when backight is on
These are the default config files for the various parts of the LCDproc suite:
/etc/LCDd.conf
configuration of the LCDd server daemon
/etc/lcdproc.conf
configuration of the lcdproc system monitoring client
/etc/lcdexec.conf
configuration of the lcdexec the program starter client
/etc/lcdvc.conf
configuration of the lcdvc virtual console client
LCDd(8), lcdproc(1), lcdexec(1)
This manual page has been written by Peter Marschall <[email protected]>