Contents

1 How LIRC works

You push a button on your remote (lircd.conf), That button is seen by the Kodi translator (Lircmap.xml), Kodi starts the requested command (remote.xml)

Lets trace it backwards.

<play>Play</play> The one in RED is the remote.xml command

<play>KEY_GO</play> is the Lircmap.xml Translated name that points to lircd.conf KEY_GO button

KEY_GO is the actual button name on the remote in lircd.conf

Kodi performs a command Play (remote.xml)

The lower case play in the angle brackets is the (Lircmap.xml) translated name

Then we go to the Lircmap.xml to see what Lirc button holds the value of the lowercase play above.

So we expect to see <play>*******</play> with some value in between the angle brackets.

Whatever value is there is the REAL name of our button on the remote as defined in lircd.conf. Remember, we can map any button to any function. The actual name of the button could be STOP if we wanted to (kinda dumb but it could be) The REAL button name on the remote is NOT required to have anything to logically do with the name of the command you want to perform

Just to illustrate we called it the KEY_GO button

So to sum it up

XBMC sent a command (Remember we are going in reverse) called Play

That Play command is tied to the Lircmap.xml <play></play>

That Lircmap.xml <play></play> is tied to the real button on the remote that is called KEY_GO in lircd.conf

2 Installation

Generally, lirc is installed as a dependency by any system that requires it when installing Kodi.

If for whatever reason you have to install/reinstall lirc, note that the manual says systemctl should be configured to enable/start lircd.socket, and lircd.socket will start lircd.service itself. This is NOT the case if you're installing for Kodi: Kodi will open its own socket, so you should enable *only* lircd.service for it to function properly.

3 lircmap.xml

A custom Lircmap.xml - This file merely defines the translation, bridging a LIRC_button to a XBMC_button. The file is literally named Lircmap.xml and is stored in the userdata directory. Do not confuse the Lircmap.xml with Keyboard.xml.

3.1 File format

3.1.1 Device name

The device name is defined in your lircd.conf file in the "name" field. This information can be had using the test application "irw" and then hitting some buttons. More on this in the Lirc and Lircmap.xml#Testing Lirc Output section below.