v17 Joystick customization?
#1
How do you actually customize the mapping of the joystick?

I had a customized mapping for my 360 pad in linux that matched the older button layout that went all the way back to xbmc days on the xbox and have controlling kodi solely with my controller since way back, but now with the new joystick addon it is not working anymore Sad

According to the wiki I should just need to copy the default joystick.xml (/usr/share/kodi/system/keymaps/joystick.xml) and edit the functions and then add it to the .kodi/userdata/keymaps/ directory, but I have tried now several times and my mapping is still the default one.

So far it seems Kodi is ignoring my changed joystick.xml. Have I missed something?
Reply
#2
So your controller is working and I assume you have set up the buttons on the new configurator tool? It's just that your customizations aren't working, correct?

I haven't made any alterations to my joystick.xml keymap (yet) but I am having an issue with the default bindings in one section overriding another, specifically the Visualisation section overriding the Music player section, regardless of whether there is any visualisation going on. I don't suppose that could be relevant to your case?

Other than that I have a suggestion: When I read the changelog, I immediately thought that migrating an old profile would be a bad idea and decided to make a new one. If your profile is as old as you make it sound, maybe it's time to start afresh just so you're sure that it's not some old crud holding you back?
Reply
#3
You are correct that I already have the controller working.

My install is not THAT old (reinstalled everything fresh last summer on ubuntu-minimal 14.04 LTS), I'm just using a keymap that match the old xbmc since that is what I am used to. I am already on a fresh install since for some reason I could not get the controller to start at all after the upgrade from 16.1. Not even after removing my custom keymap and installing kodi-peripheral-joystick with apt-get. Kodi would just crash when I choose "config joystick".

I purged all of kodi and only kept my old keymap as a reference, restored my databases and started with a fresh config.
Reply
#4
OK, can you share your alterations/joystick.xml? What sections (if not all of them) are you making changes to?

I am going to play around with my settings tonight anyway and I'll try to see if I can reproduce your issues. My Logitech F710 is pretty much a standin for the Xbox360.
Reply
#5
and a Debug Log
Reply
#6
Guess what... on my second try it was somehow working and now I have managed to mostly configure things the way I like them. Just a bit more adjusting to fix a few buttonmappings that don't mesh.
In case anyone want to see what I have so far, here you go:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!-- This file contains the mapping of keys to actions within Kodi.                       -->
<!--                                                                                      -->
<!-- The format is:                                                                       -->
<!--  <window>                                                                            -->
<!--    <device>                                                                          -->
<!--      <button>action</button>                                                         -->
<!--    </device>                                                                         -->
<!--  </window>                                                                           -->
<!--                                                                                      -->
<!-- The <global> section is a fall through - they will only be used if the button is     -->
<!-- not used in the current window's section.                                            -->
<!--                                                                                      -->
<!-- Actions can be built-in functions.                                                   -->
<!--  eg <B>ActivateWindow(Music)</B>                                                     -->
<!-- would automatically go to Music on the press of the B button.                        -->
<!--                                                                                      -->
<!--                                                                                      -->
<!-- An empty action removes the corresponding mapping from default and parent keymaps.   -->
<!-- This is different from a "noop" action, which disables a button.                     -->
<!--                                                                                      -->
<!-- More documentation on keymaps can be found on http://kodi.wiki/view/keymaps          -->
<keymap>
  <global>
    <joystick>
      <a>Select</a>
      <b>Back</b>
      <x>FullScreen</x>
      <y>noop</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>Screenshot</rightthumb>
      <lefttrigger>ScrollUp</lefttrigger>
      <righttrigger>ScrollDown</righttrigger>
      <leftbumper>ContextMenu</leftbumper>
      <rightbumper>Info</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>
  <FileManager>
    <joystick>
      <y>Highlight</y>
    </joystick>
  </FileManager>
  <MusicPlaylist>
    <joystick>
      <y>Delete</y>
    </joystick>
  </MusicPlaylist>
  <Music>
  </Music>
  <FullscreenVideo>
    <joystick>
      <a>Pause</a>
      <b>Stop</b>
      <x>FullScreen</x>
      <y>AspectRatio</y>
      <start>OSD</start>
      <back>Seek(-7)</back>
      <guide>ActivateWindow(Home)</guide>
      <up>ChapterOrBigStepForward</up>
      <down>ChapterOrBigStepBack</down>
      <right>StepForward</right>
      <left>StepBack</left>
      <leftthumb>ShowSubtitles</leftthumb>
      <rightthumb>ScreenShot</rightthumb>
      <lefttrigger>noop</lefttrigger>
      <righttrigger>noop</righttrigger>
      <leftbumper>PlayerProcessInfo</leftbumper>
      <rightbumper>Info</rightbumper>
      <leftstickleft>AnalogRewind</leftstickleft>
      <leftstickright>AnalogFastForward</leftstickright>
      <leftstickup>AnalogFastForward</leftstickup>
      <leftstickdown>AnalogRewind</leftstickdown>
      <rightstickleft>VolumeDown</rightstickleft>
      <rightstickright>VolumeUp</rightstickright>
      <rightstickup>VolumeUp</rightstickup>
      <rightstickdown>VolumeDown</rightstickdown>
    </joystick>
  </FullscreenVideo>
  <FullscreenLiveTV>
    <joystick>
      <up>ChannelUp</up>
      <down>ChannelDown</down>
      <left>StepBack</left>
      <right>StepForward</right>
    </joystick>
  </FullscreenLiveTV>
  <FullscreenRadio>
    <joystick>
      <up>ChannelUp</up>
      <down>ChannelDown</down>
      <left>StepBack</left>
      <right>StepForward</right>
    </joystick>
  </FullscreenRadio>
  <FullscreenInfo>
    <joystick>
      <b>Close</b>
      <x>Close</x>
      <start>OSD</start>
      <lefttrigger>AnalogRewind</lefttrigger>
      <righttrigger>AnalogFastForward</righttrigger>
      <leftbumper>AnalogRewind</leftbumper>
      <rightbumper>AnalogFastForward</rightbumper>
    </joystick>
  </FullscreenInfo>
  <PlayerControls>
    <joystick>
      <x>Close</x>
      <leftthumb>Close</leftthumb>
      <rightthumb>Close</rightthumb>
    </joystick>
  </PlayerControls>
  <Visualisation>
    <joystick>
      <a>Pause</a>
      <b>Stop</b>
      <x>FullScreen</x>
      <y>ActivateWindow(VisualisationPresetList)</y>
      <start>OSD</start>
      <rightthumb>ActivateWindow(MusicOSD)</rightthumb>
      <up>SkipNext</up>
      <down>SkipPrevious</down>
      <left>StepBack</left>
      <right>StepForward</right>
      <lefttrigger>noop</lefttrigger>
      <righttrigger>noop</righttrigger>
      <leftbumper>PlayerProcessInfo</leftbumper>
      <rightbumper>Info</rightbumper>
      <leftstickleft>AnalogRewind</leftstickleft>
      <leftstickright>AnalogFastForward</leftstickright>
    </joystick>
  </Visualisation>
  <MusicOSD>
    <joystick>
      <start>Close</start>
      <rightbumper>Info</rightbumper>
    </joystick>
  </MusicOSD>
  <VisualisationPresetList>
    <joystick>
      <b>Close</b>
    </joystick>
  </VisualisationPresetList>
  <SlideShow>
    <joystick>
      <a>Pause</a>
      <b>Stop</b>
      <y>ZoomNormal</y>
      <leftbumper>Rotate</leftbumper>
      <rightbumper>Info</rightbumper>
      <up>ZoomIn</up>
      <down>ZoomOut</down>
      <left>PreviousPicture</left>
      <right>NextPicture</right>
      <leftstickleft>AnalogMoveX</leftstickleft>
      <leftstickright>AnalogMoveX</leftstickright>
      <leftstickup>AnalogMoveY</leftstickup>
      <leftstickdown>AnalogMoveY</leftstickdown>
      <lefttrigger>ZoomOut</lefttrigger>
      <righttrigger>ZoomIn</righttrigger>
    </joystick>
  </SlideShow>
  <ScreenCalibration>
    <joystick>
      <x>ResetCalibration</x>
      <leftbumper>NextResolution</leftbumper>
      <rightbumper>NextCalibration</rightbumper>
    </joystick>
  </ScreenCalibration>
  <ScreenCalibration>
    <joystick>
      <x>ResetCalibration</x>
      <leftbumper>NextResolution</leftbumper>
      <rightbumper>NextCalibration</rightbumper>
    </joystick>
  </ScreenCalibration>
  <VideoOSD>
    <joystick>
      <start>Close</start>
    </joystick>
  </VideoOSD>
  <VideoMenu>
    <joystick>
      <b>Stop</b>
      <x>Info</x>
      <y>AspectRatio</y>
      <start>OSD</start>
    </joystick>
  </VideoMenu>
  <OSDVideoSettings>
    <joystick>
      <leftbumper>AspectRatio</leftbumper>
      <x>Close</x>
    </joystick>
  </OSDVideoSettings>
  <OSDAudioSettings>
    <joystick>
      <y>AspectRatio</y>
      <start>Close</start>
    </joystick>
  </OSDAudioSettings>
  <VideoBookmarks>
    <joystick>
      <leftbumper>Delete</leftbumper>
    </joystick>
  </VideoBookmarks>
  <Videos>
  </Videos>
  <VideoPlaylist>
    <joystick>
      <leftbumper>Delete</leftbumper>
    </joystick>
  </VideoPlaylist>
  <VirtualKeyboard>
    <joystick>
      <b>BackSpace</b>
      <y>Symbols</y>
      <leftbumper>Shift</leftbumper>
      <leftthumb>Enter</leftthumb>
      <lefttrigger>CursorLeft</lefttrigger>
      <righttrigger>CursorRight</righttrigger>
    </joystick>
  </VirtualKeyboard>
  <ContextMenu>
    <joystick>
      <b>Close</b>
    </joystick>
  </ContextMenu>
  <Settings>
    <joystick>
      <b>PreviousMenu</b>
    </joystick>
  </Settings>
  <AddonInformation>
    <joystick>
      <b>Close</b>
    </joystick>
  </AddonInformation>
  <AddonSettings>
    <joystick>
      <b>Close</b>
    </joystick>
  </AddonSettings>
  <TextViewer>
    <joystick>
      <b>Close</b>
    </joystick>
  </TextViewer>
  <shutdownmenu>
    <joystick>
      <b>PreviousMenu</b>
      <leftthumb>PreviousMenu</leftthumb>
    </joystick>
  </shutdownmenu>
  <submenu>
    <joystick>
      <b>PreviousMenu</b>
    </joystick>
  </submenu>
  <MusicInformation>
    <joystick>
      <b>Close</b>
    </joystick>
  </MusicInformation>
  <MovieInformation>
    <joystick>
      <b>Close</b>
    </joystick>
  </MovieInformation>
  <NumericInput>
    <joystick>
      <b>BackSpace</b>
      <leftthumb>Enter</leftthumb>
    </joystick>
  </NumericInput>
  <GamepadInput>
    <joystick>
      <leftthumb>Stop</leftthumb>
    </joystick>
  </GamepadInput>
  <LockSettings>
    <joystick>
      <b>PreviousMenu</b>
      <leftthumb>Close</leftthumb>
    </joystick>
  </LockSettings>
  <ProfileSettings>
    <joystick>
      <b>PreviousMenu</b>
      <leftthumb>Close</leftthumb>
    </joystick>
  </ProfileSettings>
</keymap>
I have mapped "PlayerProcessInfo" to the left bumper. Is there a way to make the left bumper also close it? As it is I have to press B.
Reply

Logout Mark Read Team Forum Stats Members Help
Joystick customization?0