How does it work - terba/slimmer GitHub Wiki
Slimmer is a hub between the following software components:
LMS
Slimmer retrieves the player's status and many other information from LMS over its JSON RPC API (HTTP). This API is also used by Slimmer to send commands to the player.
LCDproc's LCDd
LCDproc's LCDd is a network enabled display driver daemon. It reads commands from a network connection and displays the incoming data on the connected display. LCDd has a lot of drivers to drive many types of character displays.
Slimmer connects to LCDd's network API to display the players status and menu screens.
Linux keyboard events
Slimmer reads a specified Linux input device (ex. /dev/input/event0), and waits for events coming from some specific keys. See the User manual for the list of keys monitored.
These keyboard events can come from any kind of hardware supported by the operating system. My setup uses Pikeyd which translates GPIO input to Linux keyboard events, so the events are generated by push buttons and a rotary encoder connected to the GPIO pins of a Raspberry Pi.