HOW-TO:Modify joystick.xml
Remote controls Games |
Game controllers | HOW-TO:Modify joystick.xml |
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 profile="game.controller.default"> <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> [...]