lcdproc-config(5)

πŸ“¦
version 0.5.9 Β· 5 versions
, in arch rolling, debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute

✨ NAME ✨

lcdproc-config β€” bestie, this is the format of LCDproc's configuration files. That's it, that's the whole job. It's a page from the LCDproc suite and it's about to teach you the exact grammar those .conf files speak. πŸŽ€


🌸 SYNTAX 🌸

Okay so here's the tea: LCDproc's configuration files are written in INI-file style. Classic. Iconic. You already know the vibe.

They're 8-bit text files split up into sections, and each section holds zero or more key-value pairs. Sections get introduced by section labels, which start with [ and end with ]. And a key-value pair is just a key name, a = sign, and a value. Simple as that. πŸ’…

Key names are sequences of non-space characters β€” they don't start with [ and they don't contain = or \n. Values, though, are shell-like strings, meaning they're either:

  • plain sequences of non-space characters, or
  • double-quoted strings with C-style syntax (⚠️ except there's no support for the '\NNN' and '\xNN' escape sequences, so don't come for those), or
  • literally a mix of both of those forms. yeah. both.

Section labels and key names are case-insensitive, and both of them are allowed to show up more than once. Here's how that shakes out:

  • keys from duplicate sections get merged into one section 🫢
  • the values of duplicate keys inside a section get appended, forming an array of values for that key (and in the program, every value of a key can be retrieved individually, so nothing gets lost)

Spaces around section labels, keys and values? Ignored. And any line starting with ; or # counts as a comment and gets ignored too.

Now β€” all of that is pretty standard for basically every INI implementation out there. But LCDproc's config files have a few special features that make them ✨different✨:

  • Section labels may contain any character except ], \n or \0. But heads up: all characters are interpreted literally, meaning neither quoting nor escaping is done.
  • Key names may contain any non-space character except \n or \0. Same deal β€” all characters are interpreted literally (no quoting, no escaping).
  • Comments are allowed after section labels and key value pairs.
  • Values may be a mix of quoted and unquoted strings, similar to how strings get interpreted in the shell. For example, the value 'string" with "blanks"\t!"' will be parsed as 'string with blanks<TAB>!' where <TAB> stands for the TAB character. 😭 it's giving shell energy and honestly? obsessed.
🚨 If there's a parsing error, the rest of the line is ignored and parsing just continues with the next line. No crashouts. Resilient queen behavior.

🌈 EXAMPLE 🌈

Here's a fully working example of an LCDd.conf β€” formatted a lil strangely on purpose so you can see all the features flexing:

# 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

πŸ¦‹ FILES πŸ¦‹

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

πŸ’– SEE ALSO πŸ’–

LCDd(8), lcdproc(1), lcdexec(1) β€” go read these next bestie, they're the whole squad πŸ‘‘


πŸ‘‘ AUTHOR πŸ‘‘

This manual page has been written by Peter Marschall <peter@adpm.de>. Iconic of him honestly.


and that's the whole page, bestie πŸ’œ this one came from the LCDproc suite, dated 18 September 2006 β€” go forth and write configs that slay πŸŽ€βœ¨