LCDproc is a system monitoring tool that displays
information on small alphanumeric LCD devices. It runs on most Unix-like
platforms and has been ported to Windows.
The tool is implemented as
a client/server system; the server portion, LCDd, runs on the machine
directly connected to the desired display hardware (ncurses and even plain
ugly text drivers are provided if no actual LCD hardware is available), and
listens for connections from one or more clients. LCDd provides a high-level
widget library to help abstract the process of actually driving the
display hardware; clients just send a list of screens and, for each screen, a
list of widgets to draw on them. Widgets available include bar graphs, custom
graphic characters, text labels, percent and numeric fields, text fields,
scrolling marquees, and scrolling lists. LCDd also provides a menu system to
support displays with keypads or other inputs; with appropriate hardware LCDd
can be configured to permit shutdowns and reboots right from the display's
keypad. Other functionality, such as contrast adjustment, manually switching
between screens, and more, are also available.
Clients connect via socket to the server. The system is
technically a client-side push monitoring platform as clients are
responsible for updating the screens and widgets they send. The server does
not poll, but rather sends notice to clients such as "your screen X is now on
the display" and "your screen X is no longer on the display", permitting
clients to conserve computing resources by not even bothering to gather
statistics when they're effectively being ignored.
A very large pile of hardware devices are now supported.
The server itself is very lightweight and compiles on most platforms. The
client shipped with the server is also lightweight and provides realtime CPU,
memory, disk, and I/O utilization, lmsensors readings, lists of top
processes (like top does), online users, battery/power status, and
historical load average. Bindings are available for C, C++, Perl, and
Python for fast, simple client development. Third-party clients include
MP3 player front-ends complete with IR remote controls (this is used by
some component media player projects), network monitoring via SNMP, and
Availability and Status
LCDproc can be found at http://lcdproc.org/. It has an active development
group of nearly 20 developers, thousands of users, and support (in the form of
free hardware in exchange for driver development to support it) from several
manufacturers of LCD hardware. It is licensed under the GPL, making it
freely available to use and modify.
New developers and client authors are always welcome.