LIRCRCD(8)

πŸ“¦
version 0.10.2 Β· 3 versions
, in alpine 3.24, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– LIRCRCD πŸ’–

okay bestie, welcome to lircrcd from the System Manager Manual section 8 β€” she's a little daemon with main character energy whose whole job is keeping your LIRC clients in sync, and honestly? iconic.


✨ NAME ✨

lircrcd β€” Synchronize lircrc state among client applications.


🌸 SYNOPSIS 🌸

lircrcd [options] config-file

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the tea, bestie: lircrcd reads the .lircrc config file you hand it, and then it keeps the mode that the LIRC clients are in all synced up β€” you know, clients like irexec(1), irxevent(1), etc. It's giving group-chat moderator, but for modes.

Now listen, you can't just use lircrcd and hope for the best. Using it has to be explicitly enabled in the lircrc config file, by adding this line at the very beginning of the file:

lircrc_class default

And no, you can't be sneaky about it β€” this must be done at the top-level file, not an included one. Periodt. πŸ™…β€β™€οΈ

Also the lircrc_class string (here it's "default", but it could literally be anything, it's not picky) β€” that's the vibe-check. Any clients using that same string in their lircrc will be synchronized together. Matching strings = matching friend group. πŸ’…


πŸ‘‘ OPTIONS πŸ‘‘

  • -h, --help β€” Display help message. (hi, need a hand?)
  • -v, --version β€” Display version.
  • -p, --permission=mode β€” The --permission option sets the file permission of the Unix domain socket that lircrcd creates on startup, in octal representation. Go read the documentation for chmod for further details, bestie. And if no --permission option is given when the socket is created, the default is to give only the user owning the file read and write permissions β€” that's 0600 in octal representation. So by default: owner only, nobody else invited to the party. πŸ”’
  • -o, --output=socket β€” With the --output option you can select the Unix domain socket that lircrcd will create. The default is to create a socket in VARRUNDIR (/var/run/lirc) β€” see FILES below for the deets. ✨

πŸ”₯ SOCKET PROTOCOL πŸ”₯

lircrcd syntactically uses the same protocol as lircd, which is described in the lircd(8) manpage. It supports the following commands:

  • IDENT ident β€” Each program connecting to lircrcd identifies itself using this program. ident is the string that is used in the Prog = token inside the .lircrc file.
  • CODE code β€” When the client receives the code string from lircd, it will send it to lircrcd and will receive back the applicable config string from the .lircrc config file. It should resend the CODE command until nothing is returned back, which means that nothing (more) should happen in response to code. This command is used each time the lirc_code2char() function is called by a client.
  • GETMODE β€” lircrcd will return the current mode string.
  • SETMODE mode β€” lircrcd will set the actual mode, reflecting a mode in the .lircrc file.

πŸŽ€ FILES πŸŽ€

lircrcd creates its socket(s) in the VARRUNDIR directory (/var/run/lirc). The socket basename includes the user UID and the string from the lircrc_class option. So it knows exactly whose socket is whose. 🌈


⭐ SEE ALSO ⭐

The documentation for lirc is maintained as html pages. They are located under html/ in the documentation directory. Go read them, bestie, they're right there. 🫢


ngl, if you skipped the part about lircrc_class needing to be in the top-level file and not an included one, go back and reread it. That one's a canon event. πŸ’€

that's the whole page, no notes, mwah πŸ’–

this was lircrcd version 0.10.2, last changed Sep 2015 β€” vintage but still slaying, fr fr. πŸ§šβ€β™€οΈ