HOW-TO:Modify joystick.xml

From Official Kodi Wiki
Revision as of 08:11, 10 February 2017 by Garbear (talk | contribs) (Add See also and categories)
Jump to navigation Jump to search
Home icon grey.png   ▶ Remote controls
▶ Games
▶ Game controllers ▶ HOW-TO:Modify joystick.xml


Future.png FUTURE Krypton FEATURE:
This page or section describes features that are a future part of the Kodi v17 release, codename "Krypton". For more information see development builds.

Actions in Kodi are defined by Keymaps. If you would like to change the actions for a game controller, you will need to edit your joystick.xml file.


Note: Add-on:Keymap Editor does not work for controllers at this time.


General configuration

Controllers are configured in two separate locations:

  • First, you must map your controller in the configuration utility (see HOW-TO:Configure controllers)
  • Optionally, Kodi uses a Keymap named joystick.xml to define Kodi actions for each button


This guide describes how to modify the Keymap.


Note: joystick.xml defines actions for an Xbox 360 controller. See HOW-TO:Map multiple controllers.


Location of joystick.xml

The file joystick.xml should be located with Kodi's other keymaps (see Location of keymaps). They keymap placed in the userdata folder will override the keymap shipped with Kodi.


Structure

The structure is similar to Kodi's other keymaps:

<keymap>
  <global>
    <joystick>
      <a>Select</a>
      <b>Back</b>
      <x>ContextMenu</x>
      <y>FullScreen</y>
      <start>ActivateWindow(PlayerControls)</start>
      <back>PreviousMenu</back>
      <guide>ActivateWindow(Home)</guide>
      <up>Up</up>
      <down>Down</down>
      <right>Right</right>
      <left>Left</left>
      <leftthumb>Screenshot</leftthumb>
      <rightthumb>ActivateWindow(ShutdownMenu)</rightthumb>
      <lefttrigger>ScrollUp</lefttrigger>
      <righttrigger>ScrollDown</righttrigger>
      <leftbumper>ScrollUp</leftbumper>
      <rightbumper>ScrollDown</rightbumper>
      <leftstickleft>Left</leftstickleft>
      <leftstickright>Right</leftstickright>
      <leftstickup>Up</leftstickup>
      <leftstickdown>Down</leftstickdown>
      <rightstickleft>VolumeDown</rightstickleft>
      <rightstickright>VolumeUp</rightstickright>
      <rightstickup>VolumeUp</rightstickup>
      <rightstickdown>VolumeDown</rightstickdown>
    </joystick>
  </global>

  <Home>
    [...]
  </Home>

  [...]

</keymap>


Planned features

In the future, it will be possible to define actions for holding buttons, similar to Long presses:

<keymap>
  <global>
    <joystick>
      <a>Select</a>
      <a holdtime="250">ContextMenu</a>
      [...]


See also