Why won't my Lircmap.xml edits work?
#1
Hi,

I know there are a million other threads about this, believe me, I've read them, as well as the wiki and the "How-to's". I still can't get this working.

I'm using XBMC r26018 on a fresh install of mythbuntu 9.10 and the MS mce remote. The remote worked great straight out of the box. I'm just trying to customise of few buttons. As this remote has no "Menu" button, I thought I'd program the "Hash" (#) button to act as the menu button so I can access context menus.

So, following all the guides and other threads I copied the Lircmap.xml from /usr/share/xbmc/system to ~/.xbmc/userdata and copied remote.xml from /usr/share/xbmc/system/keymaps to ~/.xbmc/userdata/keymaps. I edited the new Lircmap.xml and simply changed the line:

"<title>Guide</title>"

to

"<title>Hash</title>".

By my reckoning that should be it? But nothing...

Here is my entire ~/.xbmc/userdata/Lircmap.xml:

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="mceusb">
        <play>Play</play>
        <pause>Pause</pause>
        <stop>Stop</stop>
        <forward>Forward</forward>
        <reverse>Rewind</reverse>
        <left>Left</left>
        <right>Right</right>
        <up>Up</up>
        <down>Down</down>
        <select>OK</select>
        <pageplus>ChanUp</pageplus>
        <pageminus>ChanDown</pageminus>
        <back>Back</back>
        <menu>PreviousMenu</menu>
        <title>Hash</title>
        <info>More</info>
        <skipplus>Skip</skipplus>
        <skipminus>Replay</skipminus>
        <display>Teletext</display>
        <start>Home</start>
        <record>Record</record>
        <volumeplus>VolUp</volumeplus>
        <volumeminus>VolDown</volumeminus>
        <mute>Mute</mute>
        <power>Power</power>
        <myvideo>Videos</myvideo>
        <mymusic>Music</mymusic>
        <mypictures>Pictures</mypictures>
        <mytv>TV</mytv>
        <one>One</one>
        <two>Two</two>
        <three>Three</three>
        <four>Four</four>
        <five>Five</five>
        <six>Six</six>
        <seven>Seven</seven>
        <eight>Eight</eight>
        <nine>Nine</nine>
        <zero>Zero</zero>
        <star>Star</star>
        <hash>Hash</hash>
        <clear>Clear</clear>
        <enter>Enter</enter>
        <red>Red</red>
        <green>Green</green>
        <yellow>Yellow</yellow>
        <blue>Blue</blue>
    </remote>
    
</lircmap>

and my ~/.xbmc/userdata/keymaps/remote.xml:

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>            -->
<!-- To find out the OBC's of your remote, try enabling the <displayremotecodes> tag in AdvancedSettings.xml -->

<!-- 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>
      <pageplus>PageUp</pageplus>
      <pageminus>PageDown</pageminus>
      <back>ParentDir</back>
      <menu>PreviousMenu</menu>
      <title>ContextMenu</title>
      <info>Info</info>
      <skipplus>SkipNext</skipplus>
      <skipminus>SkipPrevious</skipminus>
      <display>FullScreen</display>
      <start>PreviousMenu</start>
      <record>Screenshot</record>
      <volumeplus>VolumeUp</volumeplus>
      <volumeminus>VolumeDown</volumeminus>
      <mute>Mute</mute>
      <power>XBMC.ShutDown()</power>
      <myvideo>XBMC.ActivateWindow(MyVideos)</myvideo>
      <mymusic>XBMC.ActivateWindow(MyMusic)</mymusic>
      <mypictures>XBMC.ActivateWindow(MyPictures)</mypictures>
      <mytv>XBMC.ActivateWindow(Home)</mytv>
      <red>XBMC.ActivateWindow(Home)</red>
      <green>XBMC.ActivateWindow(MyVideos)</green>
      <yellow>XBMC.ActivateWindow(MyMusic)</yellow>
      <blue>XBMC.ActivateWindow(MyPictures)</blue>
      <zero>Number0</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>
    </remote>
  </global>
</keymap>

And my debug log here.

I suspect that my Lircmap.xml is not being read but can't confirm this and have no idea why this would be the case.

Any help much appreciated.

Thanks
Phil
Reply
#2
pssturges Wrote:Hi,

I know there are a million other threads about this, believe me, I've read them, as well as the wiki and the "How-to's". I still can't get this working.

I'm using XBMC r26018 on a fresh install of mythbuntu 9.10 and the MS mce remote. The remote worked great straight out of the box. I'm just trying to customise of few buttons. As this remote has no "Menu" button, I thought I'd program the "Hash" (#) button to act as the menu button so I can access context menus.

So, following all the guides and other threads I copied the Lircmap.xml from /usr/share/xbmc/system to ~/.xbmc/userdata and copied remote.xml from /usr/share/xbmc/system/keymaps to ~/.xbmc/userdata/keymaps. I edited the new Lircmap.xml and simply changed the line:

"<title>Guide</title>"

to

"<title>Hash</title>".

By my reckoning that should be it? But nothing...

Here is my entire ~/.xbmc/userdata/Lircmap.xml:

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="mceusb">
        <play>Play</play>
        <pause>Pause</pause>
        <stop>Stop</stop>
        <forward>Forward</forward>
        <reverse>Rewind</reverse>
        <left>Left</left>
        <right>Right</right>
        <up>Up</up>
        <down>Down</down>
        <select>OK</select>
        <pageplus>ChanUp</pageplus>
        <pageminus>ChanDown</pageminus>
        <back>Back</back>
        <menu>PreviousMenu</menu>
        <title>Hash</title>
        <info>More</info>
        <skipplus>Skip</skipplus>
        <skipminus>Replay</skipminus>
        <display>Teletext</display>
        <start>Home</start>
        <record>Record</record>
        <volumeplus>VolUp</volumeplus>
        <volumeminus>VolDown</volumeminus>
        <mute>Mute</mute>
        <power>Power</power>
        <myvideo>Videos</myvideo>
        <mymusic>Music</mymusic>
        <mypictures>Pictures</mypictures>
        <mytv>TV</mytv>
        <one>One</one>
        <two>Two</two>
        <three>Three</three>
        <four>Four</four>
        <five>Five</five>
        <six>Six</six>
        <seven>Seven</seven>
        <eight>Eight</eight>
        <nine>Nine</nine>
        <zero>Zero</zero>
        <star>Star</star>
        <hash>Hash</hash>
        <clear>Clear</clear>
        <enter>Enter</enter>
        <red>Red</red>
        <green>Green</green>
        <yellow>Yellow</yellow>
        <blue>Blue</blue>
    </remote>
    
</lircmap>

and my ~/.xbmc/userdata/keymaps/remote.xml:

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>            -->
<!-- To find out the OBC's of your remote, try enabling the <displayremotecodes> tag in AdvancedSettings.xml -->

<!-- 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>
      <pageplus>PageUp</pageplus>
      <pageminus>PageDown</pageminus>
      <back>ParentDir</back>
      <menu>PreviousMenu</menu>
      <title>ContextMenu</title>
      <info>Info</info>
      <skipplus>SkipNext</skipplus>
      <skipminus>SkipPrevious</skipminus>
      <display>FullScreen</display>
      <start>PreviousMenu</start>
      <record>Screenshot</record>
      <volumeplus>VolumeUp</volumeplus>
      <volumeminus>VolumeDown</volumeminus>
      <mute>Mute</mute>
      <power>XBMC.ShutDown()</power>
      <myvideo>XBMC.ActivateWindow(MyVideos)</myvideo>
      <mymusic>XBMC.ActivateWindow(MyMusic)</mymusic>
      <mypictures>XBMC.ActivateWindow(MyPictures)</mypictures>
      <mytv>XBMC.ActivateWindow(Home)</mytv>
      <red>XBMC.ActivateWindow(Home)</red>
      <green>XBMC.ActivateWindow(MyVideos)</green>
      <yellow>XBMC.ActivateWindow(MyMusic)</yellow>
      <blue>XBMC.ActivateWindow(MyPictures)</blue>
      <zero>Number0</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>
    </remote>
  </global>
</keymap>

And my debug log here.

I suspect that my Lircmap.xml is not being read but can't confirm this and have no idea why this would be the case.

Any help much appreciated.

Thanks
Phil

Try and add this to remote.xml :

<hash>ContextMenu</hash>

In Lircmap.xml it has to be :
<hash>Hash</hash>

Then restart xbmc and it should work.


[EDIT]
Lircmap.xml is for adding/editing buttons
Keymap.xml is for modifying the functions the buttons represent, mostly you only have to edit Keymap.xml and only use Lircmap.xml if you want to add additional buttons, not for configuring existing ones.



[EDIT2]
You know the 'guide' button on the MCE Remote = Context menu ? That's the one the xmls refer to as 'title' ;-)
ynwa
Reply
#3
your problem is that you have Hash mapped to both hash and title - last entry takes precedence. disregard ^ as Keymap.xml is deprecated.
Reply
#4
spiff Wrote:your problem is that you have Hash mapped to both hash and title - last entry takes precedence. disregard ^ as Keymap.xml is deprecated.

worked for me, remapped my MCE this sunday..
ynwa
Reply
#5
yes, but it won't work soon when we remove the support for the deprecated filename. no reason for new users to learn the old ways.
Reply
#6
spiff Wrote:yes, but it won't work soon when we remove the support for the deprecated filename.

so it will be remote.xml in the future ?
ynwa
Reply
#7
rather keymaps/nameofdevice.xml - in this case it's a remote. but we read any xml files in there.
Reply
#8
spiff Wrote:rather keymaps/nameofdevice.xml - in this case it's a remote. but we read any xml files in there.

exellent, thanks for the info !
ynwa
Reply
#9
spiff Wrote:rather keymaps/nameofdevice.xml - in this case it's a remote. but we read any xml files in there.

Spiff,

So then where will a custom file have to be placed so it will not be overwritten when upgrading.

Thanks,

Dave
Reply
#10
on linux ~/.xbmc/userdata/keymaps/custom.xml
Reply
#11
spiff Wrote:your problem is that you have Hash mapped to both hash and title - last entry takes precedence. disregard ^ as Keymap.xml is deprecated.

Yep, that fixed it. Much appreciated. Pretty simple really.

Thanks
Phil
Reply

Logout Mark Read Team Forum Stats Members Help
Why won't my Lircmap.xml edits work?0