2013-08-02, 07:29
Use Any IR Remote In The House
This tutorial will show you how to use ANY IR remote in your house to control XBMC.
I have used this method with COMPLETE success on many remotes. I have yet to find one that wont work.
To demonstrate this technique I will download and install the latest XBMCbuntu Live CD (Frodo 12.2) to verify it works "out of the box"
If you deviate from the Live CD XBMCbuntu install you are on your own installing and configuring LIRC.
1. Download & burn Live CD
2. Install XBMCbuntu 12.2
3. Select update installer, Continue
4. Select Download updates while installing and also select install third party software.
5. Setup your username & password. Select login automatically (if desired)
6. When install is finidshed click yes to restart.
7. If all went well you have an XBMC interface and a fresh install. MCE remotes should work at this point.
8. Click the power button on the bottom left of the screen and select EXIT
9. Login using the XBMCbuntu (NOT XBMC) session and select your username and password , The XBMCbuntu desktop should appear.
10. At this point I like to install LXterminal (easier to read and supports copy paste) and mousepad (lightweight editor).
11. Open TWO (2) lxterminal's. In the start menu under accessories (if its not there alt-F2 and type lxterminal)
13. Get your remote and IR receiver plugged in and type in the lxterminal
These are the names you can give the buttons on your remote.
14. Ok, this is where it starts to happen. In the second lxterminal window type
15. Mine was lirc0 yours may be different. Check by doing
and looking for the lirc device name.
16. Read and follow the directions in the terminal after typing sudo irrecord -d /dev/lirc0 /home/your-xbmc-user-name/myremote.txt.
17. I have selected the old popcornhour media remote for this demonstration (This remote will NOT, and did NOT, work with XBMC unless you follow these example steps, that's the purpose of this demonstration)
This remote has some good buttons for XBMC (stop play pause numbers arrows red green blue yellow menu...etc)
18. Now we want to start naming and selecting the buttons on the remote.
We will start with the power button.
Edit:
Sometimes with multidevice remotes the media keys only work when a media device is selected.
For example
The play and pause and stop buttons will only work if SAT or DVD is selected.
So if your buttons dont send a signal for irrecord, select a media device button (SAT, DVD) on the remote before trying to record the codes.
19 Type in the name of the button you want to use as found on the other lxterminal window
We will call it
Hit enter.
Hold down the power button.
20. Thats it you just named the power button. Move on the the next button and repeat the process.
See the screenshot
Here are the button names I used
When you're finished press enter to stop the process.
21. Open a root file manager by doing alt-F2 and type
Navigate to /etc/lirc/lircd.conf and open with mousepad.
22. Place the contents of the file you just created (copy and paste) into /etc/lirc/lircd.conf
It should look like this
Be sure to note the name of your remote above (I have named mine popcornhour). We will need it in a few.
Close the root filemanager and open a regular user one (folder icon with the arrow on it in the taskbar)
23. Now we want to create a new file in the /home/your-xbmc-user/.xbmc/userdata directory.
Call it
Note the first letter is a capital
24. This file is created from scratch but you can likely use some of mine.
Open it with mousepad and paste something like this (yours will be different depending on the button names you used. Modify as required.)
Dont forget to change the name of the remote if you changed it earlier (popcornhour)
25. Studying that file you can get a good idea what each button will be doing.
If you want to make a custom Lircmap.xml here are all of the available valid names. Insert your button name in place of the hashtags ####
Ther are 60 valid xbmc names for your remote. Should be plenty
26. Now we need one more file. /home/your-xbmc-user/.xbmc/userdata/keymaps/remote.xml
create it using mousepad and have it look like this. Again, yours might be slightly different.
Modify as required.
Its very important you understand the xbmc lirc relationship. It can be VERY confusing.
Once you understand the relationship I can show you how to use alternate names for the buttons.
I have deliberately not indicated it to keep the relationship a little more simple.
See this page
http://forum.xbmc.org/showthread.php?tid=189617
After a reboot open a lxterminal and type irw. Start pushing buttons on your remote. It will display the remote name and the name of the buttons you pushed.
Hopefully your remote name is NOT popcornhour . No big deal if it is just make sure its the same in Lircmap.xml
I repeated this process with another remote (Go Video DVD Remote) I found in the trash at work.
It also works without issue.
Both these remotes now work with this fresh "out of the box" install of xbmc.
You can have multiple remotes configured to use XBMC. All the remotes in your house can be configured and used at ANY time or at the same time.
Just add them to lircd.conf and Lirc.xml like you did above. No need to modify remote.xml.
I have used some pathetically stupid remotes to find one that wont work. Portable dvd player remotes, CCTV camera remotes, Old TV remotes. Hasn't happened yet.
This tutorial will show you how to use ANY IR remote in your house to control XBMC.
I have used this method with COMPLETE success on many remotes. I have yet to find one that wont work.
To demonstrate this technique I will download and install the latest XBMCbuntu Live CD (Frodo 12.2) to verify it works "out of the box"
If you deviate from the Live CD XBMCbuntu install you are on your own installing and configuring LIRC.
1. Download & burn Live CD
2. Install XBMCbuntu 12.2
3. Select update installer, Continue
4. Select Download updates while installing and also select install third party software.
5. Setup your username & password. Select login automatically (if desired)
6. When install is finidshed click yes to restart.
7. If all went well you have an XBMC interface and a fresh install. MCE remotes should work at this point.
8. Click the power button on the bottom left of the screen and select EXIT
9. Login using the XBMCbuntu (NOT XBMC) session and select your username and password , The XBMCbuntu desktop should appear.
10. At this point I like to install LXterminal (easier to read and supports copy paste) and mousepad (lightweight editor).
Code:
sudo apt-get install lxterminal mousepad
11. Open TWO (2) lxterminal's. In the start menu under accessories (if its not there alt-F2 and type lxterminal)
13. Get your remote and IR receiver plugged in and type in the lxterminal
Code:
irrecord -list namespace
These are the names you can give the buttons on your remote.
14. Ok, this is where it starts to happen. In the second lxterminal window type
Code:
sudo irrecord -d /dev/lirc0 /home/your-xbmc-user-name/myremote.txt
15. Mine was lirc0 yours may be different. Check by doing
Code:
ls /dev
and looking for the lirc device name.
16. Read and follow the directions in the terminal after typing sudo irrecord -d /dev/lirc0 /home/your-xbmc-user-name/myremote.txt.
17. I have selected the old popcornhour media remote for this demonstration (This remote will NOT, and did NOT, work with XBMC unless you follow these example steps, that's the purpose of this demonstration)
This remote has some good buttons for XBMC (stop play pause numbers arrows red green blue yellow menu...etc)
18. Now we want to start naming and selecting the buttons on the remote.
We will start with the power button.
Edit:
Sometimes with multidevice remotes the media keys only work when a media device is selected.
For example
The play and pause and stop buttons will only work if SAT or DVD is selected.
So if your buttons dont send a signal for irrecord, select a media device button (SAT, DVD) on the remote before trying to record the codes.
19 Type in the name of the button you want to use as found on the other lxterminal window
We will call it
Code:
KEY_POWER
Hit enter.
Hold down the power button.
20. Thats it you just named the power button. Move on the the next button and repeat the process.
See the screenshot
Here are the button names I used
Code:
KEY_POWER
KEY_VOLUMEUP
KEY_VOLUMEDOWN
KEY_EJECTCD
KEY_MUTE
KEY_0
KEY_1
KEY_2
KEY_3
KEY_4
KEY_5
KEY_6
KEY_7
KEY_8
KEY_9
KEY_PAGEUP
KEY_PAGEDOWN
KEY_BACK
KEY_TITLE
KEY_INFO
KEY_DISPLAYTOGGLE
KEY_SELECT
KEY_LEFT
KEY_RIGHT
KEY_UP
KEY_DOWN
KEY_MENU
KEY_PREVIOUS
KEY_PLAY
KEY_NEXT
KEY_REWIND
KEY_FASTFORWARD
KEY_STOP
KEY_PAUSE
KEY_SUBTITLE
KEY_RED
KEY_GREEN
KEY_YELLOW
KEY_BLUE
When you're finished press enter to stop the process.
21. Open a root file manager by doing alt-F2 and type
Code:
gksudo pcmanfm
Navigate to /etc/lirc/lircd.conf and open with mousepad.
22. Place the contents of the file you just created (copy and paste) into /etc/lirc/lircd.conf
It should look like this
Code:
#This configuration has been automatically generated via
#the Ubuntu LIRC package maintainer scripts.
#
#It includes the default configuration for the remote and/or
#transmitter that you have selected during package installation.
#
#Feel free to add any custom remotes to the configuration
#via additional include directives or below the existing
#Ubuntu include directives from your selected remote and/or
#transmitter.
#Configuration for the Windows Media Center Remotes (new version Philips et al.) remote:
include "/usr/share/lirc/remotes/mceusb/lircd.conf.mceusb"
begin remote
name popcornhour
bits 16
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 9036 4479
one 586 1671
zero 586 537
ptrail 568
repeat 9017 2251
pre_data_bits 16
pre_data 0x20D3
gap 108169
toggle_bit_mask 0x0
begin codes
KEY_POWER 0x52AD
KEY_VOLUMEUP 0x728D
KEY_VOLUMEDOWN 0x4AB5
KEY_EJECTCD 0x22DD
KEY_MUTE 0x8A75
KEY_0 0xD827
KEY_1 0x827D
KEY_2 0xC03F
KEY_3 0x42BD
KEY_4 0xA25D
KEY_5 0xE01F
KEY_6 0x629D
KEY_7 0xAA55
KEY_8 0xE817
KEY_9 0x6A95
KEY_PAGEUP 0x9A65
KEY_PAGEDOWN 0x5AA5
KEY_BACK 0xE21D
KEY_TITLE 0xA05F
KEY_INFO 0xD22D
KEY_DISPLAYTOGGLE 0x906F
KEY_SELECT 0x40BF
KEY_LEFT 0xC23D
KEY_RIGHT 0x807F
KEY_UP 0x609F
KEY_DOWN 0x50AF
KEY_MENU 0xCA35
KEY_PREVIOUS 0x48B7
KEY_PLAY 0x0AF5
KEY_NEXT 0x8877
KEY_REWIND 0x708F
KEY_FASTFORWARD 0xB04F
KEY_STOP 0x32CD
KEY_PAUSE 0x2AD5
KEY_SUBTITLE 0x1AE5
KEY_RED 0xFA05
KEY_GREEN 0x7887
KEY_YELLOW 0x3AC5
KEY_BLUE 0xB847
end codes
end remote
Be sure to note the name of your remote above (I have named mine popcornhour). We will need it in a few.
Close the root filemanager and open a regular user one (folder icon with the arrow on it in the taskbar)
23. Now we want to create a new file in the /home/your-xbmc-user/.xbmc/userdata directory.
Call it
Code:
Lircmap.xml
24. This file is created from scratch but you can likely use some of mine.
Open it with mousepad and paste something like this (yours will be different depending on the button names you used. Modify as required.)
Dont forget to change the name of the remote if you changed it earlier (popcornhour)
Code:
<!-- This file contains the mapping of LIRC keys to XBMC keys used in Keymap.xml -->
<!-- -->
<!-- How to add remotes -->
<!-- <remote device=name_Lirc_calls_the_remote> -->
<!-- -->
<!-- For the commands the layout following layout is used -->
<!-- <XBMC_COMMAND>LircButtonName</XBMC_COMMAND> -->
<!-- -->
<!-- For a list of XBMC_COMMAND's check out the <remote> sections of keymap.xml -->
<lircmap>
<remote device="popcornhour">
<power>KEY_POWER</power>
<volumeplus>KEY_VOLUMEUP</volumeplus>
<volumeminus>KEY_VOLUMEDOWN</volumeminus>
<eject>KEY_EJECTCD</eject>
<mute>KEY_MUTE</mute>
<zero>KEY_0</zero>
<one>KEY_1</one>
<two>KEY_2</two>
<three>KEY_3</three>
<four>KEY_4</four>
<five>KEY_5</five>
<six>KEY_6</six>
<seven>KEY_7</seven>
<eight>KEY_8</eight>
<nine>KEY_9</nine>
<zero>KEY_0</zero>
<pageplus>KEY_PAGEUP</pageplus>
<pageminus>KEY_PAGEDOWN</pageminus>
<back>KEY_BACK</back>
<title>KEY_TITLE</title>
<info>KEY_INFO</info>
<display>KEY_DISPLAYTOGGLE</display>
<select>KEY_SELECT</select>
<left>KEY_LEFT</left>
<right>KEY_RIGHT</right>
<up>KEY_UP</up>
<down>KEY_DOWN</down>
<menu>KEY_MENU</menu>
<skipminus>KEY_PREVIOUS</skipminus>
<play>KEY_PLAY</play>
<skipplus>KEY_NEXT</skipplus>
<reverse>KEY_REWIND</reverse>
<forward>KEY_FORWARD</forward>
<stop>KEY_STOP</stop>
<pause>KEY_PAUSE</pause>
<pageplus>KEY_PAGEUP</pageplus>
<pageminus>KEY_PAGEDOWN</pageminus>
<red>KEY_RED</red>
<green>KEY_GREEN</green>
<yellow>KEY_YELLOW</yellow>
<blue>KEY_BLUE</blue>
</remote>
</lircmap>
25. Studying that file you can get a good idea what each button will be doing.
If you want to make a custom Lircmap.xml here are all of the available valid names. Insert your button name in place of the hashtags ####
Ther are 60 valid xbmc names for your remote. Should be plenty
Code:
<left>####</left>
<right>####</right>
<up>####</up>
<down>####</down>
<select>####</select>
<back>####</back>
<menu>####</menu>
<info>####</info>
<display>####</display>
<title>####</title>
<play>####</play>
<pause>####</pause>
<reverse>####</reverse>
<forward>####</forward>
<skipplus>####</skipplus>
<skipminus>####</skipminus>
<stop>####</stop>
<zero>####</zero>
<one>####</one>
<two>####</two>
<three>####</three>
<four>####</four>
<five>####</five>
<six>####</six>
<seven>####</seven>
<eight>####</eight>
<nine>####</nine>
<power>####</power>
<mytv>####</mytv>
<mymusic>####</mymusic>
<mypictures>####</mypictures>
<myvideo>####</myvideo>
<record>####</record>
<start>####</start>
<volumeplus>####</volumeplus>
<volumeminus>####</volumeminus>
<channelplus>####</channelplus>
<channelminus>####</channelminus>
<pageplus>####</pageplus>
<pageminus>####</pageminus>
<mute>####</mute>
<recordedtv>####</recordedtv>
<guide>####</guide>
<livetv>####</livetv>
<liveradio>####</liveradio>
<epgsearch>####</epgsearch>
<star>####</star>
<hash>####</hash>
<clear>####</clear>
<enter>####</enter>
<xbox>####</xbox>
<playlist>####</playlist>
<teletext>####</teletext>
<red>####</red>
<green>####</green>
<yellow>####</yellow>
<blue>####</blue>
<subtitle>####</subtitle>
<language>####</language>
26. Now we need one more file. /home/your-xbmc-user/.xbmc/userdata/keymaps/remote.xml
create it using mousepad and have it look like this. Again, yours might be slightly different.
Code:
<!-- This file contains the mapping of keys (gamepad, remote, and keyboard) to actions within XBMC -->
<!-- The <global> section is a fall through - they will only be used if the button is not -->
<!-- used in the current window's section. Note that there is only handling -->
<!-- for a single action per button at this stage. -->
<!-- For joystick/gamepad configuration under linux/win32, see below as it differs from xbox -->
<!-- gamepads. -->
<!-- The format is: -->
<!-- <device> -->
<!-- <button>action</button> -->
<!-- </device> -->
<!-- To map keys from other remotes using the RCA protocol, you may add <universalremote> blocks -->
<!-- In this case, the tags used are <obc#> where # is the original button code (OBC) of the key -->
<!-- You set it up by adding a <universalremote> block to the window or <global> section: -->
<!-- <universalremote> -->
<!-- <obc45>Stop</obc45> -->
<!-- </universalremote> -->
<!-- Note that the action can be a built-in function. -->
<!-- eg <B>XBMC.ActivateWindow(MyMusic)</B> -->
<!-- would automatically go to My Music on the press of the B button. -->
<!-- Joysticks / Gamepads: -->
<!-- See the sample PS3 controller configuration below for the format. -->
<!-- -->
<!-- Joystick Name: -->
<!-- Do 'cat /proc/bus/input/devices' or see your xbmc log file to find the names of -->
<!-- detected joysticks. The name used in the configuration should match the detected name. -->
<!-- -->
<!-- Button Ids: -->
<!-- 'id' is the button ID used by SDL. Joystick button ids of connected joysticks appear -->
<!-- in xbmc.log when they are pressed. Use your log to map custom buttons to actions. -->
<!-- -->
<!-- Axis Ids / Analog Controls -->
<!-- Coming soon. -->
<keymap>
<global>
<remote>
<play>Play</play>
<pause>Pause</pause>
<stop>Stop</stop>
<forward>FastForward</forward>
<reverse>Rewind</reverse>
<left>Left</left>
<right>Right</right>
<up>Up</up>
<down>Down</down>
<select>Select</select>
<enter>FullScreen</enter>
<pageplus>PageUp</pageplus>
<pageminus>PageDown</pageminus>
<back>ParentDir</back>
<menu>ContextMenu</menu>
<title>ContextMenu</title>
<info>Info</info>
<skipplus>SkipNext</skipplus>
<skipminus>SkipPrevious</skipminus>
<display>FullScreen</display>
<start>XBMC.ActivateWindow(Favourites)</start>
<record>Stop</record>
<volumeplus>VolumeUp</volumeplus>
<volumeminus>VolumeDown</volumeminus>
<mute>Mute</mute>
<power>XBMC.RestartApp()</power>
<myvideo>XBMC.ActivateWindow(VideoLibrary,MovieTitles)</myvideo>
<mymusic>XBMC.ActivateWindow(Weather)</mymusic>
<mypictures>XBMC.ActivateWindow(MyPictures)</mypictures>
<mytv>XBMC.ActivateWindow(VideoLibrary,TvShowTitles)</mytv>
<zero>XBMC.RestartApp()</zero>
<one>Number1</one>
<two>JumpSMS2</two>
<three>JumpSMS3</three>
<four>JumpSMS4</four>
<five>JumpSMS5</five>
<six>JumpSMS6</six>
<seven>JumpSMS7</seven>
<eight>JumpSMS8</eight>
<nine>JumpSMS9</nine>
<hash>Screenshot</hash>
<!-- <star>EjectTray()</star> -->
<xbox>scanitem</xbox>
</remote>
</global>
<Home>
<remote>
<info>XBMC.ActivateWindow(SystemInfo)</info>
<clear>XBMC.ActivateWindow(Weather)</clear>
<hash>Screenshot</hash>
</remote>
</Home>
<MyFiles>
<remote>
<clear>Delete</clear>
<zero>Highlight</zero>
<star>Move</star>
<hash>Rename</hash>
</remote>
</MyFiles>
<MyMusicPlaylist>
<remote>
<back>Playlist</back> <!-- Close playlist -->
<clear>Delete</clear>
<zero>Delete</zero>
</remote>
</MyMusicPlaylist>
<MyMusicPlaylistEditor>
<remote>
<zero>Queue</zero>
</remote>
</MyMusicPlaylistEditor>
<MyMusicFiles>
<remote>
<zero>Queue</zero>
<star>Queue</star>
</remote>
</MyMusicFiles>
<MyMusicLibrary>
<remote>
<zero>Queue</zero>
<star>Queue</star>
</remote>
</MyMusicLibrary>
<FullscreenVideo>
<remote>
<zero>Number0</zero>
<one>Number1</one>
<two>Number2</two>
<three>Number3</three>
<four>Number4</four>
<five>Number5</five>
<six>Number6</six>
<seven>Number7</seven>
<eight>Number8</eight>
<nine>Number9</nine>
<left>StepBack</left>
<right>StepForward</right>
<up>BigStepForward</up>
<down>BigStepBack</down>
<back>SmallStepBack</back>
<menu>OSD</menu>
<start>TakeScreenshot</start>
<select>AspectRatio</select>
<title>CodecInfo</title>
<info>Info</info>
<teletext>XBMC.ActivateWindow(Teletext)</teletext>
<display>ShowSubtitles</display>
<subtitle>ShowSubtitles</subtitle>
<star>EjectTray()</star>
<language>AudioNextLanguage</language>
<hash>Screenshot</hash>
</remote>
</FullscreenVideo>
<VideoTimeSeek>
<remote>
<select>Select</select>
<enter>Select</enter>
</remote>
</VideoTimeSeek>
<FullscreenInfo>
<remote>
<title>CodecInfo</title>
<info>Close</info>
<menu>OSD</menu>
</remote>
</FullscreenInfo>
<PlayerControls>
<remote>
<menu>Close</menu>
</remote>
</PlayerControls>
<Visualisation>
<remote>
<left>PreviousPreset</left>
<right>NextPreset</right>
<up>IncreaseRating</up>
<down>DecreaseRating</down>
<back>LockPreset</back>
<title>CodecInfo</title>
<select>XBMC.ActivateWindow(VisualisationPresetList)</select>
<menu>XBMC.ActivateWindow(MusicOSD)</menu>
<start>XBMC.ActivateWindow(MusicOSD)</start>
<info>Info</info>
</remote>
</Visualisation>
<MusicOSD>
<remote>
<menu>Close</menu>
<title>Info</title>
<info>CodecInfo</info>
</remote>
</MusicOSD>
<VisualisationSettings>
<remote>
<menu>Close</menu>
<back>Close</back>
</remote>
</VisualisationSettings>
<VisualisationPresetList>
<remote>
<menu>Close</menu>
<back>Close</back>
</remote>
</VisualisationPresetList>
<SlideShow>
<remote>
<zero>ZoomNormal</zero>
<one>ZoomLevel1</one>
<two>ZoomLevel2</two>
<three>ZoomLevel3</three>
<four>ZoomLevel4</four>
<five>ZoomLevel5</five>
<six>ZoomLevel6</six>
<seven>ZoomLevel7</seven>
<eight>ZoomLevel8</eight>
<nine>ZoomLevel9</nine>
<info>CodecInfo</info>
<skipplus>NextPicture</skipplus>
<skipminus>PreviousPicture</skipminus>
<title>Info</title>
<select>Rotate</select>
<back>PreviousMenu</back>
</remote>
</SlideShow>
<ScreenCalibration>
<remote>
<select>NextCalibration</select>
<zero>ResetCalibration</zero>
<display>NextResolution</display>
<xbox>NextResolution</xbox>
</remote>
</ScreenCalibration>
<GUICalibration>
<remote>
<select>NextCalibration</select>
<zero>ResetCalibration</zero>
</remote>
</GUICalibration>
<SelectDialog>
<remote>
<back>Close</back>
</remote>
</SelectDialog>
<VideoOSD>
<remote>
<back>PreviousMenu</back>
<menu>Close</menu>
<start>Close</start>
</remote>
</VideoOSD>
<VideoMenu>
<remote>
<menu>OSD</menu>
<back>PreviousMenu</back>
<info>Info</info>
<title>CodecInfo</title>
<zero>Number0</zero>
<one>Number1</one>
<two>Number2</two>
<three>Number3</three>
<four>Number4</four>
<five>Number5</five>
<six>Number6</six>
<seven>Number7</seven>
<eight>Number8</eight>
<nine>Number9</nine>
<play>Select</play>
</remote>
</VideoMenu>
<OSDVideoSettings>
<remote>
<back>Close</back>
<menu>Close</menu>
<start>Close</start>
</remote>
</OSDVideoSettings>
<OSDAudioSettings>
<remote>
<back>Close</back>
<menu>Close</menu>
<start>Close</start>
</remote>
</OSDAudioSettings>
<VideoBookmarks>
<remote>
<back>Close</back>
<menu>Close</menu>
<start>Close</start>
<zero>Delete</zero>
</remote>
</VideoBookmarks>
<MyVideoLibrary>
<remote>
<zero>Queue</zero>
<clear>Delete</clear>
</remote>
</MyVideoLibrary>
<MyVideoFiles>
<remote>
<zero>Queue</zero>
<star>Queue</star>
</remote>
</MyVideoFiles>
<MyVideoPlaylist>
<remote>
<back>Playlist</back> <!-- Close playlist -->
<clear>Delete</clear>
<zero>Delete</zero>
</remote>
</MyVideoPlaylist>
<VirtualKeyboard>
<remote>
<back>BackSpace</back>
<star>Shift</star>
<hash>Symbols</hash>
<zero>Number0</zero>
<one>Number1</one>
<two>Number2</two>
<three>Number3</three>
<four>Number4</four>
<five>Number5</five>
<six>Number6</six>
<seven>Number7</seven>
<eight>Number8</eight>
<nine>Number9</nine>
<enter>Enter</enter>
<pageminus>CursorLeft</pageminus>
<pageplus>CursorRight</pageplus>
</remote>
</VirtualKeyboard>
<ContextMenu>
<remote>
<title>Close</title>
<back>Close</back>
</remote>
</ContextMenu>
<FileStackingDialog>
<remote>
<back>Close</back>
</remote>
</FileStackingDialog>
<Scripts>
<remote>
<info>info</info>
</remote>
</Scripts>
<NumericInput>
<remote>
<zero>Number0</zero>
<one>Number1</one>
<two>Number2</two>
<three>Number3</three>
<four>Number4</four>
<five>Number5</five>
<six>Number6</six>
<seven>Number7</seven>
<eight>Number8</eight>
<nine>Number9</nine>
<enter>Enter</enter>
<back>BackSpace</back>
</remote>
</NumericInput>
<Weather>
<remote>
<back>PreviousMenu</back>
</remote>
</Weather>
<Settings>
<remote>
<back>PreviousMenu</back>
</remote>
</Settings>
<AddonBrowser>
<remote>
</remote>
</AddonBrowser>
<AddonInformation>
<remote>
<back>Close</back>
</remote>
</AddonInformation>
<AddonSettings>
<remote>
<back>Close</back>
</remote>
</AddonSettings>
<TextViewer>
<remote>
<back>Close</back>
</remote>
</TextViewer>
<MyPicturesSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</MyPicturesSettings>
<MyProgramsSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</MyProgramsSettings>
<MyWeatherSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</MyWeatherSettings>
<MyMusicSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</MyMusicSettings>
<SystemSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</SystemSettings>
<MyVideosSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</MyVideosSettings>
<NetworkSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</NetworkSettings>
<AppearanceSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</AppearanceSettings>
<Profiles>
<remote>
<back>PreviousMenu</back>
</remote>
</Profiles>
<systeminfo>
<remote>
<back>PreviousMenu</back>
</remote>
</systeminfo>
<shutdownmenu>
<remote>
<back>PreviousMenu</back>
</remote>
</shutdownmenu>
<submenu>
<remote>
<back>PreviousMenu</back>
</remote>
</submenu>
<MusicInformation>
<remote>
<back>Close</back>
</remote>
</MusicInformation>
<MovieInformation>
<remote>
<info>Close</info>
<back>Close</back>
</remote>
</MovieInformation>
<LockSettings>
<remote>
<menu>Close</menu>
<back>PreviousMenu</back>
</remote>
</LockSettings>
<ProfileSettings>
<remote>
<menu>Close</menu>
<back>PreviousMenu</back>
</remote>
</ProfileSettings>
<PictureInfo>
<remote>
<skipplus>NextPicture</skipplus>
<skipminus>PreviousPicture</skipminus>
<info>Close</info>
<back>Close</back>
</remote>
</PictureInfo>
<Teletext>
<remote>
<zero>number0</zero>
<one>number1</one>
<two>number2</two>
<three>number3</three>
<four>number4</four>
<five>number5</five>
<six>number6</six>
<seven>number7</seven>
<eight>number8</eight>
<nine>number9</nine>
<info>Info</info>
<back>Close</back>
<menu>Close</menu>
<start>Close</start>
<teletext>Close</teletext>
</remote>
</Teletext>
<Favourites>
<remote>
<back>Close</back>
</remote>
</Favourites>
</keymap>
Modify as required.
Its very important you understand the xbmc lirc relationship. It can be VERY confusing.
Once you understand the relationship I can show you how to use alternate names for the buttons.
I have deliberately not indicated it to keep the relationship a little more simple.
See this page
http://forum.xbmc.org/showthread.php?tid=189617
After a reboot open a lxterminal and type irw. Start pushing buttons on your remote. It will display the remote name and the name of the buttons you pushed.
Hopefully your remote name is NOT popcornhour . No big deal if it is just make sure its the same in Lircmap.xml
I repeated this process with another remote (Go Video DVD Remote) I found in the trash at work.
It also works without issue.
Both these remotes now work with this fresh "out of the box" install of xbmc.
You can have multiple remotes configured to use XBMC. All the remotes in your house can be configured and used at ANY time or at the same time.
Just add them to lircd.conf and Lirc.xml like you did above. No need to modify remote.xml.
I have used some pathetically stupid remotes to find one that wont work. Portable dvd player remotes, CCTV camera remotes, Old TV remotes. Hasn't happened yet.