XBMC will be renamed to Kodi for v14. Read here for more details

Keymap, Category:Players

From XBMC
(Difference between pages)
Jump to: navigation, search
 
 
Line 1: Line 1:
{{Keyboard navigation}}
 
{{cleanup}}
 
 
{{XBMC wiki toc}}
 
{{XBMC wiki toc}}
'''Keyboard.xml''' is a [[w:XML|XML]] base keymap file that define the mappings of keys (keyboard keys, mouse/remote/joysticks buttons and more) to XBMC actions. Keyboard.xml was first introduced in XBMC 10("Dharma"), in versions prior to that it was called [[Keymap.xml]].
+
[[Category:Development]]
 
+
== Introduction ==
+
In XBMC 10.0 (and higher), keymap configuration files are located in the following directories:
+
 
+
{| class="wikitable"
+
|-
+
|  '''OS'''
+
|  '''Global (applies to all users)'''
+
|  '''User (applies to a specific user)'''
+
|-
+
|  Linux
+
|  (installation directory)/system/keymaps/
+
|  $home/.xbmc/userdata/keymaps/
+
|-
+
|  Windows
+
|  (installation directory)\system\keymaps\
+
|  %APPDATA%\XBMC\userdata\keymaps\
+
|-
+
|  Windows Portable Mode
+
|  (installation directory)\system\keymaps\
+
|  -
+
|}
+
 
+
'''Example Paths:'''
+
 
+
<pre>
+
Linux global: /usr/share/xbmc/system/keymaps/
+
Linux user specific: ~/.xbmc/userdata/keymaps/
+
 
+
Windows global: C:\Program Files\XBMC\userdata\keymaps\
+
Windows user specific: C:\Documents and Settings\Username\Application Data\XBMC\userdata\keymaps\
+
</pre>
+
 
+
All *.xml files in these folders are applied as keymaps.
+
All *.xml files are processed in alphabetical order.
+
Keymaps defined in an .xml file add to or override mappings in previous .xml file.
+
Keymaps defined in user folders add to or override mappings in the global keymap.
+
 
+
 
+
[https://github.com/xbmc/xbmc/tree/master/system/keymaps Default keymaps shipped with xbmc]
+
 
+
== Structure ==
+
 
+
There is one '''global''' keymap and several '''window'''-specific keymaps.<br />
+
XBMC falls back to the global map when the window-specific map hasn't bound the key being pressed.
+
 
+
The format of keymapping files is as follows:
+
 
+
<source lang="xml">
+
<keymap>
+
  <global>
+
    <gamepad>
+
      <A>Select</A>
+
      [...]
+
    </gamepad>
+
 
+
    <remote>
+
      <select>Select</select>
+
      [...]
+
    </remote>
+
 
+
    <keyboard>
+
      <enter>Select</enter>
+
      [...]
+
    </keyboard>
+
 
+
    <universalremote>
+
      <obc25>XBMC.ActivateWindow(MyMusic)</obc25>
+
      [...]
+
    </universalremote>
+
 
+
    <joystick name="PLAYSTATION(R)3 Controller (00:1B:FB:F6:E0:F2)">
+
      <button id="15">Select</button>
+
      [...]
+
    </joystick>
+
  </global>
+
 
+
  <Home>
+
    [...]
+
  </Home>
+
 
+
  [...]
+
 
+
</keymap>
+
</source>
+
 
+
As you can see, it's divided into a <global> section, and a number of window sections (such as <Home>).<br />
+
A list of the available window names can be seen here [[Window IDs]]. The WINDOW can also be a custom window formatted as <windowId#> (e. g. <window1113>). <br />
+
Each of these sections can contain Gamepad, Remote, Keyboard, Universal Remote, and custom Joystick sections.
+
 
+
The format for mapping a particular key under one of these device types is as follows:
+
<source lang="xml">
+
  <keyname>action</keyname>
+
</source>
+
 
+
== Keynames ==
+
 
+
=== Gamepad Section ===
+
An up to date list of the available actions can be found in the source code of XBMC in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/ButtonTranslator.cpp ButtonTranslator.cpp] where the ''TranslateGamepadString()'' function does the work.
+
 
+
'''Example:'''
+
<source lang="xml">
+
<gamepad>
+
  <A>Select</A>
+
</gamepad>
+
</source>
+
 
+
=== Remote Section ===
+
An up to date list of the available actions can be found in the source code of XBMC in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/ButtonTranslator.cpp ButtonTranslator.cpp] where the ''TranslateRemoteString()'' function does the work.
+
 
+
'''Example:'''
+
<source lang="xml">
+
<remote>
+
  <play>Play</play>
+
</remote>
+
</source>
+
 
+
=== Universal Remote Section ===
+
To map Universal Remote buttons using the RCA infrared protocol, you may add '''<universalremote>''' sections to keymap.xml.<br />
+
In this case, the tags used are <obc#> where # is the original button code (OBC) of the button.<br />
+
You would put it inside an <universalremote> section in the <window> or <global> sections.
+
 
+
'''Example:'''
+
<source lang="xml">
+
<universalremote>
+
  <obc148>Stop</obc148>
+
</universalremote>
+
</source>
+
 
+
:Will map ''Stop Playback'' to the RCA DVD repeat button <obc148>, which is not used by XBMC by default.
+
 
+
* '''Note:''' ensure that the <universalremote> section is '''NOT''' added 'within' the <remote> section - it can appear before or after. Otherwise it will not be recognised and produces errors in the logfile.
+
 
+
Remote keys can be observed in the xbmc.log file ('''~/.xbmc/temp/xbmc.log''' on Linux) when debugging is enabled in the GUI (Settings -> debugging )
+
 
+
=== Keyboard Section ===
+
Valid keyboard keymap syntax includes <keyname>, <key id="">, and <keyname mod="">.
+
 
+
Mapping for arbitrary key codes can be configured using the following syntax:
+
<source lang="xml">
+
<key id="123">
+
</source>
+
where "123" is replaced by the key code.
+
 
+
A full list of valid keynames can be found in
+
* the ''TranslateKeyboardString()'' method in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/ButtonTranslator.cpp ButtonTranslator.cpp]
+
* or in [[List of XBMC keynames]].<br />
+
 
+
'''Example:'''
+
<source lang="xml">
+
<keyboard>
+
  <key id="123">action</key> <!-- id is the keys keycode. >
+
  <a mod="shift,alt">action</a> <!-- corresponds to shift-alt-a, the mod="" syntax is enabled since build 26407. >
+
  <space>action</space> <!-- for a complete list of valid keynames, see ButtonTranslator.cpp or List of XBMC keynames above. >
+
</keyboard>
+
</source>
+
 
+
=== Custom Joystick Configuration ===
+
Custom joysticks are defined using the following syntax:
+
<source lang="xml">
+
<joystick name="JOYSTICK NAME">
+
  <button id="BUTTON ID">action</button>
+
</joystick>
+
</source>
+
 
+
Getting the joystick name:
+
* On linux: 'cat /proc/bus/input/devices'
+
* or see your xbmc log file
+
 
+
Getting the button ids:
+
* 'id' is the button ID used by SDL. Joystick button ids of connected joysticks appear in xbmc.log when they are pressed. Use your log to map custom buttons to actions.
+
 
+
'''Example:'''
+
<source lang="xml">
+
<joystick name="PLAYSTATION(R)3 Controller (00:1B:FB:F6:E0:F2)">
+
  <button id="15">Select</button>
+
  <button id="14">PreviousMenu</button>
+
</joystick>
+
</source>
+
 
+
== Actions ==
+
An up to date list of the available actions can be found in the ''TranslateActionString()'' method in in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/ButtonTranslator.cpp ButtonTranslator.cpp].
+
 
+
A reference of default XBMC keys and their associated actions can be found in: [https://github.com/xbmc/xbmc/tree/master/system/keymaps Default keymaps shipped with xbmc]
+
 
+
For those debugging integer action codes from the debug log, the mapping of action codes to constants is in [https://github.com/xbmc/xbmc/blob/master/xbmc/guilib/Key.h Key.h]
+
 
+
In addition to the following actions, you can also use the [[Built-in functions available to FTP, Webserver, skins, keymap and to python]] in XBMC.
+
 
+
{| class="wikitable"
+
|-
+
|  '''Action'''
+
|  '''Description'''
+
|-
+
|  Left
+
|  Move left off a control.
+
|-
+
|  Right
+
|  Move right off a control.
+
|-
+
|  Up
+
|  Move up off a control.
+
|-
+
|  Down
+
|  Move down off a control.
+
|-
+
|  Select
+
|  Select a button, or an item from a list of thumb view.
+
|-
+
|  PageUp
+
|  Scroll up on page in a list, thumb, or text view.
+
|-
+
|  PageDown
+
|  Scroll down on page in a list, thumb, or text view.
+
|-
+
|  Highlight
+
|  Highlight an item in a list or thumb view.
+
|-
+
|  ParentDir
+
|  Go up a folder to the parent folder.
+
|-
+
|  PreviousMenu
+
|  Go back to the previous menu screen.
+
|-
+
|  Info
+
|  Show the information about the currently highlighted item, or currently playing item.
+
|-
+
|  Pause
+
|  Pause the currently playing item.
+
|-
+
|  Stop
+
|  Stop the currently playing item.
+
|-
+
|  SkipNext
+
|  Skip to the next item in a playlist or scene in a video.
+
|-
+
|  SkipPrevious
+
|  Skip to the previous item in a playlist or scene in a video.
+
|-
+
|  FullScreen
+
|  Toggles fullscreen modes (either visualisation or video playback)
+
|-
+
|  AspectRatio
+
|  Toggle through the various aspect ratio modes (Normal is the preferred option).
+
|-
+
|  StepForward
+
|  Step forward 1% in the movie.
+
|-
+
|  StepBack
+
|  Step back 1% in the movie.
+
|-
+
|  BigStepForward
+
|  Step forward 10% in the movie.
+
|-
+
|  BigStepBack
+
|  Step back 10% in the movie.
+
|-
+
|  SmallStepBack
+
|  Step back 7 seconds in the current video.
+
|-
+
|  OSD
+
|  Toggles the OSD while playing an item.
+
|-
+
|  PlayDVD
+
|  Start playing a DVD (goes to the DVD menu)
+
|-
+
|  ShowVideoMenu
+
|  Go to the DVD Video menu when playing a DVD.
+
|-
+
|  ShowSubtitles
+
|  Toggles whether subtitles are shown or not.
+
|-
+
|  NextSubtitle
+
|  Change to the next subtitle language, if there is more than one.
+
|-
+
|  CodecInfo
+
|  Show codec information about the currently playing item (during video or visualisation playback)
+
|-
+
|  NextPicture
+
|  Move to the next picture in a slideshow.
+
|-
+
|  PreviousPicture
+
|  Move to the previous picture in a slideshow.
+
|-
+
|  ZoomOut
+
|  Used in picture, slideshow or video fullscreen to zoom out of the current image/video.
+
|-
+
|  ZoomIn
+
|  Used in picture, slideshow or video fullscreen to zoom in to the current image/video.
+
|-
+
|  IncreasePAR
+
|  Used in video fullscreen to increase the pixel aspect ratio (stretch).
+
|-
+
|  DecreasePAR
+
|  Used in video fullscreen to decrease the pixel aspect ratio (stretch).
+
|-
+
|  Queue
+
|  Queue the item to the current playlist
+
|-
+
|  Playlist
+
|  Toggle to playlist view from My Music or My Videos
+
|-
+
|  ZoomNormal
+
|  Normal (fullscreen) viewing in My Pictures
+
|-
+
|  ZoomLevel1
+
|  Zoom to 120% in My Pictures
+
|-
+
|  ZoomLevel2
+
|  Zoom to 150% in My Pictures
+
|-
+
|  ZoomLevel3
+
|  Zoom to 200% in My Pictures
+
|-
+
|  ZoomLevel4
+
|  Zoom to 280% in My Pictures
+
|-
+
|  ZoomLevel5
+
|  Zoom to 400% in My Pictures
+
|-
+
|  ZoomLevel6
+
|  Zoom to 600% in My Pictures
+
|-
+
|  ZoomLevel7
+
|  Zoom to 900% in My Pictures
+
|-
+
|  ZoomLevel8
+
|  Zoom to 1350% in My Pictures
+
|-
+
|  ZoomLevel9
+
|  Zoom to 2000% in My Pictures
+
|-
+
|  NextCalibration
+
|  Used in Video + GUI calibration
+
|-
+
|  ResetCalibration
+
|  Used in Video + GUI calibration
+
|-
+
|  AnalogMove
+
|  Move in the calibration screens, and while zoomed in My Pictures.
+
|-
+
|  Rotate
+
|  Rotate a picture in My Pictures
+
|-
+
|  Close
+
|  Used to close a dialog
+
|-
+
|  SubtitleDelayMinus
+
|  Decrease the delay amount of subtitles (use if subtitles are displaying too late)
+
|-
+
|  SubtitleDelayPlus
+
|  Increase the delay amount of subtitles (use if subtitles are displaying too early)
+
|-
+
|  AudioDelayMinus
+
|  Decrease the delay amount of audio (use if audio is being heard too early)
+
|-
+
|  AudioDelayPlus
+
|  Increase the delay amount of audio (use if audio is being heard too late)
+
|-
+
|  AudioNextLanguage
+
|  Change to the next audio track in a video with multiple audio tracks.
+
|-
+
|  NextResolution
+
|  Used in Video calibration
+
|-
+
|  Number0
+
|  Used to input the number 0
+
|-
+
|  Number1
+
|  Used to input the number 1
+
|-
+
|  Number2
+
|  Used to input the number 2
+
|-
+
|  Number3
+
|  Used to input the number 3
+
|-
+
|  Number4
+
|  Used to input the number 4
+
|-
+
|  Number5
+
|  Used to input the number 5
+
|-
+
|  Number6
+
|  Used to input the number 6
+
|-
+
|  Number7
+
|  Used to input the number 7
+
|-
+
|  Number8
+
|  Used to input the number 8
+
|-
+
|  Number9
+
|  Used to input the number 9
+
|-
+
|  FastForward
+
|  Toggle the fastforward speed between normal play, 2x, 4x, 8x, 16x, and 32x.
+
|-
+
|  Rewind
+
|  Toggle the rewind speed between normal play, 2x, 4x, 8x, 16x, and 32x.
+
|-
+
|  Play
+
|  Play the selected item (or folder of items), or unpause a paused item.
+
|-
+
|  Delete
+
|  Used in My Files to delete a file.
+
|-
+
|  Copy
+
|  Used in My Files to copy a file.
+
|-
+
|  Move
+
|  Used in My Files to move a file.
+
|-
+
|  Rename
+
|  Used in My Files to rename a file.
+
|-
+
|  HideSubmenu
+
|  <depreciated>
+
|-
+
|  Screenshot
+
|  Take a screenshot of the current screen.
+
|-
+
|  XBMC.ShutDown()
+
|  Shutdown and power off
+
|-
+
|  VolumeUp
+
|  Increase the volume of playback.
+
|-
+
|  VolumeDown
+
|  Decrease the volume of playback.
+
|-
+
|  Mute
+
|  Mute the volume.
+
|-
+
|  BackSpace
+
|  Used in the virtual keyboards to delete one letter.
+
|-
+
|  ScrollUp
+
|  Variable speed scroll up for analog keys (stick or triggers)
+
|-
+
|  ScrollDown
+
|  Variable speed scroll down for analog keys (stick or triggers)
+
|-
+
|  AnalogFastForward
+
|  Variable speed fast forward for analog keys (stick or triggers)
+
|-
+
|  AnalogRewind
+
|  Variable speed rewind for analog keys (stick or triggers)
+
|-
+
|  AnalogSeekForward
+
|  Variable speed seeking for analog keys (stick or triggers)
+
|-
+
|  AnalogSeekBack
+
|  Variable speed seeking for analog keys (stick or triggers)
+
|-
+
|  MoveItemUp
+
|  Used to rearrange playlists
+
|-
+
|  MoveItemDown
+
|  Used to rearrange playlists
+
|-
+
|  ContextMenu
+
|  Pops up a contextual menu
+
|-
+
|  Shift
+
|  Used in Virtual Keyboard to switch to upper or lower case letters
+
|-
+
|  Symbols
+
|  Used in Virtual Keyboard to switch to or from symbols mode
+
|-
+
|  CursorLeft
+
|  Used in Virtual Keyboard to move the current cursor point to the left
+
|-
+
|  CursorRight
+
|  Used in Virtual Keyboard to move the current cursor point to the right
+
|-
+
|  ShowTime
+
|  Used to show the current play time in music + video playback
+
|-
+
|  ShowPreset
+
|  Shows the current visualisation preset (milkdrop/spectrum)
+
|-
+
|  PresetList
+
|  Pops up the visualisation preset list (milkdrop/spectrum)
+
|-
+
|  NextPreset
+
|  Next visualisation preset
+
|-
+
|  PreviousPreset
+
|  Previous visualisation preset
+
|-
+
|  LockPreset
+
|  Lock the current visualisation preset
+
|-
+
|  RandomPreset
+
|  Switch to a new random preset
+
|-
+
|  IncreaseRating
+
|  Unused
+
|-
+
|  DecreaseRating
+
|  Unused
+
|-
+
|  ToggleWatched
+
|  Toggles watched/unwatched status for Videos
+
|-
+
|  NextLetter
+
|  Move to the next letter in a list or thumb panel.  Note that SHIFT-B on the keyboard will take you to the B's.
+
|-
+
|  PrevLetter
+
|  Move to the previous letter in a list or thumb panel.  Note that SHIFT-Z on the keyboard will take you to the Z's.
+
|-
+
|  JumpSMS2-9
+
|  Jump through a list using SMS-style input (eg press 2 twice to jump to the B's.)
+
|-
+
|  FilterSMS2-9
+
|  Filter a list in music or videos using SMS-style input.
+
|-
+
|  XBMC.ActivateWindow(MyVideos)
+
|  Go to My Videos.
+
|-
+
|  XBMC.ActivateWindow(MyMusic)
+
|  Go to My Music.
+
|-
+
|  XBMC.ActivateWindow(MyPictures)
+
|  Go to My Pictures.
+
|-
+
|  XBMC.ActivateWindow(Home)
+
|  Go to Home window.  Go back from within a context in the UI. 
+
|-
+
|  XBMC.ActivateWindow('''''[[Window IDs|windowid]]''''')
+
|  Go a window specified by ''''windowid''. See the [[Window IDs|list of window IDs]] for the list of valid values. Not all ids will work on all themes. 
+
|}
+
 
+
== Legacy Xbox remote information (For reference only) ==
+
The Xbox uses standard RCA DVD/VCR infrared codes, so if you have a universal remote with a built in device database you can for example use a RCA DVD OFF code to power down the Xbox (this does not require editing the keymap, simply program one of your buttons as RCA DVD off).
+
 
+
'''IMPORTANT:'''<br />
+
XBMC on the Xbox only can be put in a test mode to display the code number read when you press a button on your remote by setting [[advancedsettings.xml#<displayremotecodes>|'''<displayremotecodes>''']] to '''true''' in [[advancedsettings.xml]].
+
 
+
The following remote buttons are available:
+
 
+
{| class="wikitable"
+
|-
+
|  '''Button String'''
+
|  [[Xbox DVD-Remote|'''Button On Original XBOX Remote''']]
+
|  [[Xbox Media Extender Remote|'''Button On Media Extender Remote''']]
+
|  '''Remote Code (Shown with [[AdvancedSettings.xml#.3Cloglevel.3E|<loglevel>]])'''
+
|-
+
|  left
+
|  Left
+
|  Left
+
|  86
+
|-
+
|  right
+
|  Right
+
|  Right
+
|  87
+
|-
+
|  up
+
|  Up
+
|  Up
+
|  89
+
|-
+
|  down
+
|  Down
+
|  Down
+
|  88
+
|-
+
|  select
+
|  Select
+
|  OK or Enter
+
|  244
+
|-
+
|  back
+
|  Back
+
|  Back
+
|  39
+
|-
+
|  menu
+
|  Menu
+
|  DVD Menu
+
|  8
+
|-
+
|  info
+
|  Info
+
|  More (Has an 'I' on it)
+
|  60
+
|-
+
|  display
+
|  Display
+
|  XBOX (Bottom)
+
|  42
+
|-
+
|  title
+
|  Title
+
|  Guide
+
|  26
+
|-
+
|  play
+
|  Play
+
|  Play
+
|  21
+
|-
+
|  pause
+
|  Pause
+
|  Pause
+
|  25
+
|-
+
|  reverse
+
|  Reverse
+
|  Rew
+
|  29
+
|-
+
|  forward
+
|  Forward
+
|  Fwd
+
|  28
+
|-
+
|  skipplus
+
|  Skip +
+
|  Skip
+
|  32
+
|-
+
|  skipminus
+
|  Skip -
+
|  Replay
+
|  34
+
|-
+
|  stop
+
|  Stop
+
|  Stop
+
|  31
+
|-
+
|  zero
+
|  0
+
|  0
+
|  48
+
|-
+
|  one
+
|  1
+
|  1
+
|  49
+
|-
+
|  two
+
|  2
+
|  2
+
|  50
+
|-
+
|  three
+
|  3
+
|  3
+
|  51
+
|-
+
|  four
+
|  4
+
|  4
+
|  52
+
|-
+
|  five
+
|  5
+
|  5
+
|  53
+
|-
+
|  six
+
|  6
+
|  6
+
|  54
+
|-
+
|  seven
+
|  7
+
|  7
+
|  55
+
|-
+
|  eight
+
|  8
+
|  8
+
|  56
+
|-
+
|  nine
+
|  9
+
|  9
+
|  57
+
|-
+
|  power
+
|  N/A
+
|  Power
+
|  59
+
|-
+
|  myTV
+
|  N/A
+
|  My TV
+
|  206
+
|-
+
|  mymusic
+
|  N/A
+
|  My Music
+
|  246
+
|-
+
|  mypictures
+
|  N/A
+
|  My Pictures
+
|  249
+
|-
+
|  myvideo
+
|  N/A
+
|  My Video
+
|  248
+
|-
+
|  record
+
|  N/A
+
|  Record
+
|  23
+
|-
+
|  start
+
|  N/A
+
|  Start
+
|  218
+
|-
+
|  volumeplus
+
|  N/A
+
|  Vol +
+
|  47
+
|-
+
|  volumeminus
+
|  N/A
+
|  Vol -
+
|  46
+
|-
+
|  channelplus
+
|  N/A
+
|  CH/PG +
+
|  45
+
|-
+
|  channelminus
+
|  N/A
+
|  CH/PG -
+
|  44
+
|-
+
|  pageplus
+
|  N/A
+
|  CH/PG +
+
|  45
+
|-
+
|  pageminus
+
|  N/A
+
|  CH/PG -
+
|  44
+
|-
+
|  mute
+
|  N/A
+
|  Mute
+
|  63
+
|-
+
|  recordedtv
+
|  N/A
+
|  Recorded TV
+
|  154
+
|-
+
|  livetv
+
|  N/A
+
|  Live TV
+
|  231
+
|-
+
|  star
+
|  N/A
+
|  *
+
|  215
+
|-
+
|  hash
+
|  N/A
+
|  #
+
|  214
+
|-
+
|  clear
+
|  N/A
+
|  Clear
+
|  6
+
|}
+
 
+
[[Category:Python]]
+
[[Category:Remotes]]
+
[[Category:Settings]]
+
[[Category:Skin Development]]
+
[[Category:XBMC Manual]]
+

Revision as of 00:33, 19 December 2011

Home icon grey.png   ▶ Players
Personal tools
Namespaces

Variants
Actions
Navigation
Wiki help
Toolbox