Optimize remote mappings for users
#1
Hi,

I have used xbmc for a wile.
Already from the start i thought that the remote mappings didn't really make any sense to me...
buttons didn't do the same thing in all windows, contextmenu dident work in all windows and so on
it didn't feel like other system i had used and it didn't feel complete...

So i started creating my own remote.xml file
I updated it along the way when PVR was added and so on...

So way this thread...
Now when more and more users are starting to use XBMC I see lots of frustration and complaining about remotes and mappings so i thought...
...maybe i should post my remote.xml here for testing and maybe others like it to... :-)

I "at least" think this makes the hole XBMC experience better.

This is intended to replace the remote.xml file in xbmc system folder... not in userdata...
https://github.com/downloads/jenkins101/xbmc/remote.xml
Code:
wget -O /usr/share/xbmc/system/keymaps/remote.xml http://cloud.github.com/downloads/jenkins101/xbmc/remote.xml

This is for userdata folder... gives more or less the same mappings...
https://github.com/downloads/jenkins101/...remote.xml
Code:
wget -O ~/.xbmc/userdata/keymaps/remote.xml http://cloud.github.com/downloads/jenkins101/xbmc/userdata_remote.xml

Here is a Lircmap.xml that enables Radio and Recordedtv keys to.
Code:
wget -O ~/.xbmc/userdata/Lircmap.xml http://cloud.github.com/downloads/jenkins101/xbmc/Lircmap.xml

It is not tested on windows or osx... feedback please!
It is intended to be used with a MCE Remote or equivalent...

Please post feedback of your own solutions or thought here to...

Explanation of my remote.xml file:

What I have tried to do is:
1. Keep it simple
One button does one thing and one thing only... more accepted at home...

2. Keep it small
All unnecessary section have been removed... or for now commented out... they are confusing and should be documented else were

3. Keep it same and safe
I have tried to use the most commonly used button mappings from dreamboxes, settop boxes and other mce/mce like software out there...
This to make safe.

What I have not done:
Considered the possibility of memory leaks... devs please help
I have used this for a long time, so far no problems have been detected...

This is what I changed in the global section with some comments:
Code:
# Menu is always Menu right. this is the DVD Menu button on original MCE remote.
-      <menu>PreviousMenu</menu>
+     <menu>ContextMenu</menu>

# Title actually is Guide so now with PVR it should go to EPG/Guide screen.
-      <title>ContextMenu</title>
+     <title>XBMC.ActivateWindowAndFocus(MyPVR, 31,0, 10,0)</title>

# Start (flag) should always take you to Home Screen.
-      <start>PreviousMenu</start>
+      <start>XBMC.ActivateWindow(Home)</start>

# mytv actualy is livetv so take me there... probably should be changed in Lircmap instead
-      <mytv>XBMC.ActivateWindow(MyPVR)</mytv>
+      <mytv>XBMC.ActivateWindowAndFocus(MyPVR, 32,0, 11,0)</mytv>

# This is some useful mappings.
# I know there is remotes out there that does not have red,green,yellow,blue buttons but most new ones do.
-      <red>XBMC.ActivateWindow(MyPVR)</red>
-      <green>XBMC.ActivateWindow(MyVideos)</green>
-      <yellow>XBMC.ActivateWindow(MyMusic)</yellow>
-      <blue>XBMC.ActivateWindow(MyPictures)</blue>
+      <red>FullScreen</red>
+      <green>AudioNextLanguage</green>
+      <yellow>NextSubtitle</yellow>
+      <blue>AspectRatio</blue>

# if zero do delete some were it shoulde always do delete.
# If not in a input screen of course...
-      <zero>Number0</zero>
+      <zero>Delete</zero>

# same as zero here. should be global
+      <clear>Delete</clear>

# star always do queue.
+      <star>Queue</star>

Please ask if something isn't clear
There is no "big" changes to the mappings more ore less whats in the global section here is what you get...
If I've helped you, hit me with some points...

OpenELEC rTorrent Service addon HERE
Optimized remote.xml HERE

Reply
#2
added remote.xml for userdata folder
gives more or less the same mappings
If I've helped you, hit me with some points...

OpenELEC rTorrent Service addon HERE
Optimized remote.xml HERE

Reply
#3
Thx, now the remote feels complete for me. Great Work!
Reply
#4
Hi,
I agree with you about the default remote mapping. It should really be improved to enhance the out-of-the-box user experience.
I had posted a similar thread here: http://forum.xbmc.org/showthread.php?tid=135139 . A few modifications are the same as yours.
When trying your file, I got the following warning in xbmc.log:
Code:
21:13:53 T:3007215424   ERROR: Keymapping error: no such action 'language' defined
I removed the lines starting with <language> to get rid of this warning.
Reply
#5
Thanks, that looks nice. I will try it.

One question tho cause I am confused: Why are there two different versions (non-userdata and userdata)? I thought both locations are equal when it comes to functionality? So the one in the system folder is meant as a static file that ships with XBMC and if you want to edit it you are supposed to create a local copy in your user dir then. No?

As far as I can see the wiki page (http://wiki.xbmc.org/index.php?title=keymap) does not mention to touch the file in the system folder at all.
Reply
#6
This allows you to just specify your overrides in your userdata (wiki)/keymaps/keyboard.xml file, rather than copying the entire file. It is not recommended to modify the installation (system) version of this file.
Reply
#7
Yeah, as I am using OpenELEC the system partition is mounted read-only anyway. So I cannot modify the remote.xml in the system folder.
So as there are two different versions in the first post I will have to use the userdata-version. But what is the difference to the other version and why are there two different versions in the first place?
Reply
#8
Hi,

Nice that you all like it! Smile

The userdata version was made for OpenELEC because of the read-only filesystem.

The system version is intended for a pull request to change the default remote mappings in future XBMC.
It is also easier to read and understand the system version, its a lot shorter...

The userdata version has a lot of overrides of the default remote.xml that makes it hard to understand...

Most users should use the userdata version.
If I've helped you, hit me with some points...

OpenELEC rTorrent Service addon HERE
Optimized remote.xml HERE

Reply
#9
Hi,
Wouldn't it be better to only specify the settings which differ from the system.xml file, in order to get a minimal remote.xml user file?
Reply
#10
(2013-02-24, 21:10)spontex Wrote: Hi,
Wouldn't it be better to only specify the settings which differ from the system.xml file, in order to get a minimal remote.xml user file?

Yeah could be but really hard to follow though... :-)
Some pieces here some pieces there, hove should one know whats happening and way.

The small remote.xml for system folder is strait forward, its what you get, no more no less. :-)
Tried to simplify the diff on first post
If I've helped you, hit me with some points...

OpenELEC rTorrent Service addon HERE
Optimized remote.xml HERE

Reply
#11
Sorry to ask again, but what I still dont understand:
Your userdata-remote.xml does not seem to only contain differences to the default remote.xml. It seems to be a complete copy of the original file with additional changes.
For example in your file there is the default play command again:
Code:
<keymap>
  <global>
    <remote>
      <play>Play</play>

Wouldnt it be better to have a userdata-remote.xml that would only contains your modifications? Would also be much easier to read I guess.
Sorry if I am misunderstanding something...
Reply
#12
yes... it would...
thats why I have made the diff also...

if you want to know exactly what I have changed you can take the system folder version and diff it against the original system version...
then you see exactly what I have changed...

the userdata one was a quick and dirty for openelec.
I copied the default one and made some changes to match my system folder one...

also if I dont have all the keys in the remote.xml, things can change if devs change things in the default one...

not sure on what you are after here?
If I've helped you, hit me with some points...

OpenELEC rTorrent Service addon HERE
Optimized remote.xml HERE

Reply
#13
Well basically I was also just fiddling around with the remote.xml and just wanted to understand what you did and why you did it that way.

The default remote.xml does not include a key to activate the shutdown menu so I put that to my power button. I usually dont use the button anyway since I configured XBMC to go to suspend automatically after 30 minutes.
Code:
<keymap>
  <global>
    <remote>
      <power>ActivateWindow(shutdownmenu)</power>
    </remote>
  </global>
</keymap>
Reply
#14
Ok.

There is lots of the same in the userdata one because you have to override the default keys in every section the key appears...
If I've helped you, hit me with some points...

OpenELEC rTorrent Service addon HERE
Optimized remote.xml HERE

Reply
#15
Thanks for this!

Mind if I write this up as a guide in the tips and tricks section?

Works great with my new OpenELEC install.
Reply

Logout Mark Read Team Forum Stats Members Help
Optimize remote mappings for users1