Keymap

From Kodi
(Redirected from Keyboard.xml)
Jump to: navigation, search
Home icon grey.png   ▶ Remote controls ▶ Keymap

Keymaps are XML base files that define the mappings of keys (keyboard keys, mouse/remote/joysticks buttons and more) to Kodi actions.

Contents

1 Customizing keymaps through the GUI

Users can customize keymaps for remotes in GUI by using the community Keymap Editor add-on.

2 Location of keymaps

User modified keymap files are stored in the "keymaps" folder in the userdata folder:


Note: In older versions of the software (before v14) the kodi directories were named xbmc.
Operative system File path
Android Android/data/org.xbmc.kodi/files/.kodi/userdata/ (see note)
iOS /private/var/mobile/Library/Preferences/Kodi/userdata/
Linux ~/.kodi/userdata/
Mac /Users/<your_user_name>/Library/Application Support/Kodi/userdata/ (see note)
OpenELEC /storage/.kodi/userdata/
Windows Start - type %APPDATA%\kodi\userdata - press <Enter>


2.1 Android location

Sometimes the exact path will differ from device to device. The Android userdata folder is usually inside of "sdcard" so the path might be /sdcard/Android/data/org.xbmc.kodi/files/.kodi/userdata/


2.2 Defaults

Default keymaps are included when Kodi is installed, but users should not edit those install files directly. Instead, place user modified keymaps in the userdata/keymaps/ directory.

Kodi can process multiple keymap files and does so like this:

  • All *.xml files from the default install settings and userdata/kemaps/ 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 the userdata folder add to or override mappings in the global keymap.

By default there will be no files in these locations, so grab one from the link below to make a new one/over-ride: Default keymaps shipped with Kodi

3 Structure

There is one global keymap and several window-specific keymaps.
Kodi 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:

<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>

As you can see, it's divided into a <global> section, and a number of window sections (such as <Home>).
A list of the available window names can be seen here. The WINDOW can also be a custom window formatted as <windowId#> (e. g. <window1113>).
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:

  <keyname>action</keyname>

4 Keynames

Depending on your device you will need to use a specific "keyname".

4.1 Gamepads

An up to date list of the available actions can be found in the source code of Kodi in ButtonTranslator.cpp where the TranslateGamepadString() function does the work.

Example:

<gamepad>
  <A>Select</A>
</gamepad>

4.2 Remotes

An up to date list of the available actions can be found in the source code of Kodi in ButtonTranslator.cpp where the TranslateRemoteString() function does the work.

Example:

<remote>
  <play>Play</play>
</remote>

4.3 Universal Remotes

To map Universal Remote buttons using the RCA infrared protocol, you may add <universalremote> sections to keymap.xml.
In this case, the tags used are <obc#> where # is the original button code (OBC) of the button.
You would put it inside a <universalremote> section in the <window> or <global> sections.

Example:

<universalremote>
  <obc148>Stop</obc148>
</universalremote>
Will map Stop Playback to the RCA DVD repeat button <obc148>, which is not used by Kodi 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 kodi.log file (~/.kodi/temp/kodi.log on Linux) when debugging is enabled in the GUI (Settings -> debugging ). The list of pre-defined OBC codes can be found at XBIRRemote.h.

4.4 Keyboards

Valid keyboard keymap syntax includes <keyname>, <key id="">, and <keyname mod="">.

Mapping for arbitrary key codes can be configured using the following syntax:

<key id="123">

where "123" is replaced by the key code.

A full list of valid keynames can be found in

Example:

<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 Kodi keynames above. >
</keyboard>
Modifiers
  • shift
  • alt
  • ctrl

4.5 Custom Joystick Configuration

Custom joysticks are defined using the following syntax:

<joystick name="JOYSTICK NAME">
  <button id="BUTTON ID">action</button>
</joystick>

Getting the joystick name:

  • On linux: 'cat /proc/bus/input/devices'
  • or see your Kodi log file

Getting the button ids:

  • 'id' is the button ID used by SDL. Joystick button ids of connected joysticks appear in kodi.log when they are pressed. Use your log to map custom buttons to actions.

Example:

<joystick name="PLAYSTATION(R)3 Controller (00:1B:FB:F6:E0:F2)">
  <button id="15">Select</button>
  <button id="14">PreviousMenu</button>
</joystick>

5 Commands

The most recent available actions can be found in the TranslateActionString() method in in ButtonTranslator.cpp.

For those debugging integer action codes from the debug log, the mapping of action codes to constants is in Key.h

In addition to the following actions, you can also use Built-in scripting in Kodi.

5.1 Actions

Main actions
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.
enter ? (ACTION_ENTER) Not sure about all areas, but on some windows this will be the same as the "done" on screen button.
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.
back Go back in navigation.
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 next video in playlist. If no playlist, then skip to next chapter in video.
SkipPrevious Skip to previous video in playlist. If no playlist, then skip to previous chapter in video.
FullScreen Toggles full-screen content playback (either visualisation or video playback)
togglefullscreen Changes whether the app is displayed full-screen or windowed (on windowing OSs)
AspectRatio Toggle through the various aspect ratio modes (Normal is the preferred option).
StepForward Step forward 30 seconds in a video.
StepBack Step back 30 seconds in a video.
BigStepForward Step forward 10 minutes in video.
BigStepBack Step back 10 minutes in video.
SmallStepBack Step back 7 seconds in the current video.
Seek(##) A definable seek action, where ## is a number of seconds. For example, to make a seek action that goes forward 25 seconds use Seek(25), and to make a seek action that goes back 36 seconds use Seek(-36). (v15 Isengard addition)
ChapterOrBigStepForward Go to to next chapter in video. If no chapters, then step forward 10 minutes in video. (v13 Gotham addition)
ChapterOrBigStepBack Go to previous chapter in video, If no chapters, then step back 10 minutes in video. (v13 Gotham addition)
NextScene Go to next scene that is marked in an EDL file.
PreviousScene Go to previous scene that is marked in an EDL file.
OSD Toggles the OSD while playing an item.
osdleft ? (ACTION_OSD_SHOW_LEFT)
osdright ? (ACTION_OSD_SHOW_RIGHT)
osdup ? (ACTION_OSD_SHOW_UP)
osddown ? (ACTION_OSD_SHOW_DOWN)
osdselect ? (ACTION_OSD_SHOW_SELECT)
osdvalueplus ? (ACTION_OSD_SHOW_VALUE_PLUS)
osdvalueminus ? (ACTION_OSD_SHOW_VALUE_MIN)
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.
subtitleshiftup ? (ACTION_SUBTITLE_VSHIFT_UP)
subtitleshiftdown ? (ACTION_SUBTITLE_VSHIFT_DOWN)
subtitlealign ? (ACTION_SUBTITLE_ALIGN)
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
Filter Opens the mediafilter dialog in the video and musiclibrary. Editor note: seems to only use the advanced filter for the video library?
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
rotateccw ? (ACTION_ROTATE_PICTURE_CCW)
Close Used to close a dialog
subtitledelay ? (ACTION_SUBTITLE_DELAY)
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)
audiodelay ? (ACTION_AUDIO_DELAY)
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
Number(0-9) Used to input the number 0 through 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).
Note: You may want to use playpause instead of just "play", since it will no longer pause media already being played.
PlayPause Play the selected item (or folder of items). Will also pause media when something is already playing.
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.
ShutDown() Shutdown and power off
VolumeUp Increase the volume of playback.
VolumeDown Decrease the volume of playback.
Mute Mute the volume.
volampup ? (ACTION_VOLAMP_UP)
volampdown ? (ACTION_VOLAMP_DOWN)
audiotoggledigital ? (ACTION_TOGGLE_DIGITAL_ANALOG)
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
visualisationpresetlist Shows the visualisation preset list
ShowPreset Shows the current visualisation preset (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.
JumpSMS(2-9) Jump through a list using SMS-style input (eg press 2 twice to jump to the B's.)
FilterSMS(2-9) Filter a list in music or videos using SMS-style input.
verticalshiftup ? (ACTION_VSHIFT_UP)
verticalshiftdown ? (ACTION_VSHIFT_DOWN)
scanitem ? (ACTION_SCAN_ITEM)
reloadkeymaps Reload keymap, loading any changes made to the keymap since started up.
increasevisrating ? (ACTION_VIS_RATE_PRESET_PLUS)
decreasevisrating ? (ACTION_VIS_RATE_PRESET_MINUS)
firstpage ? (ACTION_FIRST_PAGE)
lastpage ? (ACTION_LAST_PAGE)
guiprofile ? (ACTION_GUIPROFILE_BEGIN)
red ? (ACTION_TELETEXT_RED
green ? (ACTION_TELETEXT_GREEN)
yellow ? (ACTION_TELETEXT_YELLOW)
blue ? (ACTION_TELETEXT_BLUE)
toggledebug toggle debugging mode for the log file
ActivateWindow(MyVideos) Go to My Videos.
ActivateWindow(MyMusic) Go to My Music.
ActivateWindow(MyPictures) Go to My Pictures.
ActivateWindow(Home) Go to Home window. Go back from within a context in the UI.
ActivateWindow(type,path to playlist) Opens the window for the desired playlist.
ActivateWindow(windowid) Go a window specified by ''windowid. See the list of window IDs for the list of valid values. Not all ids will work on all themes.
createbookmark Creates a bookmark of the currently playing Video (v13 Gotham addition)
createepisodebookmark Creates an episode bookmark of the currently playing multi-episode file (e.g. S01E01E02). An episode bookmark specifies the end of the one and the begin of the other episode (v13 Gotham addition)
NextChannelGroup Goes to the next channel group when using PVR/live TV. Works only within the "PVROSDChannels" window. (v13 Gotham addition)
PreviousChannelGroup Goes to the previous channel group when using PVR/live TV. Works only within the "PVROSDChannels" window. (v13 Gotham addition)
PlayPvr PVR something ? (v13 Gotham addition)
PlayPvrTV PVR something ? (v13 Gotham addition)
PlayPvrRadio PVR something ? (v13 Gotham addition)
Record PVR record current playing channel or selected item in windows like EPG (v13 Gotham addition)
StereoMode Toggle 3D/Stereoscopic mode (v13 Gotham addition)
ToggleStereoMode Toggle 3D/Stereoscopic mode (v13 Gotham addition)
SwitchPlayer Select player to use, such as internal (DVDPlayer/PAPlayer), UPnP "play using" targets, external players (defined in playercorefactory.xml). (v13 Gotham addition)
UpdateLibrary(video) Update Movie/TV-Show library (only tested with v13 Gotham addition).
Other
Action Description
noop No action. Used to specifically disable a key.


5.2 Functions

Function Description Version
Help This help message (??? probably broken)
Reboot Cold reboots the system (power cycle)
ShutDown Trigger default Shutdown action defined in System Settings
Powerdown Powerdown system
Quit Quits Kodi
Hibernate Hibernate (S4) the System
Suspend Suspends (S3 / S1 depending on bios setting) the System
InhibitIdleShutdown(true/false) Prevent the system to shutdown on idle. v12 Addition
AllowIdleShutdown Allow the system to shutdown on idle. v12 Addition
ActivateScreensaver Starts the screensaver v13 Addition
RestartApp Restarts Kodi (only implemented under Windows and Linux)
Minimize Minimizes Kodi
Reset Reset the system (same as reboot)
Mastermode Runs Kodi in master mode
SetGUILanguage Set GUI Language v13 Addition
ActivateWindow(window[,dir,return]) Opens the given window. The parameter window can either be the window's id, or in the case of a standard window, the window's name. See here for a list of window names, and their respective ids. If, furthermore, the window is Music, Video, Pictures, or Program files, then the optional dir parameter specifies which folder Kodi should default to once the window is opened. This must be a source as specified in sources.xml, or a subfolder of a valid source. For some windows (MusicLibrary and VideoLibrary), the return parameter may be specified, which indicates that Kodi should use this folder as the "root" of the level, and thus the "parent directory" action from within this folder will return the user to where they were prior to the window activating.
ActivateWindowAndFocus(id1, id2,item1, id3,item2) Activate window with id1, first focus control id2 and then focus control id3. if either of the controls is a container, you can specify which item to focus (else, set it to 0). v12 Addition
ReplaceWindow(window,dir) Replaces the current window with the given window. This is the same as ActivateWindow() but it doesn't update the window history list, so when you go back from the new window it will not return to the previous window, rather will return to the previous window's previous window.
ReplaceWindowAndFocus(id1, id2,item1, id3,item2) Replace window with id1, first focus control id2 and then focus control id3. if either of the controls is a container, you can specify which item to focus (else, set it to 0). v13 Addition
TakeScreenshot Takes a Screenshot
RunScript(script[,args]*) Runs the python script. You must specify the full path to the script. If the script is an add-on, you can also execute it using its add-on id. As of 2007/02/24, all extra parameters are passed to the script as arguments and can be accessed by python using sys.argv
StopScript(id) Stop the script by ID or path, if running v12 Addition
RunAppleScript(script[,args]*) Run the specified AppleScript command
RunPlugin(plugin) Runs the plugin. Full path must be specified. Does not work for folder plugins
RunAddon(id) Runs the specified plugin/script
NotifyAll Notify all connected clients v13 Addition
Extract Extracts a specified archive to an optionally specified 'absolute' path.
PlayMedia(media[,isdir][,1],[playoffset=xx]) Plays the media. This can be a playlist, music, or video file, directory, plugin or an Url. The optional parameter ",isdir" can be used for playing a directory. ",1" will start a video in a preview window, instead of fullscreen. If media is a playlist, you can use playoffset=xx where xx is the position to start playback from.
Seek(seconds) Seeks to the specified relative amount of seconds within the current playing media. A negative value will seek backward and a positive value forward. v15 Addition
ShowPicture(picture) Show a picture by its file path/url. v13 Addition
SlideShow(dir [,recursive, [not]random]) Starts a slideshow of pictures in the folder dir. Optional parameters are "recursive", and "random" or "notrandom" parameters. The "recursive" parameter starts a recursive slideshow, adding images from sub-folders. The "random" and "notrandom" parameters override the Randomize setting found in the pictures media window.
RecursiveSlideShow(dir) Run a slideshow from the specified directory, including all subdirs
ReloadSkin() Reloads the current skin – useful for Skinners to use after they upload modified skin files (saves power cycling)
UnloadSkin() Unloads the current skin
RefreshRSS Reload RSS feeds from RSSFeeds.xml
PlayerControl(command) Allows control of music and videos. The command may be one of Play, Stop, Forward, Rewind, Next, Previous, BigSkipForward, BigSkipBackward, SmallSkipForward, SmallSkipBackward, Random, RandomOn, RandomOff, Repeat, RepeatOne, RepeatAll, RepeatOff, Partymode(music) or Partymode(video) or Partymode(path to .xsp file), and Record. Play will either pause, resume, or stop ffwding or rewinding. Random toggles random playback and Repeat cycles through the repeat modes (these both take an optional second parameter, Notify, that notifies the user of the new state). Partymode(music/video) toggles the appropriate partymode, defaults to music if no parameter is given, besides the default music or video partymode you can also pass a path to a custom smartplaylist (.xsp) as parameter.
Playlist.PlayOffset Start playing from a particular offset in the playlist
Playlist.Clear Clear the current playlist
EjectTray() Either opens or closes the DVD tray, depending on its current state
AlarmClock(name,command,time[,silent,loop]) Pops up a dialog asking for the length of time for the alarm (unless the parameter time is specified), and starts a timer. When the timer runs out, it'll execute the built-in command (the parameter command) if it is specified, otherwise it'll pop up an alarm notice. Add silent to hide the alarm notification. Add loop for the alarm to execute the command each time the specified time interval expires.
CancelAlarm(name[,silent]) Cancel a running alarm. Set silent to true to hide the alarm notification.
Action(action[,window]) Executes an action (same as in keymap) for the given window or the active window if the parameter window is omitted. The parameter window can either be the window's id, or in the case of a standard window, the window's name. See here for a list of window names, and their respective ids.
Notification(header,message[,time,image]) Will display a notification dialog with the specified header and message, in addition you can set the length of time it displays in milliseconds and a icon image.
PlayDVD Will play the inserted CD or DVD media from the DVD-ROM drive.
RipCD Will rip the inserted CD from the DVD-ROM drive.
Skin.ToggleSetting(setting) Toggles the skin setting ?setting? for use with conditional visibility tags containing Skin.HasSetting(setting).
Skin.SetString(string[,value]) Pops up a keyboard dialog and allows the user to input a string which can be used in a label control elsewhere in the skin via the info tag Skin.String(string). If the value parameter is specified, then the keyboard dialog does not pop up, and the string is set directly.
Skin.SetNumeric(numeric[,value]) Pops up a keyboard dialog and allows the user to input a numerical.
Skin.SetPath(string[,value]) Pops up a folder browser and allows the user to select a folder of images to be used in a multi image control else where in the skin via the info tag Skin.String(string). If the value parameter is specified, then the file browser dialog does not pop up, and the path is set directly.
Skin.Theme Cycles the skin theme. Skin.theme(-1) will go backwards.
Skin.SetImage(string[,value,path]) Pops up a file browser and allows the user to select an image file to be used in an image control elsewhere in the skin via the info tag Skin.String(string). If the value parameter is specified, then the file browser dialog does not pop up, and the image path is set directly. the path option allows you to open the file browser in the specified folder.
Skin.SetLargeImage(string[,value]) Pops up a file browser and allows the user to select an large image file to be used in an image control else where in the skin via the info tag Skin.String(string). If the value parameter is specified, then the file browser dialog does not pop up, and the image path is set directly.
Skin.SetFile(string,mask,folderpath) Pops up a folder browser and allows the user to select a file off the hard-disk to be used else where in the skin via the info tag Skin.String(string). If the mask parameter is specified, then the file browser will only search for the extension specified (.avi,.mp3,.m3u,.png,.bmp,etc.,etc.). To use multiple extensions separate them using "|" minus quotes. If the folderpath parameter is set the file browser will start in that folder.
Skin.SetAddon(string,type) Pops up a select dialog and allows the user to select an add-on of the given type to be used elsewhere in the skin via the info tag Skin.String(string). The most common types are xbmc.addon.video, xbmc.addon.audio, xbmc.addon.image and xbmc.addon.executable.
Skin.SetBool(setting) Sets the skin setting ?setting? to true, for use with the conditional visibility tags containing Skin.HasSetting(setting). The settings are saved per-skin in settings.xml just like all the other Kodi settings.
Skin.Reset(setting) Resets the skin setting ?setting?. If ?setting? is a bool setting (i.e. set via SetBool or ToggleSetting) then the setting is reset to false. If ?setting? is a string (Set via SetString, SetImage, or SetPath) then it is set to empty.
Skin.ResetSettings Resets all the above skin settings to their defaults (toggles all set to false, strings all set to empty.)
Mute Mutes (or unmutes) the volume.
SetVolume(percent[,showvolumebar]) Sets the volume to the percentage specified. Optionally, show the Volume Dialog in Kodi when setting the volume.
Dialog.Close(dialog[,force]) Close a dialog. Set force to true to bypass animations. Use (all,true) to close all opened dialogs at once.
System.LogOff Log off current user.
System.Exec Execute shell commands.
System.ExecWait Execute shell commands and freezes Kodi until shell is closed.
Resolution Change Kodi's Resolution.
SetFocus(id,position) Will make a list with the "id" specified in the command gain focus at "position" number in its list. Alias SetFocus(id,position)
UpdateLibrary(database,[path]) Takes either "video" or "music" as a parameter to begin updating the corresponding database. For "video" you can additionally specify a specific path to be scanned.
CleanLibrary(database) This funtion will perform a number of 'cleanup' tasks on your video database and can be run if you have moved, deleted or renamed files. Takes either "video" or "music" as a parameter to begin cleaning the corresponding database.
exportlibrary(music,false,filepath) The music library will be exported to a single file stored at filepath location.
exportlibrary(video,true,thumbs,overwrite,actorthumbs) The video library is exported to multiple files with the given options. Here thumbs, overwrite and actorthumbs are boolean values (true or false).
PageDown Send a page down event to the pagecontrol with given id.
PageUp Send a page up event to the pagecontrol with given id.
Container.Refresh Refresh current listing.
Container.Update Update current listing. Send Container.Update(path,replace) to reset the path history.
Container.NextViewMode Select the next view mode.
Container.PreviousViewMode Select the previous view mode.
Container.SetViewMode(id) Set the current view mode (list, icons etc.) to the given container id.
Container.NextSortMethod Change to the next sort method.
Container.PreviousSortMethod Change to the previous sort method.
Container.SetSortMethod(id) Change to the specified sort method. (For list of ID's see List of sort methods below)
Container.SortDirection Toggle the sort direction.
Control.Move(id,offset) Will make a Container with the "id" specified in the command move focus by "offset".
Control.SetFocus(id,position) Will make a list with the "id" specified in the command gain focus at "position" number in its list. Alias SetFocus(id,position)
Control.Message(id,message,[windowid]) Sends a given message to a control in a given window (or active window if omitted). Messages can be movedown, moveup, pagedown, pageup, click.
SendClick(windowid,id) Sends a click to a control in a given window (or active window if omitted).
LoadProfile(profilename,[prompt]) Load the specified profile. If prompt is not specified, and a password would be required for the requested profile, this command will silently fail. If promp' is specified and a password is required, a password dialog will be shown.
SetProperty(key,value[,id]) Sets a window property for the current window (key,value), or the specified window (key,value,id).
ClearProperty(key[,id]) Clears a window property for the current focused window/dialog(key), or the specified window (key,id).
PlayWith() Play the selected item with the specified player core.
WakeOnLan(mac) Sends the wake-up packet to the broadcast address for the specified MAC address (Format: FF:FF:FF:FF:FF:FF or FF-FF-FF-FF-FF-FF).
Addon.Default.OpenSettings Open a settings dialog for the default addon of the given type
Addon.Default.Set Open a select dialog to allow choosing the default addon of the given type
Addon.OpenSettings(id) Open a settings dialog for the addon of the given id
UpdateAddonRepos Triggers a forced update of enabled add-on repositories.
UpdateLocalAddons Triggers a scan of local add-on directories.
ToggleDPMS Toggle DPMS mode manually
CECToggleState Toggle state of playing device via a CEC peripheral v13 Addition
CECActivateSource Wake up playing device via a CEC peripheral v13 Addition
CECStandby Put playing device on standby via a CEC peripheral v13 Addition
Weather.Refresh Force weather data refresh
Weather.LocationNext Switch to next weather location
Weather.LocationPrevious Switch to previous weather location
Weather.LocationSet Switch to given weather location (parameter can be 1-3)
LIRC.Stop Removes Kodi as a LIRC client.
LIRC.Start Adds Kodi as a LIRC client.
LIRC.Send(command) Sends a command to LIRC, syntax is the lirc protocol without the newline.
Example: LIRC.Send(SEND_ONCE Onkyo_RC-453S2 volup)
VideoLibrary.Search Brings up a search dialog which will search the library
ToggleDebug Enables/disables debug mode v12 Addition
StartPVRManager (Re)Starts the PVR manager v12 Addition
StopPVRManager Stops the PVR manager v12 Addition
StartAndroidActivity(package,[intent,dataType,dataURI]) Launch an Android native app with the given package name. Optional parms (in order): intent, dataType, dataURI. v13 Addition
PreviousChannelGroup Navigate to the previous PVR channel group (in DialogPVRChannelsOSD.xml) v13 Addition
NextChannelGroup Navigate to the next PVR channel group (in DialogPVRChannelsOSD.xml) v13 Addition
settingslevelchange Toggles the visible settings (in SettingsCategory.xml) between 'basic', 'standard', 'advanced and 'expert' v13 Addition
SetStereoMode Changes the stereo mode of the GUI. Params can be: toggle, next, previous, select, tomono or any of the supported stereomodes (off, split_vertical, split_horizontal, row_interleaved, hardware_based, anaglyph_cyan_red, anaglyph_green_magenta, monoscopic) v13 Addition
NextStereoMode Changes the stereo mode of the GUI to the next available mode. v13 Addition
PreviousStereoMode Changes the stereo mode of the GUI to the previous available mode. v13 Addition
ToggleStereoMode Toggle the stereoscopic mode of the GUI (on/off). v13 Addition
StereoModeToMono Toggle the stereoscopic mode to 2D. v13 Addition


6 Windows

This table cross-references Window names, Window definitions, Window ID, and the delta Window ID's (this is the delta from the home window.) The code that performs the cross-reference is found in https://github.com/xbmc/xbmc/blob/master/xbmc/ButtonTranslator.cpp and https://github.com/xbmc/xbmc/blob/master/xbmc/guilib/WindowIDs.h.

  • keymap.xml uses the Window name.
  • Kodi's C++ code uses the Window definitions and Window ID's.
  • ActivateWindow() should use the Window name.
  • sounds.xml should use the window name

You can use secondary parameters with all media windows, as can be seen here:

Example:

  • You want a button in your skin or on your remote taking you directly to the movie listing you let that button do
ActivateWindow(Videos,videodb://movies/titles/)



Name Definition Window ID Delta window ID source XML file
home WINDOW_HOME 10000 0 Home.xml
programs WINDOW_PROGRAMS 10001 1 MyPrograms.xml
pictures WINDOW_PICTURES 10002 2 MyPics.xml
filemanager WINDOW_FILES 10003 3 FileManager.xml
settings WINDOW_SETTINGS_MENU 10004 4 Settings.xml
music WINDOW_MUSIC 10005 5 None – this is just a wrapper for the current My Music view (who's IDs are 501 and 502)
video WINDOW_VIDEOS 10006 6 None – this is just a wrapper for the current My Video view (who's IDs are 21-25)
systeminfo WINDOW_SYSTEM_INFORMATION 10007 7 SettingsSystemInfo.xml
screencalibration WINDOW_MOVIE_CALIBRATION 10011 11 SettingsScreenCalibration.xml
picturessettings WINDOW_SETTINGS_MYPICTURES 10012 12 SettingsCategory.xml
programssettings WINDOW_SETTINGS_MYPROGRAMS 10013 13 SettingsCategory.xml
weathersettings WINDOW_SETTINGS_MYWEATHER 10014 14 SettingsCategory.xml
musicsettings WINDOW_SETTINGS_MYMUSIC 10015 15 SettingsCategory.xml
systemsettings WINDOW_SETTINGS_SYSTEM 10016 16 SettingsCategory.xml
videossettings WINDOW_SETTINGS_MYVIDEOS 10017 17 SettingsCategory.xml
servicesettings WINDOW_SETTINGS_SERVICE 10018 18 SettingsCategory.xml
appearancesettings WINDOW_SETTINGS_APPEARANCE 10019 19 SettingsCategory.xml
pvrsettings WINDOW_SETTINGS_MYPVR 10021 21 SettingsCategory.xml
videos WINDOW_VIDEO_NAV 10025 25 MyVideoNav.xml - Replaces the following .XML files: MyVideoGenre (WINDOW_VIDEO_GENRE), MyVideoActors (WINDOW_VIDEO_ACTOR), MyVideoYear (WINDOW_VIDEO_YEAR), MyVideoTitle (WINDOW_VIDEO_TITLE)
videoplaylist WINDOW_VIDEO_PLAYLIST 10028 28 MyVideoPlaylist.xml
loginscreen WINDOW_LOGINSCREEN 10029 29 LoginScreen.xml
profiles WINDOW_SETTINGS_PROFILES 10034 34 SettingsProfile.xml
addonbrowser WINDOW_ADDON_BROWSER 10040 40 AddonBrowser.xml
yesnodialog WINDOW_DIALOG_YES_NO 10100 100 DialogYesNo.xml
progressdialog WINDOW_DIALOG_PROGRESS 10101 101 DialogProgress.xml
virtualkeyboard WINDOW_DIALOG_KEYBOARD 10103 103 DialogKeyboard.xml
volumebar WINDOW_DIALOG_VOLUME_BAR 10104 104 DialogVolumeBar.xml
contextmenu WINDOW_DIALOG_CONTEXT_MENU 10106 106 DialogContextMenu.xml
infodialog WINDOW_DIALOG_KAI_TOAST 10107 107 DialogKaiToast.xml
numericinput WINDOW_DIALOG_NUMERIC 10109 109 DialogNumeric.xml
shutdownmenu WINDOW_DIALOG_BUTTON_MENU 10111 111 DialogButtonMenu.xml
mutebug WINDOW_DIALOG_MUTE_BUG 10113 113 DialogMuteBug.xml
playercontrols WINDOW_DIALOG_PLAYER_CONTROLS 10114 114 PlayerControls.xml
seekbar WINDOW_DIALOG_SEEK_BAR 10115 115 DialogSeekBar.xml
musicosd WINDOW_DIALOG_MUSIC_OSD 10120 120 MusicOSD.xml
visualisationpresetlist WINDOW_DIALOG_VIS_PRESET_LIST 10122 122 VisualisationPresetList.xml
osdvideosettings WINDOW_DIALOG_VIDEO_OSD_SETTINGS 10123 123 VideoOSDSettings.xml
osdaudiosettings WINDOW_DIALOG_AUDIO_OSD_SETTINGS 10124 124 VideoOSDSettings.xml
videobookmarks WINDOW_DIALOG_VIDEO_BOOKMARKS 10125 125 VideoOSDBookmarks.xml
filebrowser WINDOW_DIALOG_FILE_BROWSER 10126 126 FileBrowser.xml
networksetup WINDOW_DIALOG_NETWORK_SETUP 10128 128 DialogNetworkSetup.xml
mediasource WINDOW_DIALOG_MEDIA_SOURCE 10129 129 DialogMediaSource.xml
profilesettings WINDOW_PROFILE_SETTINGS 10130 130 ProfileSettings.xml
locksettings WINDOW_LOCK_SETTINGS 10131 131 LockSettings.xml
contentsettings WINDOW_DIALOG_CONTENT_SETTINGS 10132 132 DialogContentSettings.xml
favourites WINDOW_DIALOG_FAVOURITES 10134 134 DialogFavourites.xml
songinformation WINDOW_DIALOG_SONG_INFO 10135 135 DialogSongInfo.xml
smartplaylisteditor WINDOW_DIALOG_SMART_PLAYLIST_EDITOR 10136 136 SmartPlaylistEditor.xml
smartplaylistrule WINDOW_DIALOG_SMART_PLAYLIST_RULE 10137 137 SmartPlaylistRule.xml
busydialog WINDOW_DIALOG_BUSY 10138 138 DialogBusy.xml
pictureinfo WINDOW_DIALOG_PICTURE_INFO 10139 139 DialogPictureInfo.xml
addonsettings WINDOW_DIALOG_ADDON_SETTINGS 10140 140 DialogAddonSettings.xml
accesspoints WINDOW_DIALOG_ACCESS_POINTS 10141 141 DialogAccessPoints.xml
fullscreeninfo WINDOW_DIALOG_FULLSCREEN_INFO 10142 142 DialogFullScreenInfo.xml
karaokeselector WINDOW_DIALOG_KARAOKE_SONGSELECT 10143 143 DialogKaraokeSongSelector.xml
karaokelargeselector WINDOW_DIALOG_KARAOKE_SELECTOR 10144 144 DialogKaraokeSongSelectorLarge.xml
sliderdialog WINDOW_DIALOG_SLIDER 10145 145 DialogSlider.xml
addoninformation WINDOW_DIALOG_ADDON_INFO 10146 146 DialogAddonInfo.xml
textviewer WINDOW_DIALOG_TEXT_VIEWER 10147 147 DialogTextViewer.xml
peripherals WINDOW_DIALOG_PERIPHERAL_MANAGER 10149 149 DialogPeripheralManager.xml
peripheralsettings WINDOW_DIALOG_PERIPHERAL_SETTINGS 10150 150 DialogPeripheralSettings.xml
extendedprogressdialog WINDOW_DIALOG_EXT_PROGRESS 10151 151 DialogExtendedProgressBar.xml
mediafilter WINDOW_DIALOG_MEDIA_FILTER 10152 152 DialogMediaFilter.xml
subtitlesearch WINDOW_DIALOG_SUBTITLES 10153 153 DialogSubtitles.xml
musicplaylist WINDOW_MUSIC_PLAYLIST 10500 500 MyMusicPlaylist.xml
musicfiles WINDOW_MUSIC_FILES 10501 501 MyMusicSongs.xml
musiclibrary WINDOW_MUSIC_NAV 10502 502 MyMusicNav.xml
musicplaylisteditor WINDOW_MUSIC_PLAYLIST_EDITOR 10503 503 MyMusicPlaylistEditor.xml
FullscreenLiveTV WINDOW_FULLSCREEN_LIVETV 10614 614 None (shortcut to fullscreenvideo)
tvchannels WINDOW_TV_CHANNELS 10615 615 MyPVRChannels.xml
tvrecordings WINDOW_TV_RECORDINGS 10616 616 MyPVRRecordings.xml
tvguide WINDOW_TV_GUIDE 10617 617 MyPVRGuide.xml
tvtimers WINDOW_TV_TIMERS 10618 618 MyPVRTimers.xml
tvsearch WINDOW_TV_SEARCH 10619 619 MyPVRSearch.xml
radiochannels WINDOW_RADIO_CHANNELS 10620 620 MyPVRChannels.xml
radiorecordings WINDOW_RADIO_RECORDINGS 10621 621 MyPVRRecordings.xml
radioguide WINDOW_RADIO_GUIDE 10622 622 MyPVRGuide.xml
radiotimers WINDOW_RADIO_TIMERS 10623 623 MyPVRTimers.xml
radiosearch WINDOW_RADIO_SEARCH 10624 624 MyPVRSearch.xml
pvrguideinfo WINDOW_DIALOG_PVR_GUIDE_INFO 10602 602 DialogPVRGuideInfo.xml
pvrrecordinginfo WINDOW_DIALOG_PVR_RECORDING_INFO 10603 603 DialogPVRRecordingInfo.xml
pvrtimersetting WINDOW_DIALOG_PVR_TIMER_SETTING 10604 604 DialogPVRTimerSettings.xml
pvrgroupmanager WINDOW_DIALOG_PVR_GROUP_MANAGER 10605 605 DialogPVRGroupManager.xml
pvrchannelmanager WINDOW_DIALOG_PVR_CHANNEL_MANAGER 10606 606 DialogPVRChannelManager.xml
pvrguidesearch WINDOW_DIALOG_PVR_GUIDE_SEARCH 10607 607 DialogPVRGuideSearch.xml
pvrosdchannels WINDOW_DIALOG_PVR_OSD_CHANNELS 10610 610 DialogPVRChannelsOSD.xml
pvrosdguide WINDOW_DIALOG_PVR_OSD_GUIDE 10611 611 DialogPVRGuideOSD.xml
Custom Skin Windows - - 1100–1199 custom*.xml
selectdialog WINDOW_DIALOG_SELECT 12000 2000 DialogSelect.xml
musicinformation WINDOW_MUSIC_INFO 12001 2001 DialogAlbumInfo.xml
okdialog WINDOW_DIALOG_OK 12002 2002 DialogOK.xml
movieinformation WINDOW_VIDEO_INFO 12003 2003 DialogVideoInfo.xml
fullscreenvideo WINDOW_FULLSCREEN_VIDEO 12005 2005 VideoFullScreen.xml
visualisation WINDOW_VISUALISATION 12006 2006 MusicVisualisation.xml
slideshow WINDOW_SLIDESHOW 12007 2007 SlideShow.xml
filestackingdialog WINDOW_DIALOG_FILESTACKING 12008 2008 DialogFileStacking.xml
karaoke WINDOW_KARAOKELYRICS 12009 2009 MusicKaraokeLyrics.xml
weather WINDOW_WEATHER 12600 2600 MyWeather.xml
screensaver WINDOW_SCREENSAVER 12900 2900 none
videoosd WINDOW_OSD 12901 2901 VideoOSD.xml
videomenu WINDOW_MEDIA_MENU 12902 2902 none
startup WINDOW_STARTUP_ANIM 12999 2999 Startup.xml
skinsettings - - - SkinSettings.xml
startwindow - - - shortcut to the current startwindow
In addition, there are the following "special" windows whose id is not really a concern (and you'll notice isn't unique)
pointer - - 105 Pointer.xml
musicoverlay WINDOW_MUSIC_OVERLAY 12903 2903 MusicOverlay.xml
videooverlay WINDOW_VIDEO_OVERLAY 12904 2904 VideoOverlay.xml
(Python Windows) - - 3000–3099 none
addon - - 4000–4099 none


7 Additional keys

Other keys that can be mapped to actions.

7.1 Media keyboards/remotes

  • browser_back
  • browser_forward
  • browser_refresh
  • browser_stop
  • browser_search
  • browser_favorites
  • browser_home
  • volume_mute
  • volume_down
  • volume_up
  • next_track
  • prev_track
  • stop
  • play_pause
  • launch_mail
  • launch_media_select
  • launch_app1
  • launch_app2
  • play
  • pause
  • fastforward
  • rewind
  • channelup
  • channeldown

7.2 Mouse actions

  • leftclick
  • rightclick
  • middleclick
  • doubleclick
  • wheelup
  • wheeldown
  • mousemove
  • mousedrag
  • mousedragstart
  • mousedragend
  • mouserdrag
  • mouserdragstart
  • mouserdragend

8 See also

Development:

Personal tools
Namespaces

Variants
Actions
Navigation
Wiki help
Toolbox