There are 3 configuration files used in translating the IR signals received by your HTPC, to actual commands performed by XBMC in response to those signals.
/etc/lirc/lircd.conf translates the IR signals received to an user defined label. This file is very much hardware dependent. It will change depending on your IR receiver. I am using a Microsoft MCE remote (model: 1039) with an Antec Fusion Black LCD. I have the following entry in my lircd.conf for the DVD menu button on my MCE remote:
DVD_Menu 0x800F0424
"DVD_Menu" is a label which I created. So whenever I run irw, and I press the DVD menu button on my MCE remote, it sends out 0x800F0424, which lirc translates to "DVD_Menu", and echos the following to the terminal:
00000000800f0424 00 DVD_Menu mceusb
The 1st parameter is the signal received. The 2nd parameter is a counter for the number of times that command was received. So if I held down the DVD menu button on my MCE remote, irw would echo the following to the terminal:
00000000800f0424 00 DVD_Menu mceusb
00000000800f0424 01 DVD_Menu mceusb
00000000800f0424 02 DVD_Menu mceusb
If I release the DVD menu button, the counter would then reset to 00. The 3rd parameter is the label I created for that particular signal, "DVD_Menu." The last parameter is my IR receiver.
/usr/share/xbmc/system/Lircmap.xml translates the user defined lirc labels in lircd.conf to ones XBMC understands. These labels are listed under "Remote Buttons" here:
http://wiki.xbmc.org/?title=Keymap.xml. If you want to make changes to your Lircmap.xml, copy /usr/share/xbmc/system/Lircmap.xml to /usr/share/xbmc/userdata/Lircmap.xml, and make the changes there. Following the previous example for the DVD menu button on my MCE remote, I have the following entry in my Lircmap.xml:
<lircmap>
<remote device="mceusb">
<menu>DVD_Menu</menu>
</remote>
The 1st parameter is <menu>, which is XBMC's name for the DVD menu button. The 2nd parameter is DVD_Menu, which is the label I defined for that IR signal in lircd.conf. This parameter MUST match that in lircd.conf! The last parameter </menu> is the same as the 1st.
/usr/share/xbmc/system/Keymap.xml specifies the actual XBMC command executed when a button is pressed. The commands are listed here:
http://wiki.xbmc.org/?title=List_of_Built_In_Functions, and under "Available actions" here:
http://wiki.xbmc.org/?title=Keymap.xml. Following the previous example for the DVD menu button on my MCE remote, I have the following entry in my Keymap.xml:
<keymap>
<FullscreenVideo>
<remote>
<menu>XBMC.PlayerControl(ShowVideoMenu)</menu>
</remote>
The 1st parameter is <menu>, which is XBMC's name for the DVD menu button. The 2nd parameter is the XBMC command to show the DVD navigation menu. The last parameter </menu> is the same as the 1st.
So when I press the DVD menu button on my MCE remote, the video player will stop playing the DVD and show the DVD navigation menu.