Final touches of my XBMC Setup
A few things have been bugging me so I made a list of what I’d like sorting out:
- The top row of buttons does not work, Pictures, Radio, Music and Video.
- The color buttons seem to be doing the job of the 4 buttons just mentioned.
- It would be nice to have a button to go back to the home screen.
- Have a button that when pressed would shut down XBMC and reload it again. I noticed that playback performance would suck when I tried to view a video after leaving XBMC running for a few days. A quick app restart sorted it so it’s this kind of functionality I want to bind to a single button press.
So it doesn’t seem like a lot to ask but it just took me over a couple of hours to sort out.
Top Row Buttons
The problem I had was that XBMC seemed to ignore the top row of buttons buttons. I use IR Server Suite (as described in my last post) so I loaded up its Debug Client which lets me check which buttons have been pressed. That showed that all the remotes buttons were being read correctly. This led me to believe the problem was with XBMC. I should mention that at this point I left the Harmony One out of the equation and just used the AIM remote.
The first thing I did was research how to manually tweak the remote controls key assignments within XBMC. This is handled via some external XML files. I’m currently using XBMC v10.0.0 which seems to have a different config XML setup than earlier versions, at least that is the impression I get from most of the online docs which refer to a single “keymap.xml” file. In v10 it has been split into several files. The one of interest is called “remote.xml”. Before I get into the changes I made I should point out that changing this on its own did not solve my first problem and is in fact what took up most of my time.
Before editing remote.xml it is time to open the IRSSmap.xml file. For me this was located at:
This file is has two key mapping regions. The first is for remotes that send keyboard commands, the AIM RC6 remote does not do this. The second, “Abstract” section is for us. I left most of the file as it was and just added my own buttons at the bottom. I left the number keys in the following so you can get an idea of where I made the changes. I’ve also attached the complete IRSSmap.xml file to this post.
<eight>Number8</eight> <nine>Number9</nine> <zero>Number0</zero> <mytv>Radio</mytv> <mymusic>Music</mymusic> <mypictures>Pictures</mypictures> <myvideo>Videos</myvideo> <red>Red</red> <green>Green</green> <yellow>Yellow</yellow> <blue>Blue</blue> <teletext>Teletext</teletext>
Prior to this change the “mytv”, “mymusic”, “mypictures” and “myvideo” actions were assigned to the four color keys and the teletext key was not setup at all. Now that the remote keys have been properly bound it is time to actually configure them for XBMC usage. The first step is to copy the following file:
Place it here, there more than likely will be no files in that directory until you paste the copied one there. Files in this location overwrite files in the main application directory so you can leave those there as backups. Those ones also get replaced when you install an update whilst the copies in the user directory do not get replaced:
C:\Documents and Settings\[YOUR_USERNAME]\Application Data\XBMC\userdata\keymaps\remote.xml
Here are the contents of my remote.xml file:
<keymap> <global> <remote> <myvideo>XBMC.ActivateWindow(MyVideos)</myvideo> <mymusic>XBMC.ActivateWindow(MyMusic)</mymusic> <mypictures>XBMC.ActivateWindow(MyPictures)</mypictures> <mytv>XBMC.ActivateWindow(Home)</mytv> </remote> </global> </keymap>
As you can see, the only keys in there are my overrides. I left out remapping the color buttons since I don’t need any extra keys at the moment.
Restarting XBMC with a button press
This was really simple to setup:
- Create a batch file in the XBMC directory called “restart_xbmc.bat” and paste in the following as its content.
- taskkill /IM “XBMC.exe”
ping -n 5 localhost>nul 2>&1
start “XBMC” /B “C:Program FilesXBMCXBMC.exe”
- That kills the XBMC executable if it is currently running, pauses for 5 seconds by doing a silent ping and then it starts XBMC again.
- Get another remote for a device that would never be on whilst I’m using XBMC. I chose to use my DVD remote.
- Using the IR Server Suites “Translator” application create a new entry on the “Programs” tab.
- It will prompt you to press a button, I chose to use my DVD remotes Clear button.
- Now you can setup the new task. I called mine “Restart XBMC”. Set the Application path to the batch file you just created. Set the Start folder to be the same directory as the batch file. I left Parameters blank, Window style on Normal, ticked No window and left the others unticked.
- Ok that and you’re done with this step. I ticked the “Start Translator with Windows” option on the main screen and then OKed my way out of that.
The final step was to learn the new key from my DVD remote and then reconfigure the button setup on my Harmony One. That’s it, now the top row of buttons works and I can restart XBMC with a single button press.