Kodi Community Forum

Full Version: Keymap.xml for xbox remote users who've moved to XBMC on Apple TV
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I've been using xbmc with the xbox remote for like 3 years now I think so i've gotten pretty used to the xbox remote and the way it works. Since I couldnt figure out how to get the xbox remote working with apple tv I decided to set up the remote to work as closely as possible to the feel of the xbox remote. This is what I've done:

Quote:<keymap>
<global>
<remote> <!-- Apple Remote configuration -->
<menu>ParentDir</menu> <!-- Menu, short press -->
<back>ContextMenu</back> <!-- Menu, long press -->
</remote>
</global>

<FullscreenVideo>
<remote> <!-- Apple Remote configuration -->
<left>Rewind</left> <!-- Left -->
<right>FastForward</right> <!-- Right -->
<up>BigStepForward</up> <!-- Up -->
<down>BigStepBack</down> <!-- Down -->
<back>Stop</back> <!-- Menu, long press -->
<menu>OSD</menu> <!-- Menu, short press -->
<select>Play</select> <!-- Play/Pause, short press -->
</remote>
</FullscreenVideo>
</keymap>

Copy paste it. Save it as keymap.xml and then copy it to your apple tv.

I use the FTP app transmit. I set it up with the following info:

server: your apple tv ip address
username: frontrow
pass: frontrow
port: 22
SFTP

Then copy the keymap.xml file to
/Users/frontrow/Library/Application Support/XBMC/userdata/keymap.xml
Any idea what the codes for other long presses are? e.g. for 'Menu, long press' it's <back> -- what is it for 'Play/Pause, long press'? What about left/right/up/down?

Does the apple remote send different IR codes depending if you short or long press a button? If it's different codes, then it would be useful for programming universal remotes (12 buttons instead of 6!)
EMHMark3 Wrote:...what is it for 'Play/Pause, long press'?...

On ATV firmware 2.2 long play press maps to TITLE from memory.

edit : - see http://forum.xbmc.org/showpost.php?p=230849&postcount=4 for what I found before
My biggest gripe with the way XBMC handles the Apple Remote is the menu button.

I would like it to go up one level. Not up to the root menu.

Example.
Browsing "entourage episodes", I want to go up one level to view all TV Shows.

I have to select the rather cryptic ".."
(Up Up Up Select)

This isn't that easy because if you press and hold UP - the selection bar goes to the top and then wraps back to the bottom.

C.
EMHMark3 Wrote:Any idea what the codes for other long presses are? e.g. for 'Menu, long press' it's <back> -- what is it for 'Play/Pause, long press'? What about left/right/up/down?

Does the apple remote send different IR codes depending if you short or long press a button? If it's different codes, then it would be useful for programming universal remotes (12 buttons instead of 6!)

I agree, this would be extremely helpful to know. I'm coming from XBMC for the XBOX and the Apple Remote is very limited in comparison. But having 12 buttons to work with instead of 6 would be a big improvement.
Many Apple Remote improvements have been made for the next launcher release.
d4rk Wrote:Many Apple Remote improvements have been made for the next launcher release.

Happy dance.
Carniphage Wrote:My biggest gripe with the way XBMC handles the Apple Remote is the menu button.

I would like it to go up one level. Not up to the root menu.

Example.
Browsing "entourage episodes", I want to go up one level to view all TV Shows.

I have to select the rather cryptic ".."
(Up Up Up Select)

This isn't that easy because if you press and hold UP - the selection bar goes to the top and then wraps back to the bottom.

C.
Until the next launcher is released, you may want to try the keymap file in my post in the link above your post, as I have changed it to do this.
usurp Wrote:I've been using xbmc with the xbox remote for like 3 years now I think so i've gotten pretty used to the xbox remote and the way it works. Since I couldnt figure out how to get the xbox remote working with apple tv I decided to set up the remote to work as closely as possible to the feel of the xbox remote. This is what I've done:

Thanks. Your instructions made the remote work just the way I wanted it to when playing videos. I couldn't stand the default settings.
Yeah, it's an old thread, but the title says it all...

Am migrating from XBOX to ATV(OSX)+CrystalHD and don't like the Apple remote. This topic got me to thinking...

XBOX remote has 17 buttons (excluding the 10 numerics). ATV v2.3 and above has the 'learned remote' feature which yields 17 codes mapped on 15 buttons. (Menu and Center are overloaded buttons.)

Soooo, I reworked the XBMC 10.1 'joystick.AppleRemote.xml' file using the 9.04-1 XBOX keymap.xml as my template. Obviously, any functions mapped to the xbox remote's numeric buttons are omitted. In addition, I assigned the two overloaded buttons (and two other notable ATV 'learned' buttons) as:

Menu-Click = Back
Menu-Hold = Menu
Center-Click = Select
Center-Hold = Display
'Return' = Title
'Enter' = Info

I'm using this keymap file in conjunction with Dharma's PM3.HD skin and feel quite at home. The two overloaded buttons require a little finger retraining, but work surprisingly well (in conjunction with a few keymap tweaks).

After living with this setup for a while, the only thing I found I really missed was the '3' and '6' button volume adjustment. In my case, I decided to reassign the Rewind & Forward buttons (which I almost never use) to Volume Down and Up. This is NOT in the attached keymap, but is a very simple tweak in the global portion at the top (and when 'teaching' the ATV your remote's buttons).

Enjoy! (file in next post due to size)
Grrr... page split - see preceding post for description
Code:
<keymap>
  <global>
    <joystick name="AppleRemote">
    <!-- plus    -->    <button id="1">Up</button>
    <!-- minus    -->    <button id="2">Down</button>
    <!-- left    -->    <button id="3">Left</button>
    <!-- right    -->    <button id="4">Right</button>
    <!-- center    -->    <button id="5">Select</button>
    <!-- menu    -->    <button id="6">ParentDir</button>
    <!-- hold center -->    <button id="7">Fullscreen</button>
    <!-- hold menu    -->    <button id="8">PreviousMenu</button>
    <!-- Learned remote buttons (ATV >2.3) -->
    <!-- Play    -->    <button id="70">Play</button>
    <!-- Pause    -->    <button id="71">Pause</button>
    <!-- Stop    -->    <button id="72">Stop</button>
    <!-- Previous    -->    <button id="73">SkipPrevious</button>
    <!-- Next    -->    <button id="74">SkipNext</button>
    <!-- Rewind    -->    <button id="75">Rewind</button>
    <!-- Forward    -->    <button id="76">FastForward</button>
    <!-- Return    -->    <button id="77">ContextMenu</button>
    <!-- Enter    -->    <button id="78">Info</button>
    </joystick>
  </global>

  <Home>
    <joystick name="AppleRemote">
    <button id="78">XBMC.ActivateWindow(SystemInfo)</button>
    <button id="8">XBMC.Skin.ToggleSetting(HomeViewToggle)</button>
    </joystick>
  </Home>

  <Favourites>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    </joystick>
  </Favourites>

  <MyPictures>
    <joystick name="AppleRemote">
    </joystick>
  </MyPictures>

  <MyMusicPlaylist>
    <joystick name="AppleRemote">
    <button id="6">Playlist</button>
    </joystick>
  </MyMusicPlaylist>

  <MyMusicPlaylistEditor>
    <joystick name="AppleRemote">
    </joystick>
  </MyMusicPlaylistEditor>

  <MyMusicFiles>
    <joystick name="AppleRemote">
    </joystick>
  </MyMusicFiles>

  <MyMusicLibrary>
    <joystick name="AppleRemote">
    </joystick>
  </MyMusicLibrary>

  <FullscreenVideo>
    <joystick name="AppleRemote">
    <button id="1">BigStepForward</button>
    <button id="2">BigStepBack</button>
    <button id="3">StepBack</button>
    <button id="4">StepForward</button>
    <button id="5">AspectRatio</button>
    <button id="6">SmallStepBack</button>
    <button id="8">OSD</button>
    <button id="77">CodecInfo</button>
    <!-- <button id="78">Info</button> dup? -->
    </joystick>
  </FullscreenVideo>

  <FullscreenInfo>
    <joystick name="AppleRemote">
    <button id="77">CodecInfo</button>
    <button id="78">Close</button>
    <button id="8">OSD</button>
    </joystick>
  </FullscreenInfo>

  <PlayerControls>
    <joystick name="AppleRemote">
    <button id="8">Close</button>
    <button id="6">Close</button> <!-- ATV add -->
    </joystick>
  </PlayerControls>

  <Visualisation>
    <joystick name="AppleRemote">
    <button id="1">IncreaseRating</button>
    <button id="2">DecreaseRating</button>
    <button id="3">PreviousPreset</button>
    <button id="4">NextPreset</button>
    <button id="5">XBMC.ActivateWindow(VisualisationPresetList)</button>
    <button id="6">LockPreset</button>
    <button id="8">XBMC.ActivateWindow(MusicOSD)</button>
    <button id="77">CodecInfo</button>
    <!-- <button id="78">Info</button> dup? -->
    </joystick>
  </Visualisation>

  <MusicOSD>
    <joystick name="AppleRemote">
    <button id="8">Close</button>
    <button id="6">Close</button> <!-- ATV add -->
    <!-- next two swapped from xbox order for consistency -->
    <button id="77">CodecInfo</button>
    <!-- <button id="78">Info</button> dup? -->
    </joystick>
  </MusicOSD>

  <VisualisationSettings>
    <joystick name="AppleRemote">
    <button id="8">Close</button>
    <button id="6">Close</button> <!-- ATV add -->
    </joystick>
  </VisualisationSettings>
  <VisualisationPresetList>
    <joystick name="AppleRemote">
    <button id="8">Close</button>
    <button id="6">Close</button> <!-- ATV add -->
    </joystick>
  </VisualisationPresetList>

  <SlideShow>
    <joystick name="AppleRemote">
    <button id="73">PreviousPicture</button>
    <button id="74">NextPicture</button>
    <button id="5">Rotate</button>
    <button id="6">PreviousMenu</button>
    <!-- next two swapped from xbox order for consistency -->
    <button id="77">CodecInfo</button>
    <!-- <button id="78">Info</button> dup? -->
    <!-- next two carried over from ATV for usability -->
    <button id="1">ZoomIn</button>
    <button id="2">ZoomOut</button>
    </joystick>
  </SlideShow>

  <ScreenCalibration>
    <joystick name="AppleRemote">
    <button id="5">NextCalibration</button>
    <button id="7">NextResolution</button>
    </joystick>
  </ScreenCalibration>

  <SelectDialog>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    </joystick>
  </SelectDialog>

  <VideoOSD>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    <button id="8">Close</button>
    </joystick>
  </VideoOSD>

  <VideoMenu>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    <button id="8">OSD</button>
    <button id="77">CodecInfo</button>
    <!-- <button id="78">Info</button> dup? -->
    </joystick>
  </VideoMenu>

  <OSDVideoSettings>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    <button id="8">Close</button>
    </joystick>
  </OSDVideoSettings>

  <OSDAudioSettings>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    <button id="8">Close</button>
    </joystick>
  </OSDAudioSettings>

  <VideoBookmarks>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    <button id="8">Close</button>
    </joystick>
  </VideoBookmarks>

  <MyVideoLibrary>
    <joystick name="AppleRemote">
    </joystick>
  </MyVideoLibrary>

  <MyVideoFiles>
    <joystick name="AppleRemote">
    </joystick>
  </MyVideoFiles>

  <MyVideoPlaylist>
    <joystick name="AppleRemote">
    <button id="6">Playlist</button>
    </joystick>
  </MyVideoPlaylist>

  <VirtualKeyboard>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    </joystick>
  </VirtualKeyboard>

  <ContextMenu>
    <joystick name="AppleRemote">
    <button id="77">Close</button>
    <button id="6">Close</button>
    </joystick>
  </ContextMenu>

  <FileStackingDialog>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    </joystick>
  </FileStackingDialog>

  <MusicInformation>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    </joystick>
  </MusicInformation>

  <MovieInformation>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    </joystick>
  </MovieInformation>

  <PictureInfo>
    <joystick name="AppleRemote">
    <button id="73">PreviousPicture</button>
    <button id="74">NextPicture</button>
    <button id="78">Close</button>
    <button id="6">Close</button>
    </joystick>
  </PictureInfo>

  <AddonBrowser>
    <joystick name="AppleRemote">
    </joystick>
  </AddonBrowser>

  <AddonInformation>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    </joystick>
  </AddonInformation>

  <AddonSettings>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    </joystick>
  </AddonSettings>

  <TextViewer>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    </joystick>
  </TextViewer>

  <NumericInput>
    <joystick name="AppleRemote">
    <button id="6">Close</button>
    </joystick>
  </NumericInput>

<!-- carried over and converted from 9.04-1 keymap -->
<!--    do all of these still apply to 10.1 ?      -->

  <MyFiles>
    <joystick name="AppleRemote">
    </joystick>
  </MyFiles>

  <GUICalibration>
    <joystick name="AppleRemote">
    <button id="5">NextCalibration</button>
    </joystick>
  </GUICalibration>

  <Weather>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </Weather>

  <Settings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </Settings>

  <MyPicturesSettings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </MyPicturesSettings>

  <MyProgramsSettings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </MyProgramsSettings>

  <MyWeatherSettings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </MyWeatherSettings>

  <MyMusicSettings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </MyMusicSettings>

  <SystemSettings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </SystemSettings>

  <MyVideosSettings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </MyVideosSettings>

  <NetworkSettings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </NetworkSettings>

  <AppearanceSettings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </AppearanceSettings>

  <Profiles>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </Profiles>

  <systeminfo>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </systeminfo>

  <shutdownmenu>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </shutdownmenu>

  <submenu>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    </joystick>
  </submenu>

  <LockSettings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    <button id="8">Close</button>
    </joystick>
  </LockSettings>

  <ProfileSettings>
    <joystick name="AppleRemote">
    <button id="6">PreviousMenu</button>
    <button id="8">Close</button>
    </joystick>
  </ProfileSettings>

</keymap>