summaryrefslogtreecommitdiffstats
path: root/system/keymaps
diff options
context:
space:
mode:
Diffstat (limited to 'system/keymaps')
-rw-r--r--system/keymaps/appcommand.xml31
-rw-r--r--system/keymaps/customcontroller.AppleRemote.xml202
-rw-r--r--system/keymaps/customcontroller.Harmony.xml343
-rw-r--r--system/keymaps/customcontroller.SiriRemote.xml147
-rw-r--r--system/keymaps/gamepad.xml322
-rw-r--r--system/keymaps/joystick.xml415
-rw-r--r--system/keymaps/keyboard.xml849
-rw-r--r--system/keymaps/mouse.xml68
-rw-r--r--system/keymaps/nyxboard/keyboard.xml15
-rw-r--r--system/keymaps/osmc/osmc_remote.xml576
-rw-r--r--system/keymaps/remote.xml720
-rw-r--r--system/keymaps/touchscreen.xml133
-rw-r--r--system/keymaps/wetek-play/keyboard.xml275
13 files changed, 4096 insertions, 0 deletions
diff --git a/system/keymaps/appcommand.xml b/system/keymaps/appcommand.xml
new file mode 100644
index 0000000..d8ac1d2
--- /dev/null
+++ b/system/keymaps/appcommand.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<keymap>
+ <global>
+ <appcommand>
+ <browser_back>Back</browser_back>
+ <browser_forward/>
+ <browser_refresh/>
+ <browser_stop>Stop</browser_stop>
+ <browser_search/>
+ <browser_favorites>ActivateWindow(FavouritesBrowser)</browser_favorites>
+ <browser_home>FirstPage</browser_home>
+ <volume_mute/>
+ <volume_down/>
+ <volume_up/>
+ <next_track>SkipNext</next_track>
+ <prev_track>SkipPrevious</prev_track>
+ <stop>Stop</stop>
+ <play_pause>PlayPause</play_pause>
+ <launch_mail/>
+ <launch_media_select>ActivateWindow(Music)</launch_media_select>
+ <launch_app1>ActivateWindow(Programs)</launch_app1>
+ <launch_app2>ActivateWindow(Programs)</launch_app2>
+ <play>Play</play>
+ <pause>Pause</pause>
+ <fastforward>FastForward</fastforward>
+ <rewind>Rewind</rewind>
+ <channelup>PageUp</channelup>
+ <channeldown>PageDown</channeldown>
+ </appcommand>
+ </global>
+</keymap>
diff --git a/system/keymaps/customcontroller.AppleRemote.xml b/system/keymaps/customcontroller.AppleRemote.xml
new file mode 100644
index 0000000..a06cf59
--- /dev/null
+++ b/system/keymaps/customcontroller.AppleRemote.xml
@@ -0,0 +1,202 @@
+<?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 <button id="6">ActivateWindow(Music)</button> -->
+<!-- would automatically go to Music on the press of the "Menu" 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 -->
+<!-- -->
+<!-- To map keys from other remotes using the RCA protocol, you may add -->
+<!-- <customcontroller name="AppleRemote"> blocks. -->
+<!-- In this case, the tags used are <button id=""#> where # is the original button code -->
+<!-- (OBC) of the key. -->
+<!-- You set it up by adding a <customcontroller name="AppleRemote"> block to the window -->
+<!-- or <global> section: -->
+<!-- <customcontroller name="AppleRemote"> -->
+<!-- <button id="45">Stop</button> -->
+<!-- </customcontroller> -->
+<!-- -->
+<!-- Button Ids: -->
+<!-- 'id' is the button ID used by SDL. The key ids recognized from your remote appears -->
+<!-- in the log file for each button pressed and when debug mode is enabled. -->
+<!-- Use your log to discover and map custom buttons to actions. -->
+<keymap>
+ <global>
+ <customcontroller name="AppleRemote">
+ <!-- plus --> <button id="1">Up</button>
+ <!-- minus --> <button id="2">Down</button>
+ <!-- left --> <button id="3">Left</button>
+ <!-- right --> <button id="4">Right</button>
+ <!-- center --> <button id="5">Select</button>
+ <!-- menu --> <button id="6">Back</button>
+ <!-- hold center--> <button id="7">Fullscreen</button>
+ <!-- hold menu --> <button id="8">ContextMenu</button>
+
+ <!-- old buttons for ATV1 <2.2, used on OSX -->
+ <!-- hold left --> <button id="9">Left</button>
+ <!-- hold right --> <button id="10">Right</button>
+
+ <!-- new aluminium remote buttons -->
+ <!-- play/pause --> <button id="12">PlayPause</button>
+
+ <!-- Additional buttons via Harmony Apple TV remote profile - these are also the learned buttons on Apple TV 2gen-->
+ <!-- pageup --> <button id="13">PageUp</button>
+ <!-- pagedown --> <button id="14">PageDown</button>
+ <!-- pause --> <button id="15">Pause</button>
+ <!-- play2 --> <button id="16">Play</button>
+ <!-- stop --> <button id="17">Stop</button>
+ <!-- fast fwd --> <button id="18">FastForward</button>
+ <!-- rewind --> <button id="19">Rewind</button>
+ <!-- skip fwd --> <button id="20">SkipNext</button>
+ <!-- skip back --> <button id="21">SkipPrevious</button>
+
+ <!-- Learned remote buttons (ATV1 >2.3) -->
+ <!-- Play --> <button id="70">Play</button>
+ <!-- Pause --> <button id="71">Pause</button>
+ <!-- Stop --> <button id="72">Stop</button>
+ <!-- Previous --> <button id="73">SkipPrevious</button>
+ <!-- Next --> <button id="74">SkipNext</button>
+ <!-- Rewind --> <button id="75">Rewind</button>
+ <!-- Forward --> <button id="76">FastForward</button>
+ <!-- Return --> <button id="77">OSD</button>
+ <!-- Enter --> <button id="78">ShowVideoMenu</button>
+
+ <!-- few gestures from Apple's iPhone Remote (ATV1 > 2.3 ?) -->
+ <!-- SwipeLeft --> <button id="80">Left</button>
+ <!-- SwipeRight --> <button id="81">Right</button>
+ <!-- SwipeUp --> <button id="82">Up</button>
+ <!-- SwipeDown --> <button id="83">Down</button>
+
+ <!-- FlickLeft --> <button id="85">Left</button>
+ <!-- FlickRight --> <button id="86">Right</button>
+ <!-- FlickUp --> <button id="87">Up</button>
+ <!-- FlickDown --> <button id="88">Down</button>
+
+ </customcontroller>
+ </global>
+ <Home>
+ <customcontroller name="AppleRemote">
+ <button id="6">ActivateWindow(FavouritesBrowser)</button>
+ <button id="8">ActivateWindow(shutdownmenu)</button>
+ </customcontroller>
+ </Home>
+ <FullscreenVideo>
+ <customcontroller name="AppleRemote">
+ <button id="1">VolumeUp</button>
+ <button id="2">VolumeDown</button>
+ <button id="3">StepBack</button>
+ <button id="4">StepForward</button>
+ <button id="5">Pause</button>
+ <button id="6">Stop</button>
+ <button id="7">OSD</button>
+ <button id="8">Fullscreen</button>
+ <button id="9">Rewind</button>
+ <button id="10">FastForward</button>
+ <!-- pageup --> <button id="13">ChapterOrBigStepForward</button>
+ <!-- pagedown --> <button id="14">ChapterOrBigStepBack</button>
+ <!-- SwipeLeft --> <button id="80">StepBack</button>
+ <!-- SwipeRight --> <button id="81">StepForward</button>
+ <!-- SwipeUp --> <button id="82">BigStepForward</button>
+ <!-- SwipeDown --> <button id="83">BigStepBack</button>
+ <!-- FlickLeft --> <button id="85">Rewind</button>
+ <!-- FlickRight --> <button id="86">FastForward</button>
+ <!-- FlickUp --> <button id="87">BigStepForward</button>
+ <!-- FlickDown --> <button id="88">BigStepBack</button>
+ </customcontroller>
+ </FullscreenVideo>
+ <FullscreenLiveTV>
+ <customcontroller name="AppleRemote">
+ <button id="3">ChannelDown</button>
+ <button id="4">ChannelUp</button>
+ <!-- pageup --> <button id="13">ChannelUp</button>
+ <!-- pagedown --> <button id="14">ChannelDown</button>
+ </customcontroller>
+ </FullscreenLiveTV>
+ <FullscreenRadio>
+ <customcontroller name="AppleRemote">
+ <button id="3">ChannelDown</button>
+ <button id="4">ChannelUp</button>
+ <!-- pageup --> <button id="13">ChannelUp</button>
+ <!-- pagedown --> <button id="14">ChannelDown</button>
+ </customcontroller>
+ </FullscreenRadio>
+ <Visualisation>
+ <customcontroller name="AppleRemote">
+ <button id="1">VolumeUp</button>
+ <button id="2">VolumeDown</button>
+ <button id="3">SkipPrevious</button>
+ <button id="4">SkipNext</button>
+ <button id="5">Pause</button>
+ <button id="6">Fullscreen</button>
+ <button id="7">OSD</button>
+ <button id="8">Stop</button>
+ <!-- SwipeLeft --> <button id="80">SkipPrevious</button>
+ <!-- SwipeRight --> <button id="81">SkipNext</button>
+ <!-- FlickLeft --> <button id="85">SkipPrevious</button>
+ <!-- FlickRight --> <button id="86">SkipNext</button>
+ </customcontroller>
+ </Visualisation>
+ <SlideShow>
+ <customcontroller name="AppleRemote">
+ <button id="1">ZoomIn</button>
+ <button id="2">ZoomOut</button>
+ <button id="3">PreviousPicture</button>
+ <button id="4">NextPicture</button>
+ <button id="6">Stop</button>
+ <button id="7">Info</button>
+ <button id="8">Rotate</button>
+ <!-- SwipeLeft --> <button id="80">PreviousPicture</button>
+ <!-- SwipeRight --> <button id="81">NextPicture</button>
+ <!-- FlickLeft --> <button id="85">PreviousPicture</button>
+ <!-- FlickRight --> <button id="86">NextPicture</button>
+ </customcontroller>
+ </SlideShow>
+ <ScreenCalibration>
+ <customcontroller name="AppleRemote">
+ <button id="5">NextCalibration</button>
+ </customcontroller>
+ </ScreenCalibration>
+ <VideoOSD>
+ <customcontroller name="AppleRemote">
+ <button id="7">Back</button>
+ </customcontroller>
+ </VideoOSD>
+ <VideoMenu>
+ <customcontroller name="AppleRemote">
+ <button id="5">Select</button>
+ <button id="6">Stop</button>
+ <button id="7">OSD</button>
+ <button id="8"/>
+ </customcontroller>
+ </VideoMenu>
+ <Videos>
+ <customcontroller name="AppleRemote">
+ <button id="7">Info</button>
+ </customcontroller>
+ </Videos>
+ <PictureInfo>
+ <customcontroller name="AppleRemote">
+ <button id="3">Left</button>
+ <button id="4">Right</button>
+ <!-- SwipeLeft --> <button id="80">Left</button>
+ <!-- SwipeRight --> <button id="81">Right</button>
+ <!-- FlickLeft --> <button id="85">Left</button>
+ <!-- FlickRight --> <button id="86">Right</button>
+ </customcontroller>
+ </PictureInfo>
+</keymap>
diff --git a/system/keymaps/customcontroller.Harmony.xml b/system/keymaps/customcontroller.Harmony.xml
new file mode 100644
index 0000000..77f288d
--- /dev/null
+++ b/system/keymaps/customcontroller.Harmony.xml
@@ -0,0 +1,343 @@
+<?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 <button id="6">ActivateWindow(Music)</button> -->
+<!-- would automatically go to Music on the press of the "Menu" 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 -->
+<!-- -->
+<!-- To map keys from other remotes using the RCA protocol, you may add -->
+<!-- <customcontroller name="Harmony"> blocks. -->
+<!-- In this case, the tags used are <button id=""#> where # is the original button code -->
+<!-- (OBC) of the key. -->
+<!-- You set it up by adding a <customcontroller name="Harmony"> block to the window -->
+<!-- or <global> section: -->
+<!-- <customcontroller name="Harmony"> -->
+<!-- <button id="45">Stop</button> -->
+<!-- </customcontroller> -->
+<!-- -->
+<!-- Button Ids: -->
+<!-- 'id' is the button ID used by SDL. The key ids recognized from your remote appears -->
+<!-- in the log file for each button pressed and when debug mode is enabled. -->
+<!-- Use your log to discover and map custom buttons to actions. -->
+<keymap>
+ <global>
+ <customcontroller name="Harmony">
+ <!-- up --> <button id="101">Up</button>
+ <!-- down --> <button id="102">Down</button>
+ <!-- left --> <button id="103">Left</button>
+ <!-- right --> <button id="104">Right</button>
+ <!-- OK --> <button id="105">Select</button>
+ <!-- menu --> <button id="106">ContextMenu</button>
+ <!-- hold play --> <button id="107">FullScreen</button>
+ <!-- hold menu --> <button id="108">ContextMenu</button>
+ <!-- hold right --> <button id="109">Right</button>
+ <!-- hold left --> <button id="110">Left</button>
+ <!-- Stop --> <button id="115">Stop</button>
+ <!-- Stop Hold --> <key id="117"/>
+ <!-- Play --> <button id="116">Play</button>
+ <!-- Play Hold --> <key id="118"/>
+ <!-- Replay --> <button id="191">SkipPrevious</button>
+ <!-- Skip --> <button id="192">SkipNext</button>
+ <!-- Record --> <button id="152">Screenshot</button>
+ <!-- Rew --> <button id="141">Rewind</button>
+ <!-- Fwd --> <button id="142">FastForward</button>
+ <!-- Pause --> <button id="126">Pause</button>
+ <!-- Prev --> <button id="132">ParentDir</button>
+ <!-- Guide --> <button id="165">FullScreen</button>
+ <!-- Info --> <button id="131">Info</button>
+ <!-- Exit --> <button id="151">PreviousMenu</button>
+ <!-- Channel Up --> <button id="171">PageUp</button>
+ <!-- Channel Down --> <button id="172">PageDown</button>
+ <!-- looks like buttons below are duplicates of those above
+ Arrow Up <button id="171"></button>
+ Arrow Down <button id="172"></button>
+ -->
+ <!-- Volume + --> <button id="121">VolumeUp</button>
+ <!-- Volume - --> <button id="122">VolumeDown</button>
+ <!-- 1 --> <button id="111">Number1</button>
+ <!-- 2 --> <button id="112">Number2</button>
+ <!-- 3 --> <button id="113">Number3</button>
+ <!-- 4 --> <button id="114">Number4</button>
+ <!-- 5 --> <button id="123">Number5</button>
+ <!-- 6 --> <button id="124">Number6</button>
+ <!-- 7 --> <button id="133">Number7</button>
+ <!-- 8 --> <button id="134">Number8</button>
+ <!-- 9 --> <button id="143">Number9</button>
+ <!-- 0 --> <button id="144">Number0</button>
+ <!-- * clear --> <button id="145">Back</button>
+ <!-- # enter --> <button id="136">Select</button>
+ <!-- Mute --> <button id="125">Mute</button>
+ <!-- Aspect --> <button id="161">AspectRatio</button>
+ <!-- F1 --> <button id="153">ActivateWindow(Music)</button>
+ <!-- F3 --> <button id="155">ActivateWindow(Videos,tvshowtitles,return)</button>
+ <!-- F2 --> <button id="154">ActivateWindow(Videos,movietitles,return)</button>
+ <!-- F4 --> <button id="156">ActivateWindow(Weather)</button>
+ <!-- F5 --> <button id="193">OSD</button>
+ <!-- F7 --> <button id="195">ActivateWindow(Home)</button>
+ <!-- F6 --> <button id="194">ActivateWindow(Programs)</button>
+ <!-- F8 --> <button id="196">ActivateWindow(FavouritesBrowser)</button>
+ <!-- F9 --> <button id="173">ShowVideoMenu</button>
+ <!-- F10 --> <button id="174">ShowSubtitles</button>
+ <!-- F11 --> <button id="175">NextSubtitle</button>
+ <!-- F12 --> <button id="176">ActivateWindow(Videos)</button>
+ <!-- F13 --> <button id="163">Playlist</button>
+ <!-- F14 --> <button id="164">AudioNextLanguage</button>
+ <!-- Large Down --> <button id="182">PageDown</button>
+ <!-- Large Up --> <button id="181">PageUp</button>
+ <!-- pwrToggle --> <button id="166">ShutDown()</button>
+ <!-- Queue --> <button id="162">Queue</button>
+ <!-- Sleep --> <button id="146">Suspend()</button>
+ <!-- Red --> <button id="183">PlayerProcessInfo</button>
+ <!-- Green --> <button id="184">ActivateWindow(Settings)</button>
+ <!-- Yellow --> <button id="185">ActivateWindow(SystemSettings)</button>
+ <!-- Blue --> <button id="186">ActivateWindow(SystemInfo)</button>
+ </customcontroller>
+ </global>
+ <Home>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">ActivateWindow(PlayerControls)</button>
+ <!-- Info --> <button id="131">ActivateWindow(Settings)</button>
+ <!-- Exit --> <button id="151">ActivateWindow(ShutdownMenu)</button>
+ <!-- #enter --> <button id="136">ActivateWindow(SystemInfo)</button>
+ <!-- 1 --> <button id="111">ToggleFullScreen</button>
+ </customcontroller>
+ </Home>
+ <FileManager>
+ <customcontroller name="Harmony">
+ <!-- 1 --> <button id="111">Highlight</button>
+ <!-- 4 --> <button id="114">Copy</button>
+ <!-- 7 --> <button id="133">Move</button>
+ <!-- * clear --> <button id="145">Delete</button>
+ </customcontroller>
+ </FileManager>
+ <MusicPlaylist>
+ <customcontroller name="Harmony">
+ <!-- * clear --> <button id="145">Delete</button>
+ <!-- Channel Up --> <button id="171">MoveItemUp</button>
+ <!-- Channel Down --> <button id="172">MoveItemDown</button>
+ </customcontroller>
+ </MusicPlaylist>
+ <Music>
+ <customcontroller name="Harmony">
+ <!-- 1 --> <button id="111">number1</button>
+ <!-- 2 --> <button id="112">JumpSMS2</button>
+ <!-- 3 --> <button id="113">JumpSMS3</button>
+ <!-- 4 --> <button id="114">JumpSMS4</button>
+ <!-- 5 --> <button id="123">JumpSMS5</button>
+ <!-- 6 --> <button id="124">JumpSMS6</button>
+ <!-- 7 --> <button id="133">JumpSMS7</button>
+ <!-- 8 --> <button id="134">JumpSMS8</button>
+ <!-- 9 --> <button id="143">JumpSMS9</button>
+ </customcontroller>
+ </Music>
+ <FullscreenVideo>
+ <customcontroller name="Harmony">
+ <!-- up --> <button id="101">ChapterOrBigStepForward</button>
+ <!-- down --> <button id="102">ChapterOrBigStepBack</button>
+ <!-- left --> <button id="103">StepBack</button>
+ <!-- right --> <button id="104">StepForward</button>
+ <!-- menu --> <button id="106">OSD</button>
+ <!-- Prev --> <button id="132">SmallStepBack</button>
+ </customcontroller>
+ </FullscreenVideo>
+ <FullscreenLiveTV>
+ <customcontroller name="Harmony">
+ <!-- up --> <button id="101">ChannelUp</button>
+ <!-- down --> <button id="102">ChannelDown</button>
+ <!-- left --> <button id="103">PreviousChannelGroup</button>
+ <!-- right --> <button id="104">NextChannelGroup</button>
+ </customcontroller>
+ </FullscreenLiveTV>
+ <FullscreenRadio>
+ <customcontroller name="Harmony">
+ <!-- up --> <button id="101">ChannelUp</button>
+ <!-- down --> <button id="102">ChannelDown</button>
+ <!-- left --> <button id="103">PreviousChannelGroup</button>
+ <!-- right --> <button id="104">NextChannelGroup</button>
+ </customcontroller>
+ </FullscreenRadio>
+ <FullscreenInfo>
+ <customcontroller name="Harmony">
+ <!-- Info --> <button id="131">Back</button>
+ </customcontroller>
+ </FullscreenInfo>
+ <PlayerControls>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ </customcontroller>
+ </PlayerControls>
+ <Visualisation>
+ <customcontroller name="Harmony">
+ <!-- up --> <button id="101">IncreaseRating</button>
+ <!-- minus --> <button id="102">DecreaseRating</button>
+ <!-- left --> <button id="103">PreviousPreset</button>
+ <!-- right --> <button id="104">NextPreset</button>
+ <!-- menu --> <button id="106">OSD</button>
+ <!-- Prev --> <button id="132">LockPreset</button>
+ <!-- F8 --> <button id="196">ActivateWindow(VisualisationPresetList)</button>
+ <!-- F9 --> <button id="173">ActivateWindow(AddonSettings)</button>
+ </customcontroller>
+ </Visualisation>
+ <MusicOSD>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ <!-- Info --> <button id="131">PlayerProcessInfo</button>
+ </customcontroller>
+ </MusicOSD>
+ <AddonSettings>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ </customcontroller>
+ </AddonSettings>
+ <VisualisationPresetList>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ </customcontroller>
+ </VisualisationPresetList>
+ <SlideShow>
+ <customcontroller name="Harmony">
+ <!-- 1 --> <button id="111">ZoomLevel1</button>
+ <!-- 2 --> <button id="112">ZoomLevel2</button>
+ <!-- 3 --> <button id="113">ZoomLevel3</button>
+ <!-- 4 --> <button id="114">ZoomLevel4</button>
+ <!-- 5 --> <button id="123">ZoomLevel5</button>
+ <!-- 6 --> <button id="124">ZoomLevel6</button>
+ <!-- 7 --> <button id="133">ZoomLevel7</button>
+ <!-- 8 --> <button id="134">ZoomLevel8</button>
+ <!-- 9 --> <button id="143">ZoomLevel9</button>
+ <!-- 0 --> <button id="144">ZoomNormal</button>
+ <!-- Skip --> <button id="192">NextPicture</button>
+ <!-- Replay --> <button id="191">PreviousPicture</button>
+ <!-- OK --> <button id="105">Rotate</button>
+ </customcontroller>
+ </SlideShow>
+ <ScreenCalibration>
+ <customcontroller name="Harmony">
+ <!-- OK --> <button id="105">NextCalibration</button>
+ <!-- 0 --> <button id="144">ResetCalibration</button>
+ <!-- # enter --> <button id="136">NextCalibration</button>
+ <!-- Guide --> <button id="165">NextResolution</button>
+ </customcontroller>
+ </ScreenCalibration>
+ <VideoOSD>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ </customcontroller>
+ </VideoOSD>
+ <VideoMenu>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">OSD</button>
+ <!-- Info --> <button id="131">Info</button>
+ </customcontroller>
+ </VideoMenu>
+ <OSDVideoSettings>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ </customcontroller>
+ </OSDVideoSettings>
+ <OSDAudioSettings>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ </customcontroller>
+ </OSDAudioSettings>
+ <VideoBookmarks>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ <!-- * clear --> <button id="145">Delete</button>
+ </customcontroller>
+ </VideoBookmarks>
+ <Videos>
+ <customcontroller name="Harmony">
+ <!-- * clear --> <button id="145">Delete</button>
+ <!-- # enter --> <button id="136">ToggleWatched</button>
+ <!-- 1 --> <button id="111">number1</button>
+ <!-- 2 --> <button id="112">JumpSMS2</button>
+ <!-- 3 --> <button id="113">JumpSMS3</button>
+ <!-- 4 --> <button id="114">JumpSMS4</button>
+ <!-- 5 --> <button id="123">JumpSMS5</button>
+ <!-- 6 --> <button id="124">JumpSMS6</button>
+ <!-- 7 --> <button id="133">JumpSMS7</button>
+ <!-- 8 --> <button id="134">JumpSMS8</button>
+ <!-- 9 --> <button id="143">JumpSMS9</button>
+ </customcontroller>
+ </Videos>
+ <VideoPlaylist>
+ <customcontroller name="Harmony">
+ <!-- * clear --> <button id="145">Delete</button>
+ <!-- Channel Up --> <button id="171">MoveItemUp</button>
+ <!-- Channel Down --> <button id="172">MoveItemDown</button>
+ </customcontroller>
+ </VideoPlaylist>
+ <VirtualKeyboard>
+ <customcontroller name="Harmony">
+ <!-- Prev --> <button id="132">BackSpace</button>
+ <!-- * clear --> <button id="145">Shift</button>
+ <!-- # enter --> <button id="136">Symbols</button>
+ <!-- Rew --> <button id="141">CursorLeft</button>
+ <!-- Fwd --> <button id="142">CursorRight</button>
+ </customcontroller>
+ </VirtualKeyboard>
+ <Programs>
+ <customcontroller name="Harmony">
+ <!-- Info --> <button id="131">info</button>
+ </customcontroller>
+ </Programs>
+ <NumericInput>
+ <customcontroller name="Harmony">
+ <!-- 1 --> <button id="111">Number1</button>
+ <!-- 2 --> <button id="112">Number2</button>
+ <!-- 3 --> <button id="113">Number3</button>
+ <!-- 4 --> <button id="114">Number4</button>
+ <!-- 5 --> <button id="123">Number5</button>
+ <!-- 6 --> <button id="124">Number6</button>
+ <!-- 7 --> <button id="133">Number7</button>
+ <!-- 8 --> <button id="134">Number8</button>
+ <!-- 9 --> <button id="143">Number9</button>
+ <!-- 0 --> <button id="144">Number0</button>
+ <!-- Prev --> <button id="132">BackSpace</button>
+ </customcontroller>
+ </NumericInput>
+ <MusicInformation>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ </customcontroller>
+ </MusicInformation>
+ <MovieInformation>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ </customcontroller>
+ </MovieInformation>
+ <LockSettings>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ </customcontroller>
+ </LockSettings>
+ <ProfileSettings>
+ <customcontroller name="Harmony">
+ <!-- menu --> <button id="106">Back</button>
+ </customcontroller>
+ </ProfileSettings>
+ <PictureInfo>
+ <customcontroller name="Harmony">
+ <!-- Replay --> <button id="191">PreviousPicture</button>
+ <!-- Skip --> <button id="192">NextPicture</button>
+ <!-- Info --> <button id="131">Back</button>
+ </customcontroller>
+ </PictureInfo>
+</keymap>
diff --git a/system/keymaps/customcontroller.SiriRemote.xml b/system/keymaps/customcontroller.SiriRemote.xml
new file mode 100644
index 0000000..1267c8d
--- /dev/null
+++ b/system/keymaps/customcontroller.SiriRemote.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file contains the mapping of keys (gamepad,remote and keyboard) to actions within XBMC -->
+<!-- The <global> section is a fall through - they will only be used if the button is not -->
+<!-- used in the current window's section. Note that there is only handling -->
+<!-- for a single action per button at this stage. -->
+<!-- For joystick/gamepad configuration under linux/win32, see below as it differs from xbox -->
+<!-- gamepads. -->
+
+<!-- The format is: -->
+<!-- <device> -->
+<!-- <button id=""#>xbmc action</button> -->
+<!-- </device> -->
+
+<!-- To map keys from other remotes using the RCA protocol, you may add <customcontroller name="SiriRemote"> blocks -->
+<!-- In this case, the tags used are <button id=""#> where # is the original button code (OBC) of the key -->
+<!-- You set it up by adding a <customcontroller name="SiriRemote"> block to the window or <global> section: -->
+<!-- <customcontroller name="SiriRemote"> -->
+<!-- <button id="45">Stop</button> -->
+<!-- </customcontroller> -->
+
+<!-- Note that the action can be a built-in function. -->
+<!-- eg <button id="6">ActivateWindow(FavouritesBrowser)</button> -->
+<!-- would bring up Favourites when the button with the id of 6 is press. In this case, "Menu" -->
+
+<!-- -->
+<!-- Button Ids: -->
+<!-- 'id' is the button ID used by SDL. The key ids recognized from your remote appears -->
+<!-- in /var/log/syslog on the ATV2 for each button pressed and when debug mode is enabled -->
+<!-- Use your log to discover and map custom buttons to actions. -->
+
+<keymap>
+ <global>
+ <customcontroller name="SiriRemote">
+ <!-- Siri/IR remotes up --> <button id="1">Up</button>
+ <!-- Siri/IR remotes down --> <button id="2">Down</button>
+ <!-- Siri/IR remotes left --> <button id="3">Left</button>
+ <!-- Siri/IR remotes right --> <button id="4">Right</button>
+ <!-- Siri remote select --> <button id="5">Select</button>
+ <!-- Siri remote menu --> <button id="6">Back</button>
+ <!-- Siri remote hold select --> <button id="7">ContextMenu</button>
+ <!-- Siri remote swipe up --> <button id="8">Up</button>
+ <!-- Siri remote swipe down --> <button id="9">Down</button>
+ <!-- Siri remote swipe left --> <button id="10">Left</button>
+ <!-- Siri remote swipe right --> <button id="11">Right</button>
+ <!-- Siri remote play/pause --> <button id="12">PlayPause</button>
+ <!-- IR remote/iDevice Now Playing play --> <button id="13">Play</button>
+ <!-- IR remote/iDevice Now Playing pause --> <button id="14">Pause</button>
+ <!-- IR remote stop --> <button id="15">Stop</button>
+ <!-- IR remote/iDevice Now Playing next track --> <button id="16">SkipNext</button>
+ <!-- IR remote/iDevice Now Playing prev track --> <button id="17">SkipPrevious</button>
+ <!-- IR remote seek forward --> <button id="18">FastForward</button>
+ <!-- IR remote seek backward --> <button id="19">Rewind</button>
+ <!-- Siri remote hold play/pause --> <button id="20">Stop</button>
+ <!-- Siri remote double play/pause --> <button id="21">noop</button>
+ <!-- Siri remote double select --> <button id="22">noop</button>
+ <!-- Siri remote pan up --> <button id="23">Up</button>
+ <!-- Siri remote pan down --> <button id="24">Down</button>
+ <!-- Siri remote pan left --> <button id="25">Left</button>
+ <!-- Siri remote pan right --> <button id="26">Right</button>
+ </customcontroller>
+ </global>
+ <Home>
+ <customcontroller name="SiriRemote">
+ <button id="6">ActivateWindow(FavouritesBrowser)</button>
+ </customcontroller>
+ </Home>
+ <FullscreenVideo>
+ <customcontroller name="SiriRemote">
+ <button id="1">VolumeUp</button>
+ <button id="2">VolumeDown</button>
+ <button id="3">StepBack</button>
+ <button id="4">StepForward</button>
+ <button id="5">Pause</button>
+ <button id="6">Stop</button>
+ <button id="7">OSD</button>
+ <button id="8">noop</button>
+ <button id="9">noop</button>
+ <button id="10">noop</button>
+ <button id="11">noop</button>
+ </customcontroller>
+ </FullscreenVideo>
+ <FullscreenLiveTV>
+ <customcontroller name="SiriRemote">
+ <button id="3">ChannelDown</button>
+ <button id="4">ChannelUp</button>
+ <button id="8">noop</button>
+ <button id="9">noop</button>
+ <button id="10">noop</button>
+ <button id="11">noop</button>
+ </customcontroller>
+ </FullscreenLiveTV>
+ <FullscreenRadio>
+ <customcontroller name="SiriRemote">
+ <button id="3">ChannelDown</button>
+ <button id="4">ChannelUp</button>
+ </customcontroller>
+ </FullscreenRadio>
+ <Visualisation>
+ <customcontroller name="SiriRemote">
+ <button id="1">VolumeUp</button>
+ <button id="2">VolumeDown</button>
+ <button id="3">SkipPrevious</button>
+ <button id="4">SkipNext</button>
+ <button id="5">Pause</button>
+ <button id="6">Fullscreen</button>
+ <button id="7">OSD</button>
+ </customcontroller>
+ </Visualisation>
+ <SlideShow>
+ <customcontroller name="SiriRemote">
+ <button id="1">ZoomIn</button>
+ <button id="2">ZoomOut</button>
+ <button id="3">PreviousPicture</button>
+ <button id="4">NextPicture</button>
+ <button id="6">Stop</button>
+ <button id="7">Info</button>
+ </customcontroller>
+ </SlideShow>
+ <ScreenCalibration>
+ <customcontroller name="SiriRemote">
+ <button id="5">NextCalibration</button>
+ </customcontroller>
+ </ScreenCalibration>
+ <VideoOSD>
+ <customcontroller name="SiriRemote">
+ <button id="7">Back</button>
+ </customcontroller>
+ </VideoOSD>
+ <VideoMenu>
+ <customcontroller name="SiriRemote">
+ <button id="5">Select</button>
+ <button id="6">Stop</button>
+ <button id="7">OSD</button>
+ </customcontroller>
+ </VideoMenu>
+ <Videos>
+ <customcontroller name="SiriRemote">
+ <button id="7">ContextMenu</button>
+ </customcontroller>
+ </Videos>
+ <PictureInfo>
+ <customcontroller name="SiriRemote">
+ <button id="3">Left</button>
+ <button id="4">Right</button>
+ </customcontroller>
+ </PictureInfo>
+</keymap>
diff --git a/system/keymaps/gamepad.xml b/system/keymaps/gamepad.xml
new file mode 100644
index 0000000..cc440c3
--- /dev/null
+++ b/system/keymaps/gamepad.xml
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file contains the mapping of EventServer "gamepad" 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>
+ <gamepad>
+ <A>Select</A>
+ <B>Back</B>
+ <X>FullScreen</X>
+ <Y>Queue</Y>
+ <white>ContextMenu</white>
+ <black/>
+ <start>ActivateWindow(PlayerControls)</start>
+ <back>PreviousMenu</back>
+ <dpadleft>Left</dpadleft>
+ <dpadright>Right</dpadright>
+ <dpadup>Up</dpadup>
+ <dpaddown>Down</dpaddown>
+ <leftthumbbutton>Screenshot</leftthumbbutton>
+ <rightthumbbutton>ActivateWindow(ShutdownMenu)</rightthumbbutton>
+ <leftanalogtrigger>ScrollUp</leftanalogtrigger>
+ <rightanalogtrigger>ScrollDown</rightanalogtrigger>
+ <rightthumbstickleft>AnalogSeekBack</rightthumbstickleft>
+ <rightthumbstickright>AnalogSeekForward</rightthumbstickright>
+ <rightthumbstickup>VolumeUp</rightthumbstickup>
+ <rightthumbstickdown>VolumeDown</rightthumbstickdown>
+ </gamepad>
+ </global>
+ <FileManager>
+ <gamepad>
+ <Y>Highlight</Y>
+ </gamepad>
+ </FileManager>
+ <MusicPlaylist>
+ <gamepad>
+ <Y>Delete</Y>
+ <black>Back</black>
+ </gamepad>
+ </MusicPlaylist>
+ <MusicPlaylistEditor>
+ <gamepad>
+ <Y>Queue</Y>
+ </gamepad>
+ </MusicPlaylistEditor>
+ <Music>
+ <gamepad>
+ <Y>Queue</Y>
+ <black>Playlist</black>
+ </gamepad>
+ </Music>
+ <FullscreenVideo>
+ <gamepad>
+ <A>Pause</A>
+ <B>Stop</B>
+ <Y>AspectRatio</Y>
+ <black>PlayerProcessInfo</black>
+ <white>Info</white>
+ <back>Seek(-7)</back><!-- Replaces smallstepback -->
+ <start>OSD</start>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ <dpadleft>StepBack</dpadleft>
+ <dpadright>StepForward</dpadright>
+ <dpadup>ChapterOrBigStepForward</dpadup>
+ <dpaddown>ChapterOrBigStepBack</dpaddown>
+ </gamepad>
+ </FullscreenVideo>
+ <FullscreenGame>
+ <gamepad>
+ <A>Pause</A>
+ <B>Stop</B>
+ <Y>AspectRatio</Y>
+ <black>CodecInfo</black>
+ <white>Info</white>
+ <back>Seek(-7)</back><!-- Replaces smallstepback -->
+ <start>OSD</start>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ <dpadleft>StepBack</dpadleft>
+ <dpadright>StepForward</dpadright>
+ </gamepad>
+ </FullscreenGame>
+ <FullscreenLiveTV>
+ <gamepad>
+ <dpadleft>StepBack</dpadleft>
+ <dpadright>StepForward</dpadright>
+ <dpadup>ChannelUp</dpadup>
+ <dpaddown>ChannelDown</dpaddown>
+ </gamepad>
+ </FullscreenLiveTV>
+ <FullscreenRadio>
+ <gamepad>
+ <dpadleft>StepBack</dpadleft>
+ <dpadright>StepForward</dpadright>
+ <dpadup>ChannelUp</dpadup>
+ <dpaddown>ChannelDown</dpaddown>
+ </gamepad>
+ </FullscreenRadio>
+ <FullscreenInfo>
+ <gamepad>
+ <start>OSD</start>
+ <black>PlayerProcessInfo</black>
+ <white>Back</white>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ </gamepad>
+ </FullscreenInfo>
+ <PlayerControls>
+ <gamepad>
+ <start>Back</start>
+ </gamepad>
+ </PlayerControls>
+ <Visualisation>
+ <gamepad>
+ <A>Pause</A>
+ <B>Stop</B>
+ <Y>ActivateWindow(VisualisationPresetList)</Y>
+ <black>PlayerProcessInfo</black>
+ <white>Info</white>
+ <start>OSD</start>
+ <back>LockPreset</back>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ <dpadleft>StepBack</dpadleft>
+ <dpadright>StepForward</dpadright>
+ <dpadup>SkipNext</dpadup>
+ <dpaddown>SkipPrevious</dpaddown>
+ </gamepad>
+ </Visualisation>
+ <MusicOSD>
+ <gamepad>
+ <start>Back</start>
+ <black>PlayerProcessInfo</black>
+ <white>Info</white>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ </gamepad>
+ </MusicOSD>
+ <AddonSettings>
+ <gamepad>
+ <start>Back</start>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ </gamepad>
+ </AddonSettings>
+ <VisualisationPresetList>
+ <gamepad>
+ <start>Back</start>
+ <Y>Back</Y>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ </gamepad>
+ </VisualisationPresetList>
+ <SlideShow>
+ <gamepad>
+ <A>Pause</A>
+ <B>Stop</B>
+ <Y>Rotate</Y>
+ <X>ZoomNormal</X>
+ <black>Info</black>
+ <white>Info</white>
+ <righttrigger>NextPicture</righttrigger>
+ <lefttrigger>PreviousPicture</lefttrigger>
+ <dpadleft>PreviousPicture</dpadleft>
+ <dpadright>NextPicture</dpadright>
+ <dpadup>ZoomIn</dpadup>
+ <dpaddown>ZoomOut</dpaddown>
+ <leftthumbstick>AnalogMove</leftthumbstick>
+ <back>Stop</back>
+ </gamepad>
+ </SlideShow>
+ <ScreenCalibration>
+ <gamepad>
+ <leftthumbstick>AnalogMove</leftthumbstick>
+ <A>NextCalibration</A>
+ <black>ResetCalibration</black>
+ <white>NextResolution</white>
+ </gamepad>
+ </ScreenCalibration>
+ <ScreenCalibration>
+ <gamepad>
+ <leftthumbstick>AnalogMove</leftthumbstick>
+ <A>NextCalibration</A>
+ <black>ResetCalibration</black>
+ </gamepad>
+ </ScreenCalibration>
+ <VideoOSD>
+ <gamepad>
+ <start>Back</start>
+ <black>PlayerProcessInfo</black>
+ <white>Info</white>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ </gamepad>
+ </VideoOSD>
+ <VideoMenu>
+ <gamepad>
+ <Y>AspectRatio</Y>
+ <B>Stop</B>
+ <start>OSD</start>
+ <white>Info</white>
+ <black>PlayerProcessInfo</black>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ </gamepad>
+ </VideoMenu>
+ <OSDVideoSettings>
+ <gamepad>
+ <X/>
+ <Y>AspectRatio</Y>
+ <start>Back</start>
+ <black>PlayerProcessInfo</black>
+ <white>Info</white>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ </gamepad>
+ </OSDVideoSettings>
+ <OSDAudioSettings>
+ <gamepad>
+ <X/>
+ <Y>AspectRatio</Y>
+ <start>Back</start>
+ <black>PlayerProcessInfo</black>
+ <white>Info</white>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ </gamepad>
+ </OSDAudioSettings>
+ <VideoBookmarks>
+ <gamepad>
+ <X/>
+ <Y>Delete</Y>
+ <start>Back</start>
+ <leftanalogtrigger>AnalogRewind</leftanalogtrigger>
+ <rightanalogtrigger>AnalogFastForward</rightanalogtrigger>
+ </gamepad>
+ </VideoBookmarks>
+ <Videos>
+ <gamepad>
+ <black>Delete</black>
+ </gamepad>
+ </Videos>
+ <VideoPlaylist>
+ <gamepad>
+ <Y>Delete</Y>
+ <black>Back</black>
+ </gamepad>
+ </VideoPlaylist>
+ <VirtualKeyboard>
+ <gamepad>
+ <start>Enter</start>
+ <B>BackSpace</B>
+ <Y>Shift</Y>
+ <X>Symbols</X>
+ <lefttrigger>CursorLeft</lefttrigger>
+ <righttrigger>CursorRight</righttrigger>
+ </gamepad>
+ </VirtualKeyboard>
+ <ContextMenu>
+ <gamepad>
+ <white>Back</white>
+ </gamepad>
+ </ContextMenu>
+ <Programs>
+ <gamepad>
+ <black>info</black>
+ </gamepad>
+ </Programs>
+ <NumericInput>
+ <gamepad>
+ <B>BackSpace</B>
+ <start>Enter</start>
+ <lefttrigger>SkipPrevious</lefttrigger>
+ <righttrigger>SkipNext</righttrigger>
+ </gamepad>
+ </NumericInput>
+ <GamepadInput>
+ <gamepad>
+ <start>Stop</start> <!-- Enter Password -->
+ </gamepad>
+ </GamepadInput>
+ <LockSettings>
+ <gamepad>
+ <start>Back</start>
+ </gamepad>
+ </LockSettings>
+ <ProfileSettings>
+ <gamepad>
+ <start>Back</start>
+ </gamepad>
+ </ProfileSettings>
+ <PictureInfo>
+ <gamepad>
+ <dpadleft>PreviousPicture</dpadleft>
+ <dpadright>NextPicture</dpadright>
+ </gamepad>
+ </PictureInfo>
+ <PlayerProcessInfo>
+ <gamepad>
+ <black>PlayerProcessInfo</black>
+ </gamepad>
+ </PlayerProcessInfo>
+</keymap>
diff --git a/system/keymaps/joystick.xml b/system/keymaps/joystick.xml
new file mode 100644
index 0000000..2db760b
--- /dev/null
+++ b/system/keymaps/joystick.xml
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file contains the mapping of joystick buttons to actions within -->
+<!-- Kodi. -->
+<!-- -->
+<!-- The format is: -->
+<!-- <window> -->
+<!-- <joystick profile="game.controller.default"> -->
+<!-- <button>action</button> -->
+<!-- </joystick> -->
+<!-- </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. -->
+<!-- -->
+<!-- The "profile" attribute specifies the controller profile whose buttons -->
+<!-- are being mapped. Currently, the default controller profile is used for -->
+<!-- every controller. In the future it may be possible to specify mappings -->
+<!-- for the controller profile most similar to the user's physical -->
+<!-- controller. -->
+<!-- -->
+<!-- Actions can be built-in functions. -->
+<!-- eg <b>ActivateWindow(Music)</b> -->
+<!-- would automatically go to Music on the press of the B button. -->
+<!-- -->
+<!-- Buttons can be overloaded with hold durations, in milliseconds: -->
+<!-- <joystick profile="game.controller.default"> -->
+<!-- <a>Select</a> -->
+<!-- <a holdtime="500">ContextMenu</a> -->
+<!-- </joystick> -->
+<!-- -->
+<!-- Buttons can be also require hotkeys to be pressed: -->
+<!-- <joystick profile="game.controller.default"> -->
+<!-- <start hotkey="back">Stop</start> -->
+<!-- </joystick> -->
+<!-- -->
+<!-- Due to limitations in the button mapper, buttons can be overloaded with -->
+<!-- different hold durations, but not different hotkeys for the same -->
+<!-- duration. -->
+<!-- -->
+<!-- More documentation on keymaps can be found on -->
+<!-- http://kodi.wiki/view/keymaps -->
+<!-- -->
+<keymap>
+ <global>
+ <joystick profile="game.controller.default">
+ <a>Select</a>
+ <a holdtime="500">ContextMenu</a>
+ <b>Back</b>
+ <x>ContextMenu</x>
+ <y>FullScreen</y>
+ <start>ActivateWindow(PlayerControls)</start>
+ <back>ActivateWindow(Home)</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>
+ <leftstick direction="left">Left</leftstick>
+ <leftstick direction="right">Right</leftstick>
+ <leftstick direction="up">Up</leftstick>
+ <leftstick direction="down">Down</leftstick>
+ <rightstick direction="left">VolumeDown</rightstick>
+ <rightstick direction="right">VolumeUp</rightstick>
+ <rightstick direction="up">VolumeUp</rightstick>
+ <rightstick direction="down">VolumeDown</rightstick>
+ </joystick>
+ </global>
+ <Home>
+ <joystick profile="game.controller.default">
+ <b>Back</b>
+ <b holdtime="500">ActivateWindow(ShutdownMenu)</b>
+ </joystick>
+ </Home>
+ <FileManager>
+ <joystick profile="game.controller.default">
+ <rightbumper>Highlight</rightbumper>
+ </joystick>
+ </FileManager>
+ <MusicPlaylist>
+ <joystick profile="game.controller.default">
+ <leftbumper>Delete</leftbumper>
+ </joystick>
+ </MusicPlaylist>
+ <Music>
+ </Music>
+ <FullscreenVideo>
+ <joystick profile="game.controller.default">
+ <a>Pause</a>
+ <b>Stop</b>
+ <b holdtime="500">FullScreen</b>
+ <x>OSD</x>
+ <y>FullScreen</y>
+ <start>Info</start>
+ <back>FullScreen</back>
+ <guide>OSD</guide>
+ <up>ChapterOrBigStepForward</up>
+ <down>ChapterOrBigStepBack</down>
+ <right>StepForward</right>
+ <left>StepBack</left>
+ <leftthumb>ShowSubtitles</leftthumb>
+ <rightthumb>AspectRatio</rightthumb>
+ <lefttrigger>AnalogRewind</lefttrigger>
+ <righttrigger>AnalogFastForward</righttrigger>
+ <leftbumper>AnalogRewind</leftbumper>
+ <rightbumper>AnalogFastForward</rightbumper>
+ <leftstick direction="left">AnalogSeekBack</leftstick>
+ <leftstick direction="right">AnalogSeekForward</leftstick>
+ <leftstick direction="up">noop</leftstick>
+ <leftstick direction="down">noop</leftstick>
+ </joystick>
+ </FullscreenVideo>
+ <FullscreenGame>
+ <joystick profile="game.controller.default">
+ <start holdtime="1000">OSD</start>
+ <guide>OSD</guide>
+ <!-- Give games access to volume controls -->
+ <rightstick direction="left" hotkey="back">VolumeDown</rightstick>
+ <rightstick direction="right" hotkey="back">VolumeUp</rightstick>
+ <rightstick direction="up" hotkey="back">VolumeUp</rightstick>
+ <rightstick direction="down" hotkey="back">VolumeDown</rightstick>
+ <!-- RetroPie hotkeys, ref: https://github.com/RetroPie/RetroPie-Setup/wiki/RetroArch-Configuration -->
+ <!--
+ <b hotkey="back">Player.Reset</b>
+ <x hotkey="back">OSD</x>
+ <start hotkey="back">Stop</start>
+ <rightbumper hotkey="back">Save</rightbumper>
+ <leftbumper hotkey="back">Load</leftbumper>
+ <righttrigger hotkey="back">AnalogFastForward</righttrigger>
+ <lefttrigger hotkey="back">AnalogRewind</lefttrigger>
+ <right hotkey="back">SaveSlotIncrease</right>
+ <left hotkey="back">SaveSlotDecrease</left>
+ -->
+ <!-- Hotkeys courtesy Julipo -->
+ <!--
+ <a hotkey="back">Screenshot</a>
+ <x hotkey="back">FullScreen</x>
+ <y hotkey="back">OSD</y>
+ <start hotkey="back">OSD</start>
+ <rightbumper hotkey="back">Save</rightbumper>
+ <leftbumper hotkey="back">Load</leftbumper>
+ <leftstick direction="left" hotkey="back">SaveSlotDecrease</leftstick>
+ <leftstick direction="right" hotkey="back">SaveSlotIncrease</leftstick>
+ -->
+ <!-- Merged -->
+ <!-- Screenshot is disabled until it has been further automated
+ (currently pops up multiple annoying confusing dialogs) -->
+ <!-- <a hotkey="back">Screenshot</a> -->
+ <!-- Reset is disabled until player can undo a reset -->
+ <!--<b hotkey="back">PlayerControl(Reset)</b> -->
+ <x hotkey="back">OSD</x>
+ <y hotkey="back">OSD</y>
+ <start hotkey="back">Stop</start>
+ <rightbumper hotkey="back">AnalogFastForward</rightbumper>
+ <leftbumper hotkey="back">AnalogRewind</leftbumper>
+ <righttrigger hotkey="back">AnalogFastForward</righttrigger>
+ <lefttrigger hotkey="back">AnalogRewind</lefttrigger>
+ <!--
+ <right hotkey="back">SaveSlotIncrease</right>
+ <left hotkey="back">SaveSlotDecrease</left>
+ <leftstick direction="left" hotkey="back">SaveSlotDecrease</leftstick>
+ <leftstick direction="right" hotkey="back">SaveSlotIncrease</leftstick>
+ -->
+ </joystick>
+ </FullscreenGame>
+ <FullscreenLiveTV>
+ <joystick profile="game.controller.default">
+ <a>Pause</a>
+ <b>Stop</b>
+ <b holdtime="500">FullScreen</b>
+ <x>OSD</x>
+ <back>OSD</back>
+ <guide>OSD</guide>
+ <start>Info</start>
+ <up>ChannelUp</up>
+ <down>ChannelDown</down>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ </joystick>
+ </FullscreenLiveTV>
+ <TVGuide>
+ <joystick profile="game.controller.default">
+ <back>Menu</back>
+ </joystick>
+ </TVGuide>
+ <FullscreenRadio>
+ <joystick profile="game.controller.default">
+ <a>Pause</a>
+ <b>Stop</b>
+ <b holdtime="500">FullScreen</b>
+ <x>OSD</x>
+ <back>OSD</back>
+ <guide>OSD</guide>
+ <start>Info</start>
+ <up>ChannelUp</up>
+ <down>ChannelDown</down>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ </joystick>
+ </FullscreenRadio>
+ <RadioGuide>
+ <joystick profile="game.controller.default">
+ <back>Menu</back>
+ </joystick>
+ </RadioGuide>
+ <FullscreenInfo>
+ <joystick profile="game.controller.default">
+ <b>Close</b>
+ <x>OSD</x>
+ <start>Close</start>
+ <lefttrigger>AnalogRewind</lefttrigger>
+ <righttrigger>AnalogFastForward</righttrigger>
+ <leftbumper>AnalogRewind</leftbumper>
+ <rightbumper>AnalogFastForward</rightbumper>
+ </joystick>
+ </FullscreenInfo>
+ <PlayerControls>
+ <joystick profile="game.controller.default">
+ <x>Close</x>
+ <leftthumb>Close</leftthumb>
+ <rightthumb>Close</rightthumb>
+ </joystick>
+ </PlayerControls>
+ <Visualisation>
+ <joystick profile="game.controller.default">
+ <a>Pause</a>
+ <b>Stop</b>
+ <x>Addon.Default.OpenSettings(xbmc.player.musicviz)</x>
+ <y>ActivateWindow(VisualisationPresetList)</y>
+ <start>Info</start>
+ <rightthumb>ActivateWindow(MusicOSD)</rightthumb>
+ <up>SkipNext</up>
+ <down>SkipPrevious</down>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ <lefttrigger>AnalogRewind</lefttrigger>
+ <righttrigger>AnalogFastForward</righttrigger>
+ <leftbumper>AnalogRewind</leftbumper>
+ <rightbumper>AnalogFastForward</rightbumper>
+ <leftstick direction="left">PreviousPreset</leftstick>
+ <leftstick direction="right">NextPreset</leftstick>
+ <leftstick direction="up">noop</leftstick>
+ <leftstick direction="down">noop</leftstick>
+ </joystick>
+ </Visualisation>
+ <MusicOSD>
+ <joystick profile="game.controller.default">
+ <b>Close</b>
+ <start>Info</start>
+ </joystick>
+ </MusicOSD>
+ <VisualisationPresetList>
+ <joystick profile="game.controller.default">
+ <b>Close</b>
+ </joystick>
+ </VisualisationPresetList>
+ <SlideShow>
+ <joystick profile="game.controller.default">
+ <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>
+ <leftstick direction="left">AnalogMoveXLeft</leftstick>
+ <leftstick direction="right">AnalogMoveXRight</leftstick>
+ <leftstick direction="up">AnalogMoveYUp</leftstick>
+ <leftstick direction="down">AnalogMoveYDown</leftstick>
+ <lefttrigger>ZoomOut</lefttrigger>
+ <righttrigger>ZoomIn</righttrigger>
+ </joystick>
+ </SlideShow>
+ <ScreenCalibration>
+ <joystick profile="game.controller.default">
+ <x>ResetCalibration</x>
+ <leftbumper>NextResolution</leftbumper>
+ <rightbumper>NextCalibration</rightbumper>
+ </joystick>
+ </ScreenCalibration>
+ <ScreenCalibration>
+ <joystick profile="game.controller.default">
+ <x>ResetCalibration</x>
+ <leftbumper>NextResolution</leftbumper>
+ <rightbumper>NextCalibration</rightbumper>
+ </joystick>
+ </ScreenCalibration>
+ <VideoOSD>
+ <joystick profile="game.controller.default">
+ <b>Close</b>
+ </joystick>
+ </VideoOSD>
+ <VideoMenu>
+ <joystick profile="game.controller.default">
+ <b>Stop</b>
+ <x>OSD</x>
+ <leftbumper>AspectRatio</leftbumper>
+ <start>Info</start>
+ </joystick>
+ </VideoMenu>
+ <OSDVideoSettings>
+ <joystick profile="game.controller.default">
+ <leftbumper>AspectRatio</leftbumper>
+ <x>Close</x>
+ </joystick>
+ </OSDVideoSettings>
+ <OSDAudioSettings>
+ <joystick profile="game.controller.default">
+ <leftbumper>AspectRatio</leftbumper>
+ <x>Close</x>
+ </joystick>
+ </OSDAudioSettings>
+ <VideoBookmarks>
+ <joystick profile="game.controller.default">
+ <leftbumper>Delete</leftbumper>
+ </joystick>
+ </VideoBookmarks>
+ <Videos>
+ </Videos>
+ <VideoPlaylist>
+ <joystick profile="game.controller.default">
+ <leftbumper>Delete</leftbumper>
+ </joystick>
+ </VideoPlaylist>
+ <VirtualKeyboard>
+ <joystick profile="game.controller.default">
+ <a>Select</a>
+ <a holdtime="500">Shift</a>
+ <b>BackSpace</b>
+ <y>Symbols</y>
+ <leftbumper>Shift</leftbumper>
+ <leftthumb>Enter</leftthumb>
+ <lefttrigger>CursorLeft</lefttrigger>
+ <righttrigger>CursorRight</righttrigger>
+ <x>VoiceRecognizer</x>
+ <start>VoiceRecognizer</start>
+ </joystick>
+ </VirtualKeyboard>
+ <ContextMenu>
+ <joystick profile="game.controller.default">
+ <b>Close</b>
+ </joystick>
+ </ContextMenu>
+ <Settings>
+ <joystick profile="game.controller.default">
+ <b>PreviousMenu</b>
+ </joystick>
+ </Settings>
+ <AddonInformation>
+ <joystick profile="game.controller.default">
+ <b>Close</b>
+ </joystick>
+ </AddonInformation>
+ <AddonSettings>
+ <joystick profile="game.controller.default">
+ <b>Close</b>
+ </joystick>
+ </AddonSettings>
+ <TextViewer>
+ <joystick profile="game.controller.default">
+ <b>Close</b>
+ </joystick>
+ </TextViewer>
+ <shutdownmenu>
+ <joystick profile="game.controller.default">
+ <b>PreviousMenu</b>
+ <leftthumb>PreviousMenu</leftthumb>
+ </joystick>
+ </shutdownmenu>
+ <submenu>
+ <joystick profile="game.controller.default">
+ <b>PreviousMenu</b>
+ </joystick>
+ </submenu>
+ <MusicInformation>
+ <joystick profile="game.controller.default">
+ <b>Close</b>
+ </joystick>
+ </MusicInformation>
+ <MovieInformation>
+ <joystick profile="game.controller.default">
+ <b>Close</b>
+ </joystick>
+ </MovieInformation>
+ <NumericInput>
+ <joystick profile="game.controller.default">
+ <b>BackSpace</b>
+ <leftthumb>Enter</leftthumb>
+ </joystick>
+ </NumericInput>
+ <GamepadInput>
+ <joystick profile="game.controller.default">
+ <leftthumb>Stop</leftthumb>
+ </joystick>
+ </GamepadInput>
+ <LockSettings>
+ <joystick profile="game.controller.default">
+ <b>PreviousMenu</b>
+ <leftthumb>Close</leftthumb>
+ </joystick>
+ </LockSettings>
+ <ProfileSettings>
+ <joystick profile="game.controller.default">
+ <b>PreviousMenu</b>
+ <leftthumb>Close</leftthumb>
+ </joystick>
+ </ProfileSettings>
+</keymap>
diff --git a/system/keymaps/keyboard.xml b/system/keymaps/keyboard.xml
new file mode 100644
index 0000000..49177c4
--- /dev/null
+++ b/system/keymaps/keyboard.xml
@@ -0,0 +1,849 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file contains the mapping of keyboard 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. -->
+<!-- -->
+<!-- Long presses -->
+<!-- A limitation is that if a single press is mapped in a section, a global "longpress"-->
+<!-- will be ignored. The workaround is to duplicate the long mapping in the section. -->
+<!-- -->
+<!-- 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>
+ <keyboard>
+ <p>Play</p>
+ <q>Queue</q>
+ <f>FastForward</f>
+ <r>Rewind</r>
+ <y>SwitchPlayer</y>
+ <left>Left</left>
+ <right>Right</right>
+ <up>Up</up>
+ <down>Down</down>
+ <left mod="ctrl">analogseekback</left>
+ <right mod="ctrl">analogseekforward</right>
+ <pageup>PageUp</pageup>
+ <pagedown>PageDown</pagedown>
+ <return>Select</return>
+ <return mod="longpress">ContextMenu</return>
+ <return mod="ctrl">Enter</return>
+ <enter>Select</enter>
+ <enter mod="longpress">ContextMenu</enter>
+ <enter mod="ctrl">Enter</enter>
+ <backspace>Back</backspace>
+ <browser_back>Back</browser_back>
+ <browser_back mod="longpress">ActivateWindow(Home)</browser_back>
+ <key id='65446'>Back</key>
+ <m>Menu</m>
+ <n mod="ctrl">ActivateWindow(PlayerControls)</n>
+ <s>ActivateWindow(ShutdownMenu)</s>
+ <escape>PreviousMenu</escape>
+ <escape mod="longpress">Back</escape>
+ <i>Info</i>
+ <menu>ContextMenu</menu>
+ <menu mod="longpress">Menu</menu>
+ <c>ContextMenu</c>
+ <c mod="longpress">Menu</c>
+ <space>Pause</space>
+ <x>Stop</x>
+ <period>SkipNext</period>
+ <comma>SkipPrevious</comma>
+ <tab>FullScreen</tab>
+ <printscreen>Screenshot</printscreen>
+ <s mod="ctrl">Screenshot</s>
+ <minus>VolumeDown</minus>
+ <plus>VolumeUp</plus>
+ <equals>VolumeUp</equals>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ <numpadminus>VolumeDown</numpadminus>
+ <numpadplus>VolumeUp</numpadplus>
+ <numpadzero>Number0</numpadzero>
+ <numpadone>Number1</numpadone>
+ <numpadtwo>Number2</numpadtwo>
+ <numpadthree>Number3</numpadthree>
+ <numpadfour>Number4</numpadfour>
+ <numpadfive>Number5</numpadfive>
+ <numpadsix>Number6</numpadsix>
+ <numpadseven>Number7</numpadseven>
+ <numpadeight>Number8</numpadeight>
+ <numpadnine>Number9</numpadnine>
+ <backslash>ToggleFullScreen</backslash>
+ <home>FirstPage</home>
+ <end>LastPage</end>
+ <power>ActivateWindow(ShutdownMenu)</power>
+ <sleep>ActivateWindow(ShutdownMenu)</sleep>
+ <!-- PVR windows -->
+ <e>ActivateWindow(TVGuide)</e>
+ <epg>ActivateWindow(TVGuide)</epg>
+ <h>ActivateWindow(TVChannels)</h>
+ <j>ActivateWindow(RadioChannels)</j>
+ <k>ActivateWindow(TVRecordings)</k>
+ <b>ActivateWindow(TVTimers)</b>
+ <!-- PVR -->
+ <red>ActivateWindow(TVChannels)</red>
+ <green>ActivateWindow(Videos)</green>
+ <yellow>ActivateWindow(Music)</yellow>
+ <blue>ActivateWindow(Pictures)</blue>
+ <!-- Multimedia keyboard keys -->
+ <browser_back>Back</browser_back>
+ <browser_forward/>
+ <browser_refresh/>
+ <browser_stop/>
+ <browser_search/>
+ <browser_favorites>ActivateWindow(FavouritesBrowser)</browser_favorites>
+ <favorites>ActivateWindow(FavouritesBrowser)</favorites>
+ <config>ActivateWindow(Settings)</config>
+ <browser_home>ActivateWindow(Home)</browser_home>
+ <homepage>ActivateWindow(Home)</homepage>
+ <volume_mute>Mute</volume_mute>
+ <volume_down>VolumeDown</volume_down>
+ <volume_up>VolumeUp</volume_up>
+ <next_track>SkipNext</next_track>
+ <prev_track>SkipPrevious</prev_track>
+ <stop>Stop</stop>
+ <play_pause>PlayPause</play_pause>
+ <play_pause mod="longpress">Info</play_pause>
+ <fastforward>FastForward</fastforward>
+ <rewind>Rewind</rewind>
+ <record/>
+ <launch_mail></launch_mail>
+ <launch_media_select>ActivateWindow(Music)</launch_media_select>
+ <launch_app1_pc_icon>ActivateWindow(Programs)</launch_app1_pc_icon>
+ <launch_app2_pc_icon>ActivateWindow(Programs)</launch_app2_pc_icon>
+ <launch_file_browser/>
+ <launch_media_center/>
+ <!-- ****************************************************** -->
+ <!-- MS Media Center keyboard shortcuts sent by MCE remotes -->
+ <!-- See http://msdn.microsoft.com/en-us/library/bb189249.aspx -->
+ <p mod="ctrl,shift">Play</p> <!-- Play -->
+ <s mod="ctrl,shift">Stop</s> <!-- Stop -->
+ <p mod="ctrl">Pause</p> <!-- Pause -->
+ <f mod="ctrl,shift">FastForward</f> <!-- Fwd -->
+ <b mod="ctrl,shift">Rewind</b> <!-- Rew -->
+ <f mod="ctrl">SkipNext</f> <!-- Skip -->
+ <b mod="ctrl">SkipPrevious</b> <!-- Replay -->
+ <d mod="ctrl">Info</d> <!-- MCE Details -->
+ <r mod="ctrl">Record</r> <!-- Record -->
+ <f4 mod="alt">PreviousMenu</f4> <!-- Exit -->
+ <f10>VolumeUp</f10> <!-- MCE Vol up -->
+ <f9>VolumeDown</f9> <!-- MCE Vol down -->
+ <f8>Mute</f8> <!-- MCE mute -->
+ <g mod="ctrl">ActivateWindow(TVGuide)</g> <!-- MCE Guide -->
+ <m mod="ctrl">ActivateWindow(music)</m> <!-- MCE My music -->
+ <i mod="ctrl">ActivateWindow(pictures)</i> <!-- MCE My pictures -->
+ <e mod="ctrl">ActivateWindow(videos)</e> <!-- MCE videos -->
+ <m mod="ctrl,shift">PlayerControl(ShowVideoMenu)</m> <!-- MCE DVD menu -->
+ <o mod="ctrl">ActivateWindow(TVRecordings)</o> <!-- MCE Recorded TV -->
+ <t mod="ctrl">ActivateWindow(TVChannels)</t> <!-- MCE Live TV -->
+ <t mod="ctrl,shift">ActivateWindow(TVChannels)</t> <!-- MCE TV -->
+ <a mod="ctrl">ActivateWindow(RadioChannels)</a> <!-- MCE Radio -->
+ <!-- MCE keypresses without an obvious use in Kodi -->
+ <u mod="ctrl">Notification(MCEKeypress, DVD subtitle, 3)</u>
+ <a mod="ctrl,shift">Notification(MCEKeypress, DVD audio, 3)</a>
+ <k mod="ctrl,shift">ReloadKeymaps</k>
+ <d mod="ctrl,shift">ToggleDebug</d>
+ <r mod="ctrl,shift">ToggleDirtyRegionVisualization</r>
+ <f11>HDRToggle</f11>
+ </keyboard>
+ </global>
+ <LoginScreen>
+ <keyboard>
+ <end mod="ctrl">ShutDown()</end>
+ </keyboard>
+ </LoginScreen>
+ <Home>
+ <keyboard>
+ <i>info</i>
+ <end mod="ctrl">ShutDown()</end>
+ <backspace mod="longpress">ActivateWindow(ShutdownMenu)</backspace>
+ </keyboard>
+ </Home>
+ <VirtualKeyboard>
+ <keyboard>
+ <c mod="longpress">noop</c>
+ <left>Left</left>
+ <right>Right</right>
+ <up>Up</up>
+ <down>Down</down>
+ <return>Select</return>
+ <enter>Select</enter>
+ <backspace>Backspace</backspace>
+ <browser_back>Backspace</browser_back>
+ <browser_back mod="longpress">PreviousMenu</browser_back>
+ <play_pause mod="longpress">Enter</play_pause>
+ <browser_search>VoiceRecognizer</browser_search>
+ <menu>VoiceRecognizer</menu>
+ <return mod="longpress">VoiceRecognizer</return>
+ <enter mod="longpress">VoiceRecognizer</enter>
+ <play_pause>VoiceRecognizer</play_pause>
+ </keyboard>
+ </VirtualKeyboard>
+ <TVChannels>
+ <keyboard>
+ <delete>Delete</delete>
+ <m mod="ctrl">Move</m>
+ <h>PreviousMenu</h>
+ <period mod="longpress">ChannelNumberSeparator</period>
+ <numpadperiod>ChannelNumberSeparator</numpadperiod>
+ </keyboard>
+ </TVChannels>
+ <TVRecordings>
+ <keyboard>
+ <delete>Delete</delete>
+ <r>Rename</r>
+ <k>PreviousMenu</k>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </keyboard>
+ </TVRecordings>
+ <TVTimers>
+ <keyboard>
+ <delete>Delete</delete>
+ <r>Rename</r>
+ <b>PreviousMenu</b>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </keyboard>
+ </TVTimers>
+ <TVTimerRules>
+ <keyboard>
+ <delete>Delete</delete>
+ <r>Rename</r>
+ <b>PreviousMenu</b>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </keyboard>
+ </TVTimerRules>
+ <TVGuide>
+ <keyboard>
+ <e>PreviousMenu</e>
+ <t>ShowTimerRule</t>
+ <epg>PreviousMenu</epg>
+ <g>NextChannelGroup</g>
+ <n>ActivateWindow(PVRGuideControls)</n>
+ <backspace mod="longpress">Number0</backspace> <!-- 0 key goes to "now" on EPG timeline -->
+ <browser_back mod="longpress">Number0</browser_back> <!-- 0 key goes to "now" on EPG timeline -->
+ <period mod="longpress">ChannelNumberSeparator</period>
+ <numpadperiod>ChannelNumberSeparator</numpadperiod>
+ </keyboard>
+ </TVGuide>
+ <RadioChannels>
+ <keyboard>
+ <delete>Delete</delete>
+ <m mod="ctrl">Move</m>
+ <j>PreviousMenu</j>
+ <period mod="longpress">ChannelNumberSeparator</period>
+ <numpadperiod>ChannelNumberSeparator</numpadperiod>
+ </keyboard>
+ </RadioChannels>
+ <RadioRecordings>
+ <keyboard>
+ <delete>Delete</delete>
+ <r>Rename</r>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </keyboard>
+ </RadioRecordings>
+ <RadioTimers>
+ <keyboard>
+ <delete>Delete</delete>
+ <r>Rename</r>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </keyboard>
+ </RadioTimers>
+ <RadioTimerRules>
+ <keyboard>
+ <delete>Delete</delete>
+ <r>Rename</r>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </keyboard>
+ </RadioTimerRules>
+ <RadioGuide>
+ <keyboard>
+ <e>PreviousMenu</e>
+ <t>ShowTimerRule</t>
+ <epg>PreviousMenu</epg>
+ <g>NextChannelGroup</g>
+ <n>ActivateWindow(PVRGuideControls)</n>
+ <backspace mod="longpress">Number0</backspace> <!-- 0 key goes to "now" on EPG timeline -->
+ <browser_back mod="longpress">Number0</browser_back> <!-- 0 key goes to "now" on EPG timeline -->
+ <period mod="longpress">ChannelNumberSeparator</period>
+ <numpadperiod>ChannelNumberSeparator</numpadperiod>
+ </keyboard>
+ </RadioGuide>
+ <FileManager>
+ <keyboard>
+ <space>Highlight</space>
+ <delete>Delete</delete>
+ <m>Move</m>
+ <r>Rename</r>
+ <play_pause mod="longpress">Highlight</play_pause>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </FileManager>
+ <MusicPlaylist>
+ <keyboard>
+ <n>Back</n>
+ <delete>Delete</delete>
+ <u>MoveItemUp</u>
+ <d>MoveItemDown</d>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </MusicPlaylist>
+ <MusicPlaylistEditor>
+ <keyboard>
+ <u>MoveItemUp</u>
+ <d>MoveItemDown</d>
+ <delete>Delete</delete>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </MusicPlaylistEditor>
+ <Music>
+ <keyboard>
+ <n>Playlist</n>
+ <q>Queue</q>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </Music>
+ <FullscreenVideo>
+ <keyboard>
+ <f>FastForward</f>
+ <r>Rewind</r>
+ <period>StepForward</period>
+ <comma>StepBack</comma>
+ <backspace>Fullscreen</backspace>
+ <backspace mod="longpress">Stop</backspace>
+ <browser_back>Fullscreen</browser_back>
+ <browser_back mod="longpress">Stop</browser_back>
+ <quote>Seek(-7)</quote> <!-- Replaces smallstepback -->
+ <opensquarebracket>BigStepForward</opensquarebracket>
+ <closesquarebracket>BigStepBack</closesquarebracket>
+ <return>OSD</return>
+ <enter>OSD</enter>
+ <return mod="longpress">PlayPause</return>
+ <enter mod="longpress">PlayPause</enter>
+ <m>OSD</m>
+ <menu>OSD</menu>
+ <i>Info</i>
+ <o>PlayerProcessInfo</o>
+ <o mod="ctrl,shift">PlayerDebug</o>
+ <o mod="alt">PlayerDebugVideo</o>
+ <z>AspectRatio</z>
+ <zoom>AspectRatio</zoom>
+ <t>ShowSubtitles</t>
+ <t mod="ctrl">SubtitleAlign</t>
+ <l>NextSubtitle</l>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ <up>ChapterOrBigStepForward</up>
+ <down>ChapterOrBigStepBack</down>
+ <up mod="longpress">AudioNextLanguage</up>
+ <down mod="longpress">NextSubtitle</down>
+ <left mod="alt">PlayerControl(tempodown)</left>
+ <right mod="alt">PlayerControl(tempoup)</right>
+ <a>AudioDelay</a>
+ <a mod="ctrl">AudioNextLanguage</a>
+ <escape>Fullscreen</escape>
+ <c>Playlist</c>
+ <v>ActivateWindow(Teletext)</v>
+ <v mod="ctrl">VideoNextStream</v>
+ <text>ActivateWindow(Teletext)</text>
+ <up mod="ctrl">SubtitleShiftUp</up>
+ <down mod="ctrl">SubtitleShiftDown</down>
+ <pageup>SkipNext</pageup>
+ <pagedown>SkipPrevious</pagedown>
+ <plus mod="ctrl">VolAmpUp</plus>
+ <equals mod="ctrl">VolAmpUp</equals>
+ <minus mod="ctrl">VolAmpDown</minus>
+ <b mod="ctrl">CreateBookmark</b>
+ <b mod="alt">CreateEpisodeBookmark</b>
+ <f11 mod="alt">CycleToneMapMethod</f11>
+ </keyboard>
+ </FullscreenVideo>
+ <FullscreenGame>
+ <keyboard>
+ <f>FastForward</f>
+ <r>Rewind</r>
+ <backspace>OSD</backspace>
+ <backspace mod="longpress">Stop</backspace>
+ <browser_back>OSD</browser_back>
+ <browser_back mod="longpress">Stop</browser_back>
+ <return>OSD</return>
+ <enter>OSD</enter>
+ <m>OSD</m>
+ <menu>OSD</menu>
+ <i>Info</i>
+ <o>CodecInfo</o>
+ <z>AspectRatio</z>
+ <zoom>AspectRatio</zoom>
+ <escape>OSD</escape>
+ </keyboard>
+ </FullscreenGame>
+ <GameOSD>
+ <keyboard>
+ <m>OSD</m>
+ <menu>OSD</menu>
+ </keyboard>
+ </GameOSD>
+ <GameSaves>
+ <keyboard>
+ <delete>delete</delete>
+ </keyboard>
+ </GameSaves>
+ <InGameSaves>
+ <keyboard>
+ <delete>delete</delete>
+ </keyboard>
+ </InGameSaves>
+ <VideoTimeSeek>
+ <keyboard>
+ <return>Select</return>
+ <enter>Select</enter>
+ </keyboard>
+ </VideoTimeSeek>
+ <FullscreenInfo>
+ <keyboard>
+ <f>FastForward</f>
+ <r>Rewind</r>
+ <period>StepForward</period>
+ <o>PlayerProcessInfo</o>
+ <i>Back</i>
+ <d mod="ctrl">Back</d>
+ <m>OSD</m>
+ <menu>OSD</menu>
+ <return mod="longpress">PlayPause</return>
+ <enter mod="longpress">PlayPause</enter>
+ </keyboard>
+ </FullscreenInfo>
+ <PlayerControls>
+ <keyboard>
+ <m mod="ctrl">Back</m>
+ </keyboard>
+ </PlayerControls>
+ <Visualisation>
+ <keyboard>
+ <f>FastForward</f>
+ <r>Rewind</r>
+ <period>SkipNext</period>
+ <comma>SkipPrevious</comma>
+ <pageup>IncreaseRating</pageup>
+ <pagedown>DecreaseRating</pagedown>
+ <backspace>Fullscreen</backspace>
+ <backspace mod="longpress">Stop</backspace>
+ <browser_back>Fullscreen</browser_back>
+ <browser_back mod="longpress">Stop</browser_back>
+ <return>OSD</return>
+ <return mod="longpress">PlayPause</return>
+ <enter>OSD</enter>
+ <enter mod="longpress">PlayPause</enter>
+ <m>OSD</m>
+ <menu>OSD</menu>
+ <i>Info</i>
+ <p>ActivateWindow(VisualisationPresetList)</p>
+ <v>Addon.Default.OpenSettings(xbmc.player.musicviz)</v>
+ <text>Addon.Default.OpenSettings(xbmc.player.musicviz)</text>
+ <n>ActivateWindow(MusicPlaylist)</n>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ <left mod="longpress">Rewind</left>
+ <right mod="longpress">FastForward</right>
+ <up>SkipNext</up>
+ <down>SkipPrevious</down>
+ <o>PlayerProcessInfo</o>
+ <l>LockPreset</l>
+ <escape>FullScreen</escape>
+ </keyboard>
+ </Visualisation>
+ <MusicOSD>
+ <keyboard>
+ <f>FastForward</f>
+ <r>Rewind</r>
+ <period>SkipNext</period>
+ <comma>SkipPrevious</comma>
+ <m>Back</m>
+ <menu>Back</menu>
+ <i>Info</i>
+ <o>PlayerProcessInfo</o>
+ <p>ActivateWindow(VisualisationPresetList)</p>
+ <v>Addon.Default.OpenSettings(xbmc.player.musicviz)</v>
+ <text>Addon.Default.OpenSettings(xbmc.player.musicviz)</text>
+ <n>ActivateWindow(MusicPlaylist)</n>
+ </keyboard>
+ </MusicOSD>
+ <VisualisationPresetList>
+ <keyboard>
+ <f>FastForward</f>
+ <r>Rewind</r>
+ <period>SkipNext</period>
+ <comma>SkipPrevious</comma>
+ <m>Back</m>
+ <i>Info</i>
+ <o>PlayerProcessInfo</o>
+ <p>Back</p>
+ <v>Back</v>
+ <text>Back</text>
+ <n>ActivateWindow(MusicPlaylist)</n>
+ </keyboard>
+ </VisualisationPresetList>
+ <SlideShow>
+ <keyboard>
+ <zero>ZoomNormal</zero>
+ <one>ZoomLevel1</one>
+ <two>ZoomLevel2</two>
+ <three>ZoomLevel3</three>
+ <four>ZoomLevel4</four>
+ <five>ZoomLevel5</five>
+ <six>ZoomLevel6</six>
+ <seven>ZoomLevel7</seven>
+ <eight>ZoomLevel8</eight>
+ <nine>ZoomLevel9</nine>
+ <i>Info</i>
+ <o>Info</o>
+ <period>NextPicture</period>
+ <comma>PreviousPicture</comma>
+ <plus>ZoomIn</plus>
+ <minus>ZoomOut</minus>
+ <return>Rotate</return>
+ <enter>Rotate</enter>
+ <r>Rotate</r>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </SlideShow>
+ <ScreenCalibration>
+ <keyboard>
+ <return>NextCalibration</return>
+ <enter>NextCalibration</enter>
+ <d>ResetCalibration</d>
+ <r>NextResolution</r>
+ </keyboard>
+ </ScreenCalibration>
+ <ScreenCalibration>
+ <keyboard>
+ <return>NextCalibration</return>
+ <enter>NextCalibration</enter>
+ <d>ResetCalibration</d>
+ </keyboard>
+ </ScreenCalibration>
+ <VideoOSD>
+ <keyboard>
+ <m>Back</m>
+ <menu>Back</menu>
+ <g mod="ctrl">Back</g> <!-- MCE Guide button -->
+ <i>Info</i>
+ <o>PlayerProcessInfo</o>
+ </keyboard>
+ </VideoOSD>
+ <VideoMenu>
+ <keyboard>
+ <opensquarebracket>BigStepForward</opensquarebracket>
+ <closesquarebracket>BigStepBack</closesquarebracket>
+ <m>OSD</m>
+ <menu>OSD</menu>
+ <i>Info</i>
+ <o>PlayerProcessInfo</o>
+ <z>AspectRatio</z>
+ <zoom>AspectRatio</zoom>
+ <t>ShowSubtitles</t>
+ <l>NextSubtitle</l>
+ <a>AudioDelay</a>
+ <escape>Fullscreen</escape>
+ <return>Select</return>
+ <enter>Select</enter> <!-- backspace>Fullscreen</backspace -->
+ <pageup>SkipNext</pageup>
+ <pagedown>SkipPrevious</pagedown>
+ </keyboard>
+ </VideoMenu>
+ <OSDVideoSettings>
+ <keyboard>
+ <i>Info</i>
+ <o>PlayerProcessInfo</o>
+ </keyboard>
+ </OSDVideoSettings>
+ <OSDAudioSettings>
+ <keyboard>
+ <i>Info</i>
+ <o>PlayerProcessInfo</o>
+ </keyboard>
+ </OSDAudioSettings>
+ <VideoBookmarks>
+ <keyboard>
+ <delete>Delete</delete>
+ </keyboard>
+ </VideoBookmarks>
+ <Videos>
+ <keyboard>
+ <delete>Delete</delete>
+ <n>Playlist</n>
+ <w>ToggleWatched</w>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </Videos>
+ <VideoPlaylist>
+ <keyboard>
+ <n>Back</n>
+ <delete>Delete</delete>
+ <u>MoveItemUp</u>
+ <d>MoveItemDown</d>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </VideoPlaylist>
+ <Pictures>
+ <keyboard>
+ <delete>Delete</delete>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </Pictures>
+ <ContextMenu>
+ <keyboard>
+ <c>Back</c>
+ <menu>Back</menu>
+ </keyboard>
+ </ContextMenu>
+ <MusicInformation>
+ <keyboard>
+ <i>Back</i>
+ <d mod="ctrl">Back</d>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </MusicInformation>
+ <MovieInformation>
+ <keyboard>
+ <i>Back</i>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </MovieInformation>
+ <PictureInfo>
+ <keyboard>
+ <period>NextPicture</period>
+ <comma>PreviousPicture</comma>
+ <i>Back</i>
+ <d mod="ctrl">Back</d>
+ <o>Back</o>
+ <space>Pause</space>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </PictureInfo>
+ <Teletext>
+ <keyboard>
+ <v>Back</v>
+ <text>Back</text>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </keyboard>
+ </Teletext>
+ <Favourites>
+ <keyboard>
+ <backspace>Close</backspace>
+ <browser_back>Close</browser_back>
+ <u>MoveItemUp</u>
+ <d>MoveItemDown</d>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </Favourites>
+ <FavouritesBrowser>
+ <keyboard>
+ <u>MoveItemUp</u>
+ <d>MoveItemDown</d>
+ <delete>Delete</delete>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </FavouritesBrowser>
+ <NumericInput>
+ <keyboard>
+ <backspace>Close</backspace>
+ <browser_back>Close</browser_back>
+ </keyboard>
+ </NumericInput>
+ <FullscreenLiveTV>
+ <keyboard>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ <up>Up</up>
+ <down>Down</down>
+ <return>OSD</return>
+ <enter>OSD</enter>
+ <g>ActivateWindow(PVRChannelGuide)</g>
+ <c>ActivateWindow(PVROSDChannels)</c>
+ <return mod="longpress">ActivateWindow(PVROSDChannels)</return>
+ <enter mod="longpress">ActivateWindow(PVROSDChannels)</enter>
+ <pageup>ChannelUp</pageup>
+ <pagedown>ChannelDown</pagedown>
+ <period mod="longpress">ChannelNumberSeparator</period>
+ <numpadperiod>ChannelNumberSeparator</numpadperiod>
+ </keyboard>
+ </FullscreenLiveTV>
+ <FullscreenRadio>
+ <keyboard>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ <up>Up</up>
+ <down>Down</down>
+ <return>OSD</return>
+ <enter>OSD</enter>
+ <g>ActivateWindow(PVRChannelGuide)</g>
+ <c>ActivateWindow(PVROSDChannels)</c>
+ <return mod="longpress">ActivateWindow(PVROSDChannels)</return>
+ <enter mod="longpress">ActivateWindow(PVROSDChannels)</enter>
+ <pageup>ChannelUp</pageup>
+ <pagedown>ChannelDown</pagedown>
+ <period mod="longpress">ChannelNumberSeparator</period>
+ <numpadperiod>ChannelNumberSeparator</numpadperiod>
+ </keyboard>
+ </FullscreenRadio>
+ <FullscreenLiveTvPreview>
+ <keyboard>
+ <return>Select</return>
+ <enter>Select</enter>
+ </keyboard>
+ </FullscreenLiveTvPreview>
+ <FullscreenRadioPreview>
+ <keyboard>
+ <return>Select</return>
+ <enter>Select</enter>
+ </keyboard>
+ </FullscreenRadioPreview>
+ <FullscreenLiveTvInput>
+ <keyboard>
+ <return>Select</return>
+ <enter>Select</enter>
+ <period>ChannelNumberSeparator</period>
+ <numpadperiod>ChannelNumberSeparator</numpadperiod>
+ </keyboard>
+ </FullscreenLiveTvInput>
+ <FullscreenRadioInput>
+ <keyboard>
+ <return>Select</return>
+ <enter>Select</enter>
+ <period>ChannelNumberSeparator</period>
+ <numpadperiod>ChannelNumberSeparator</numpadperiod>
+ </keyboard>
+ </FullscreenRadioInput>
+ <PVROSDChannels>
+ <keyboard>
+ <period mod="longpress">ChannelNumberSeparator</period>
+ <numpadperiod>ChannelNumberSeparator</numpadperiod>
+ <backspace>Close</backspace>
+ <escape>Close</escape>
+ <browser_back>Close</browser_back>
+ </keyboard>
+ </PVROSDChannels>
+ <PVRChannelGuide>
+ <keyboard>
+ <backspace>Close</backspace>
+ <escape>Close</escape>
+ <browser_back>Close</browser_back>
+ </keyboard>
+ </PVRChannelGuide>
+ <PVRSettings>
+ <keyboard>
+ <backspace>PreviousMenu</backspace>
+ <browser_back>PreviousMenu</browser_back>
+ </keyboard>
+ </PVRSettings>
+ <FileBrowser>
+ <keyboard>
+ <space>Highlight</space>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </FileBrowser>
+ <ShutdownMenu>
+ <keyboard>
+ <s>Back</s>
+ </keyboard>
+ </ShutdownMenu>
+ <AddonInformation>
+ <keyboard>
+ <i>Back</i>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </AddonInformation>
+ <AddonSettings>
+ <keyboard>
+ <delete>Delete</delete>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </AddonSettings>
+ <Addon>
+ <keyboard>
+ <f1>Red</f1>
+ <red>Red</red>
+ <f2>Green</f2>
+ <green>Green</green>
+ <f3>Yellow</f3>
+ <yellow>Yellow</yellow>
+ <f4>Blue</f4>
+ <blue>Blue</blue>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </Addon>
+ <Programs>
+ <keyboard>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </Programs>
+ <Settings>
+ <keyboard>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </Settings>
+ <MediaFilter>
+ <keyboard>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </MediaFilter>
+ <Weather>
+ <keyboard>
+ <backspace mod="longpress">ActivateWindow(Home)</backspace>
+ </keyboard>
+ </Weather>
+ <PlayerProcessInfo>
+ <keyboard>
+ <o>PlayerProcessInfo</o>
+ </keyboard>
+ </PlayerProcessInfo>
+ <TextViewer>
+ <keyboard>
+ <t>ToggleFont</t>
+ </keyboard>
+ </TextViewer>
+</keymap>
diff --git a/system/keymaps/mouse.xml b/system/keymaps/mouse.xml
new file mode 100644
index 0000000..3bb3f43
--- /dev/null
+++ b/system/keymaps/mouse.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file contains the mapping of mouse 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 <middleclick>ActivateWindow(Music)</middleclick> -->
+<!-- would automatically go to Music on the press of the middle mouse button. -->
+<!-- -->
+<!-- -->
+<!-- An empty action removes the corresponding mapping from default and parent keymaps. -->
+<!-- This is different from a "noop" action, which disables a button. -->
+<!-- -->
+<!-- Button Ids: -->
+<!-- 0: left -->
+<!-- 1: right -->
+<!-- 2: middle -->
+<!-- 3/4/5/6: extra -->
+<!-- -->
+<!-- More documentation on keymaps can be found on http://kodi.wiki/view/keymaps -->
+<keymap>
+ <global>
+ <mouse>
+ <leftclick>leftclick</leftclick>
+ <rightclick>rightclick</rightclick>
+ <middleclick>middleclick</middleclick>
+ <doubleclick id="0">doubleclick</doubleclick>
+ <longclick id="0">contextmenu</longclick>
+ <longclick id="2">Menu</longclick> <!-- access to the blade menu via long right-click -->
+ <wheeldown>wheeldown</wheeldown>
+ <wheelup>wheelup</wheelup>
+ <mousedrag>mousedrag</mousedrag>
+ <mousedragend>mousedragend</mousedragend>
+ <mousemove>mousemove</mousemove>
+ </mouse>
+ </global>
+ <SlideShow>
+ <mouse>
+ <leftclick>Pause</leftclick>
+ <rightclick>PreviousMenu</rightclick>
+ <wheelup>PreviousPicture</wheelup>
+ <wheeldown>NextPicture</wheeldown>
+ </mouse>
+ </SlideShow>
+ <FullscreenVideo>
+ <mouse>
+ <rightclick>Info</rightclick>
+ </mouse>
+ </FullscreenVideo>
+ <FullscreenGame>
+ <mouse>
+ <rightclick>Info</rightclick>
+ </mouse>
+ </FullscreenGame>
+ <contextmenu> <!-- Give a way out of the context menu without actually having to select something. -->
+ <mouse>
+ <rightclick>back</rightclick>
+ </mouse>
+ </contextmenu>
+</keymap>
diff --git a/system/keymaps/nyxboard/keyboard.xml b/system/keymaps/nyxboard/keyboard.xml
new file mode 100644
index 0000000..d868419
--- /dev/null
+++ b/system/keymaps/nyxboard/keyboard.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Mappings for the Motorola Nyxboard remote -->
+<keymap>
+ <global>
+ <keyboard>
+ <home>ActivateWindow(Home)</home>
+ <f3>OSD</f3> <!-- EPG: same as Guide (ctrl-G) on MCE remote -->
+ <f3 mod="shift">ActivateWindow(videos)</f3> <!-- Red -->
+ <f4 mod="shift">ActivateWindow(music)</f4> <!-- Green -->
+ <f5 mod="shift">ActivateWindow(pictures)</f5> <!-- Yellow -->
+ <f6 mod="shift">ActivateWindow(programs)</f6> <!-- Blue -->
+ <f4>ContextMenu</f4> <!-- User button -->
+ </keyboard>
+ </global>
+</keymap>
diff --git a/system/keymaps/osmc/osmc_remote.xml b/system/keymaps/osmc/osmc_remote.xml
new file mode 100644
index 0000000..79f392e
--- /dev/null
+++ b/system/keymaps/osmc/osmc_remote.xml
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- The second and third generation OSMC remotes use i and c keys that stop functioning with some keyboard languages in OSMC. -->
+<!-- We have remapped those keys in OSMC to kpleftparen and kprightparen with udev to overcome this issue. This file maps those keys to -->
+<!-- Kodi actions and adds tweaks to provide enhanced function. Home was remapped in v1&2 for consistency. The buttons map in Kodi as... -->
+<!-- -->
+<!-- OSMC with udev remap non-OSMCv1 non-OSMCv2 non-OSMCv3 -->
+<!-- Home = escape <key id="61467"> Home = home Home = home Home = escape -->
+<!-- Info = leftbracket <key id="61480"> Info = Info = i Info = i -->
+<!-- Up = up <key id="61568"> Up = up Up = up Up = up -->
+<!-- Down = down <key id="61569"> Down = down Down = down Down = down -->
+<!-- Left = left <key id="61570"> Left = left Left = left Left = left -->
+<!-- Right = right <key id="61571"> Right = right Right = right Right = right -->
+<!-- OK = return <key id="61453"> OK = return OK = return OK = return -->
+<!-- Back = browser_back <key id="61616"> Back = browser_back Back = browser_back Back = browser_back -->
+<!-- Menu = rightbracket <key id="61481"> Menu = Menu = c Menu = c -->
+<!-- Play = play_pause <key id="61629"> Play = play_pause Play = play_pause Play = play_pause -->
+<!-- Stop = stop <key id="61628"> Stop = stop Stop = stop Stop = stop -->
+<!-- Vol- = volume_down <key id="61624"> RW = rewind Vol- = minus Vol- = minus -->
+<!-- Vol+ = volume_up <key id="61625"> FF = fastforward Vol+ = equals Vol+ = equals -->
+<!-- -->
+<!-- Keymap created by DarwinDesign version 20-11-02 -->
+<!-- -->
+<keymap>
+ <global>
+ <keyboard>
+ <escape>PreviousMenu</escape>
+ <home>PreviousMenu</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ <leftbracket>Info</leftbracket>
+ <i>Info</i>
+ <leftbracket mod="longpress">noop</leftbracket> <!-- stops cycling -->
+ <i mod="longpress">noop</i> <!-- stops cycling -->
+ <left>Left</left>
+ <right>Right</right>
+ <up>Up</up>
+ <down>Down</down>
+ <return>Select</return>
+ <return mod="longpress">noop</return> <!-- removes default context menu & stops cycling -->
+ <browser_back>Back</browser_back>
+ <rightbracket>ContextMenu</rightbracket>
+ <c>ContextMenu</c>
+ <rightbracket mod="longpress">Menu</rightbracket>
+ <c mod="longpress">Menu</c>
+ <play_pause>PlayPause</play_pause>
+ <p>PlayPause</p>
+ <play_pause mod="longpress">noop</play_pause> <!-- removes default info & stops cycling -->
+ <p mod="longpress">noop</p>
+ <stop>Stop</stop>
+ <x>Stop</x>
+ <volume_down>VolumeDown</volume_down>
+ <volume_up>VolumeUp</volume_up>
+ <f2>Notification(OSMC Remote Controller, Low Battery Please Replace,5000)</f2>
+ </keyboard>
+ </global>
+ <Home>
+ <keyboard>
+ <escape>CECActivateSource</escape>
+ <home>CECActivateSource</home>
+ <escape mod="longpress">CECStandby</escape>
+ <home mod="longpress">CECStandby</home>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <browser_back mod="longpress">ActivateWindow(ShutdownMenu)</browser_back>
+ <return mod="longpress">ReloadSkin()</return>
+ <play_pause mod="longpress">UpdateLibrary(video)</play_pause>
+ <p mod="longpress">UpdateLibrary(video)</p>
+ </keyboard>
+ </Home>
+ <VirtualKeyboard>
+ <keyboard>
+ <rightbracket mod="longpress">noop</rightbracket>
+ <c mod="longpress">noop</c>
+ <up mod="longpress">Shift</up>
+ <down mod="longpress">Symbols</down>
+ <return mod="longpress">Enter</return>
+ </keyboard>
+ </VirtualKeyboard>
+ <FileManager>
+ <keyboard>
+ <right mod="longpress">Highlight</right>
+ <left mod="longpress">Highlight</left>
+ </keyboard>
+ </FileManager>
+ <FullscreenVideo>
+ <keyboard>
+ <escape>ActivateWindow(videobookmarks)</escape>
+ <home>ActivateWindow(videobookmarks)</home>
+ <escape mod="longpress">playerdebug</escape>
+ <home mod="longpress">playerdebug</home>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <return mod="longpress">Playlist</return>
+ <up mod="longpress">SkipNext</up>
+ <down mod="longpress">SkipPrevious</down>
+ <left mod="longpress">AudioDelay</left>
+ <right mod="longpress">subtitledelay</right>
+ <rightbracket>ActivateWindow(osdvideosettings)</rightbracket>
+ <c>ActivateWindow(osdvideosettings)</c>
+ <rightbracket mod="longpress">ActivateWindow(osdaudiosettings)</rightbracket>
+ <c mod="longpress">ActivateWindow(osdaudiosettings)</c>
+ <play_pause mod="longpress">showsubtitles</play_pause>
+ <p mod="longpress">showsubtitles</p>
+ <stop mod="longpress">ActivateWindow(osdsubtitlesettings)</stop>
+ <x mod="longpress">ActivateWindow(osdsubtitlesettings)</x>
+ </keyboard>
+ </FullscreenVideo>
+ <FullscreenGame>
+ <keyboard>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <rightbracket>OSD</rightbracket>
+ <c>OSD</c>
+ </keyboard>
+ </FullscreenGame>
+ <FullscreenInfo>
+ <keyboard>
+ <leftbracket>Back</leftbracket>
+ <i>Back</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <rightbracket>Back</rightbracket>
+ <c>Back</c>
+ </keyboard>
+ </FullscreenInfo>
+ <Visualisation>
+ <keyboard>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ <return mod="longpress">ActivateWindow(MusicPlaylist)</return>
+ <rightbracket>Addon.Default.OpenSettings(xbmc.player.musicviz)</rightbracket>
+ <c>Addon.Default.OpenSettings(xbmc.player.musicviz)</c>
+ <rightbracket mod="longpress">ActivateWindow(VisualisationPresetList)</rightbracket>
+ <c mod="longpress">ActivateWindow(VisualisationPresetList)</c>
+ <p/>
+ </keyboard>
+ </Visualisation>
+ <MusicOSD>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <return mod="longpress">back</return>
+ <rightbracket>Addon.Default.OpenSettings(xbmc.player.musicviz)</rightbracket>
+ <c>Addon.Default.OpenSettings(xbmc.player.musicviz)</c>
+ <rightbracket mod="longpress">ActivateWindow(VisualisationPresetList)</rightbracket>
+ <c mod="longpress">ActivateWindow(VisualisationPresetList)</c>
+ <p/>
+ </keyboard>
+ </MusicOSD>
+ <VisualisationPresetList>
+ <keyboard>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <rightbracket>back</rightbracket>
+ <c>back</c>
+ <p/>
+ </keyboard>
+ </VisualisationPresetList>
+ <slideshow>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <play_pause>pause</play_pause>
+ <p>pause</p>
+ <up mod="longpress">ZoomIn</up>
+ <down mod="longpress">ZoomOut</down>
+ <return mod="longpress">ZoomNormal</return>
+ <rightbracket></rightbracket> <!-- removes mapping from osmc-classic -->
+ </keyboard>
+ </slideshow>
+ <VideoOSD>
+ <keyboard>
+ <escape>ActivateWindow(videobookmarks)</escape>
+ <home>ActivateWindow(videobookmarks)</home>
+ <escape mod="longpress">playerdebug</escape>
+ <home mod="longpress">playerdebug</home>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <up mod="longpress">SkipNext</up>
+ <down mod="longpress">SkipPrevious</down>
+ <left mod="longpress">AudioDelay</left>
+ <right mod="longpress">subtitledelay</right>
+ <rightbracket>ActivateWindow(osdvideosettings)</rightbracket>
+ <return mod="longpress">back</return>
+ <c>ActivateWindow(osdvideosettings)</c>
+ <rightbracket mod="longpress">ActivateWindow(osdaudiosettings)</rightbracket>
+ <c mod="longpress">ActivateWindow(osdaudiosettings)</c>
+ <play_pause mod="longpress">showsubtitles</play_pause>
+ <p mod="longpress">showsubtitles</p>
+ <stop mod="longpress">ActivateWindow(osdsubtitlesettings)</stop>
+ <x mod="longpress">ActivateWindow(osdsubtitlesettings)</x>
+ </keyboard>
+ </VideoOSD>
+ <VideoMenu>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <rightbracket></rightbracket> <!-- removes mapping from osmc-classic -->
+ </keyboard>
+ </VideoMenu>
+ <OSDVideoSettings>
+ <keyboard>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <rightbracket>back</rightbracket>
+ <c>back</c>
+ <stop>back</stop>
+ <x>back</x>
+ </keyboard>
+ </OSDVideoSettings>
+ <OSDAudioSettings>
+ <keyboard>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <rightbracket>back</rightbracket>
+ <c>back</c>
+ <stop>back</stop>
+ <x>back</x>
+ </keyboard>
+ </OSDAudioSettings>
+ <osdsubtitlesettings>
+ <keyboard>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <rightbracket>back</rightbracket>
+ <c>back</c>
+ <stop>back</stop>
+ <x>back</x>
+ </keyboard>
+ </osdsubtitlesettings>
+ <VideoBookmarks>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ <rightbracket mod="longpress">back</rightbracket>
+ <c mod="longpress">back</c>
+ </keyboard>
+ </VideoBookmarks>
+ <Videos>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ <return mod="longpress">SendClick(14)</return> <!-- Toggle view between unwatched and all videos -->
+ <play_pause mod="longpress">togglewatched</play_pause>
+ <p mod="longpress">togglewatched</p>
+ </keyboard>
+ </Videos>
+ <VideoPlaylist>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ <return mod="longpress">Back</return>
+ </keyboard>
+ </VideoPlaylist>
+ <ContextMenu>
+ <keyboard>
+ <rightbracket>Back</rightbracket>
+ <c>Back</c>
+ </keyboard>
+ </ContextMenu>
+ <MusicInformation>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ <leftbracket>Back</leftbracket>
+ <i>Back</i>
+ <leftbracket mod="longpress">noop</leftbracket> <!-- stops cycling -->
+ <i mod="longpress">noop</i> <!-- stops cycling -->
+ <rightbracket>Back</rightbracket>
+ <c>Back</c>
+ </keyboard>
+ </MusicInformation>
+ <MusicPlaylist>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ <return mod="longpress">back</return>
+ </keyboard>
+ </MusicPlaylist>
+ <SongInformation>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ <leftbracket>Back</leftbracket>
+ <i>Back</i>
+ <leftbracket mod="longpress">noop</leftbracket> <!-- stops cycling -->
+ <i mod="longpress">noop</i> <!-- stops cycling -->
+ <rightbracket>Back</rightbracket>
+ <c>Back</c>
+ </keyboard>
+ </SongInformation>
+ <MovieInformation>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ <leftbracket>Back</leftbracket>
+ <i>Back</i>
+ <leftbracket mod="longpress">noop</leftbracket> <!-- stops cycling -->
+ <i mod="longpress">noop</i> <!-- stops cycling -->
+ <rightbracket>Back</rightbracket>
+ <c>Back</c>
+ </keyboard>
+ </MovieInformation>
+ <PictureInfo>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ <leftbracket>Back</leftbracket>
+ <i>Back</i>
+ <leftbracket mod="longpress">noop</leftbracket> <!-- stops cycling -->
+ <i mod="longpress">noop</i> <!-- stops cycling -->
+ <rightbracket>Back</rightbracket>
+ <c>Back</c>
+ </keyboard>
+ </PictureInfo>
+ <FullscreenLiveTV>
+ <keyboard>
+ <rightbracket>ActivateWindow(PVROSDChannels)</rightbracket>
+ <c>ActivateWindow(PVROSDChannels)</c>
+ <leftbracket>info</leftbracket>
+ <i>info</i>
+ <leftbracket mod="longpress">playerprocessinfo</leftbracket>
+ <i mod="longpress">playerprocessinfo</i>
+ <left mod="longpress">AudioDelay</left>
+ <right mod="longpress">subtitledelay</right>
+ <return mod="longpress">Record</return>
+ <play_pause mod="longpress">showsubtitles</play_pause>
+ <p mod="longpress">showsubtitles</p>
+ <stop mod="longpress">ActivateWindow(Teletext)</stop>
+ <x mod="longpress">ActivateWindow(Teletext)</x>
+ </keyboard>
+ </FullscreenLiveTV>
+ <TVGuide>
+ <keyboard>
+ <return mod="longpress">Record</return>
+ </keyboard>
+ </TVGuide>
+ <FullscreenRadio>
+ <keyboard>
+ <rightbracket>ActivateWindow(PVROSDChannels)</rightbracket>
+ <c>ActivateWindow(PVROSDChannels)</c>
+ </keyboard>
+ </FullscreenRadio>
+ <AddonInformation>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ <leftbracket>Back</leftbracket>
+ <i>Back</i>
+ <leftbracket mod="longpress">noop</leftbracket> <!-- stops cycling -->
+ <i mod="longpress">noop</i> <!-- stops cycling -->
+ <rightbracket>Back</rightbracket>
+ <c>Back</c>
+ </keyboard>
+ </AddonInformation>
+ <PlayerProcessInfo>
+ <keyboard>
+ <leftbracket>back</leftbracket>
+ <i>back</i>
+ <rightbracket>ActivateWindow(osdvideosettings)</rightbracket>
+ <c>ActivateWindow(osdvideosettings)</c>
+ <rightbracket mod="longpress">noop</rightbracket>
+ <c mod="longpress">noop</c>
+ <stop mod="longpress">ActivateWindow(osdsubtitlesettings)</stop>
+ <x mod="longpress">ActivateWindow(osdsubtitlesettings)</x>
+ </keyboard>
+ </PlayerProcessInfo>
+ <yesnodialog> <!-- Added to allow CEC when update dialog box appears -->
+ <keyboard>
+ <escape>CECActivateSource</escape>
+ <home>CECActivateSource</home>
+ <escape mod="longpress">CECStandby</escape>
+ <home mod="longpress">CECStandby</home>
+ </keyboard>
+ </yesnodialog>
+ <selectdialog>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ </keyboard>
+ </selectdialog>
+ <contextmenu>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ </keyboard>
+ </contextmenu>
+ <addonsettings>
+ <keyboard>
+ <escape>back</escape>
+ <home>back</home>
+ </keyboard>
+ </addonsettings>
+ <addonbrowser>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </addonbrowser>
+ <filemanager>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </filemanager>
+ <interfacesettings>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </interfacesettings>
+ <systeminfo>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </systeminfo>
+ <eventlog>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </eventlog>
+ <playersettings>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </playersettings>
+ <mediasettings>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </mediasettings>
+ <pvrsettings>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </pvrsettings>
+ <servicesettings>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </servicesettings>
+ <gamesettings>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </gamesettings>
+ <profiles>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </profiles>
+ <systemsettings>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </systemsettings>
+ <music>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </music>
+ <pictures>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </pictures>
+ <skinsettings>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </skinsettings>
+ <musicplaylisteditor>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </musicplaylisteditor>
+ <games>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </games>
+ <programs>
+ <keyboard>
+ <escape>ActivateWindow(Home)</escape>
+ <home>ActivateWindow(Home)</home>
+ <escape mod="longpress">fullscreen</escape>
+ <home mod="longpress">fullscreen</home>
+ </keyboard>
+ </programs>
+ </keymap>
diff --git a/system/keymaps/remote.xml b/system/keymaps/remote.xml
new file mode 100644
index 0000000..c122b99
--- /dev/null
+++ b/system/keymaps/remote.xml
@@ -0,0 +1,720 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file contains the mapping of remote 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>
+ <remote>
+ <play>PlayPause</play>
+ <pause>Pause</pause>
+ <stop>Stop</stop>
+ <forward>FastForward</forward>
+ <reverse>Rewind</reverse>
+ <left>Left</left>
+ <right>Right</right>
+ <up>Up</up>
+ <down>Down</down>
+ <select>Select</select>
+ <enter>FullScreen</enter>
+ <pageplus>PageUp</pageplus>
+ <pageminus>PageDown</pageminus>
+ <back>Back</back>
+ <menu>ContextMenu</menu>
+ <contentsmenu>PreviousMenu</contentsmenu>
+ <rootmenu>PreviousMenu</rootmenu>
+ <title>ContextMenu</title>
+ <info>Info</info>
+ <skipplus>SkipNext</skipplus>
+ <skipminus>SkipPrevious</skipminus>
+ <display>FullScreen</display>
+ <start>PreviousMenu</start>
+ <record>Record</record>
+ <eject>EjectTray()</eject>
+ <volumeplus>VolumeUp</volumeplus>
+ <volumeminus>VolumeDown</volumeminus>
+ <mute>Mute</mute>
+ <power>ShutDown()</power>
+ <myvideo>ActivateWindow(Videos)</myvideo>
+ <mymusic>ActivateWindow(Music)</mymusic>
+ <mypictures>ActivateWindow(Pictures)</mypictures>
+ <mytv>ActivateWindow(Videos,TvShows)</mytv>
+ <guide>ActivateWindow(TVGuide)</guide>
+ <livetv>ActivateWindow(TVChannels)</livetv>
+ <liveradio>ActivateWindow(RadioChannels)</liveradio>
+ <recordedtv>ActivateWindow(TVRecordings)</recordedtv>
+ <epgsearch>ActivateWindow(TVSearch)</epgsearch>
+ <red>ActivateWindow(TVChannels)</red>
+ <green>ActivateWindow(Videos)</green>
+ <yellow>ActivateWindow(Music)</yellow>
+ <blue>ActivateWindow(Pictures)</blue>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>JumpSMS2</two>
+ <three>JumpSMS3</three>
+ <four>JumpSMS4</four>
+ <five>JumpSMS5</five>
+ <six>JumpSMS6</six>
+ <seven>JumpSMS7</seven>
+ <eight>JumpSMS8</eight>
+ <nine>JumpSMS9</nine>
+ <print>Screenshot</print>
+ </remote>
+ </global>
+ <Home>
+ <remote>
+ <clear>ActivateWindow(Weather)</clear>
+ <hash>ActivateWindow(Settings)</hash>
+ </remote>
+ </Home>
+ <TVRecordings>
+ <remote>
+ <clear>Delete</clear>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </remote>
+ </TVRecordings>
+ <TVTimers>
+ <remote>
+ <clear>Delete</clear>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </remote>
+ </TVTimers>
+ <TVTimerRules>
+ <remote>
+ <clear>Delete</clear>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </remote>
+ </TVTimerRules>
+ <RadioRecordings>
+ <remote>
+ <clear>Delete</clear>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </remote>
+ </RadioRecordings>
+ <RadioTimers>
+ <remote>
+ <clear>Delete</clear>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </remote>
+ </RadioTimers>
+ <RadioTimerRules>
+ <remote>
+ <clear>Delete</clear>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </remote>
+ </RadioTimerRules>
+ <FileManager>
+ <remote>
+ <clear>Delete</clear>
+ <zero>Highlight</zero>
+ <star>Move</star>
+ <hash>Rename</hash>
+ </remote>
+ </FileManager>
+ <FileBrowser>
+ <remote>
+ <zero>Highlight</zero>
+ </remote>
+ </FileBrowser>
+ <MusicPlaylist>
+ <remote>
+ <clear>Delete</clear>
+ <zero>Delete</zero>
+ </remote>
+ </MusicPlaylist>
+ <MusicPlaylistEditor>
+ <remote>
+ <zero>Queue</zero>
+ </remote>
+ </MusicPlaylistEditor>
+ <Music>
+ <remote>
+ <zero>Queue</zero>
+ <star>Queue</star>
+ </remote>
+ </Music>
+ <Pictures>
+ <remote>
+ <clear>Delete</clear>
+ </remote>
+ </Pictures>
+ <FullscreenVideo>
+ <remote>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ <up>ChapterOrBigStepForward</up>
+ <down>ChapterOrBigStepBack</down>
+ <back>Back</back>
+ <menu>OSD</menu>
+ <contentsmenu>OSD</contentsmenu>
+ <rootmenu>OSD</rootmenu>
+ <start>OSD</start>
+ <select>OSD</select>
+ <title>PlayerProcessInfo</title>
+ <info>Info</info>
+ <guide>ActivateWindow(TVGuide)</guide>
+ <teletext>ActivateWindow(Teletext)</teletext>
+ <subtitle>NextSubtitle</subtitle>
+ <star>NextSubtitle</star>
+ <language>AudioNextLanguage</language>
+ <playlist>Playlist</playlist>
+ <hash>AudioNextLanguage</hash>
+ <pageplus>SkipNext</pageplus>
+ <pageminus>SkipPrevious</pageminus>
+ </remote>
+ </FullscreenVideo>
+ <FullscreenGame>
+ <remote>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ <back>Back</back>
+ <menu>OSD</menu>
+ <contentsmenu>OSD</contentsmenu>
+ <rootmenu>OSD</rootmenu>
+ <start>OSD</start>
+ <select>OSD</select>
+ <title>CodecInfo</title>
+ <info>Info</info>
+ </remote>
+ </FullscreenGame>
+ <VideoTimeSeek>
+ <remote>
+ <select>Select</select>
+ <enter>Select</enter>
+ </remote>
+ </VideoTimeSeek>
+ <FullscreenInfo>
+ <remote>
+ <title>PlayerProcessInfo</title>
+ <info>Back</info>
+ <menu>OSD</menu>
+ <contentsmenu>OSD</contentsmenu>
+ <rootmenu>OSD</rootmenu>
+ </remote>
+ </FullscreenInfo>
+ <PlayerControls>
+ <remote>
+ <menu>Back</menu>
+ <contentsmenu>Back</contentsmenu>
+ <rootmenu>Back</rootmenu>
+ </remote>
+ </PlayerControls>
+ <Visualisation>
+ <remote>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ <up>SkipNext</up>
+ <down>SkipPrevious</down>
+ <pageplus>IncreaseRating</pageplus>
+ <pageminus>DecreaseRating</pageminus>
+ <back>Back</back>
+ <title>PlayerProcessInfo</title>
+ <select>OSD</select>
+ <menu>OSD</menu>
+ <contentsmenu>OSD</contentsmenu>
+ <rootmenu>OSD</rootmenu>
+ <start>OSD</start>
+ <info>Info</info>
+ <guide>ActivateWindow(TVGuide)</guide>
+ <playlist>ActivateWindow(PVROSDChannels)</playlist>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ </remote>
+ </Visualisation>
+ <MusicOSD>
+ <remote>
+ <menu>Back</menu>
+ <contentsmenu>Back</contentsmenu>
+ <rootmenu>Back</rootmenu>
+ <title>Info</title>
+ <info>PlayerProcessInfo</info>
+ </remote>
+ </MusicOSD>
+ <VisualisationPresetList>
+ <remote>
+ <menu>Back</menu>
+ <contentsmenu>Back</contentsmenu>
+ <rootmenu>Back</rootmenu>
+ </remote>
+ </VisualisationPresetList>
+ <SlideShow>
+ <remote>
+ <zero>ZoomNormal</zero>
+ <one>ZoomLevel1</one>
+ <two>ZoomLevel2</two>
+ <three>ZoomLevel3</three>
+ <four>ZoomLevel4</four>
+ <five>ZoomLevel5</five>
+ <six>ZoomLevel6</six>
+ <seven>ZoomLevel7</seven>
+ <eight>ZoomLevel8</eight>
+ <nine>ZoomLevel9</nine>
+ <info>Info</info>
+ <skipplus>NextPicture</skipplus>
+ <skipminus>PreviousPicture</skipminus>
+ <title>Info</title>
+ <select>Rotate</select>
+ </remote>
+ </SlideShow>
+ <ScreenCalibration>
+ <remote>
+ <select>NextCalibration</select>
+ <zero>ResetCalibration</zero>
+ <display>NextResolution</display>
+ <xbox>NextResolution</xbox>
+ </remote>
+ </ScreenCalibration>
+ <ScreenCalibration>
+ <remote>
+ <select>NextCalibration</select>
+ <zero>ResetCalibration</zero>
+ </remote>
+ </ScreenCalibration>
+ <VideoOSD>
+ <remote>
+ <menu>Back</menu>
+ <contentsmenu>Back</contentsmenu>
+ <rootmenu>Back</rootmenu>
+ <start>Back</start>
+ </remote>
+ </VideoOSD>
+ <VideoMenu>
+ <remote>
+ <menu>OSD</menu>
+ <contentsmenu>OSD</contentsmenu>
+ <rootmenu>OSD</rootmenu>
+ <info>Info</info>
+ <title>PlayerProcessInfo</title>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ <play>Select</play>
+ <pageplus>SkipNext</pageplus>
+ <pageminus>SkipPrevious</pageminus>
+ </remote>
+ </VideoMenu>
+ <OSDVideoSettings>
+ <remote>
+ <menu>Back</menu>
+ <contentsmenu>Back</contentsmenu>
+ <rootmenu>Back</rootmenu>
+ <start>Back</start>
+ </remote>
+ </OSDVideoSettings>
+ <OSDAudioSettings>
+ <remote>
+ <menu>Back</menu>
+ <contentsmenu>Back</contentsmenu>
+ <rootmenu>Back</rootmenu>
+ <start>Back</start>
+ </remote>
+ </OSDAudioSettings>
+ <VideoBookmarks>
+ <remote>
+ <menu>Back</menu>
+ <contentsmenu>Back</contentsmenu>
+ <rootmenu>Back</rootmenu>
+ <start>Back</start>
+ <zero>Delete</zero>
+ </remote>
+ </VideoBookmarks>
+ <Videos>
+ <remote>
+ <zero>Queue</zero>
+ <clear>Delete</clear>
+ </remote>
+ </Videos>
+ <VideoPlaylist>
+ <remote>
+ <clear>Delete</clear>
+ <zero>Delete</zero>
+ </remote>
+ </VideoPlaylist>
+ <VirtualKeyboard>
+ <remote>
+ <back>Back</back>
+ <star>Shift</star>
+ <hash>Symbols</hash>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ <enter>Enter</enter>
+ <pageminus>CursorLeft</pageminus>
+ <pageplus>CursorRight</pageplus>
+ </remote>
+ </VirtualKeyboard>
+ <ContextMenu>
+ <remote>
+ <title>Back</title>
+ </remote>
+ </ContextMenu>
+ <Programs>
+ <remote>
+ <info>info</info>
+ </remote>
+ </Programs>
+ <NumericInput>
+ <remote>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ <enter>Enter</enter>
+ <back>Back</back>
+ </remote>
+ </NumericInput>
+ <Weather>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </Weather>
+ <Settings>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </Settings>
+ <AddonBrowser>
+ <remote>
+ </remote>
+ </AddonBrowser>
+ <AddonInformation>
+ <remote>
+ <back>Close</back>
+ </remote>
+ </AddonInformation>
+ <AddonSettings>
+ <remote>
+ <back>Close</back>
+ </remote>
+ </AddonSettings>
+ <TextViewer>
+ <remote>
+ <back>Close</back>
+ </remote>
+ </TextViewer>
+ <PlayerSettings>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </PlayerSettings>
+ <MediaSettings>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </MediaSettings>
+ <SystemSettings>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </SystemSettings>
+ <ServiceSettings>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </ServiceSettings>
+ <InterfaceSettings>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </InterfaceSettings>
+ <Profiles>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </Profiles>
+ <systeminfo>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </systeminfo>
+ <shutdownmenu>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </shutdownmenu>
+ <submenu>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </submenu>
+ <MusicInformation>
+ <remote>
+ <info>Back</info>
+ </remote>
+ </MusicInformation>
+ <MovieInformation>
+ <remote>
+ <info>Back</info>
+ </remote>
+ </MovieInformation>
+ <LockSettings>
+ <remote>
+ <menu>Back</menu>
+ <contentsmenu>Back</contentsmenu>
+ <rootmenu>Back</rootmenu>
+ </remote>
+ </LockSettings>
+ <ProfileSettings>
+ <remote>
+ <menu>Back</menu>
+ <contentsmenu>Back</contentsmenu>
+ <rootmenu>Back</rootmenu>
+ </remote>
+ </ProfileSettings>
+ <PictureInfo>
+ <remote>
+ <skipplus>NextPicture</skipplus>
+ <skipminus>PreviousPicture</skipminus>
+ <info>Back</info>
+ </remote>
+ </PictureInfo>
+ <Teletext>
+ <remote>
+ <zero>number0</zero>
+ <one>number1</one>
+ <two>number2</two>
+ <three>number3</three>
+ <four>number4</four>
+ <five>number5</five>
+ <six>number6</six>
+ <seven>number7</seven>
+ <eight>number8</eight>
+ <nine>number9</nine>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ <info>Info</info>
+ <menu>Back</menu>
+ <contentsmenu>Back</contentsmenu>
+ <rootmenu>Back</rootmenu>
+ <start>Back</start>
+ <teletext>Back</teletext>
+ </remote>
+ </Teletext>
+ <Favourites>
+ <remote>
+ <back>Close</back>
+ </remote>
+ </Favourites>
+ <FullscreenLiveTV>
+ <remote>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ <up>Up</up>
+ <down>Down</down>
+ <pageplus>ChannelUp</pageplus>
+ <pageminus>ChannelDown</pageminus>
+ </remote>
+ </FullscreenLiveTV>
+ <FullscreenRadio>
+ <remote>
+ <left>StepBack</left>
+ <right>StepForward</right>
+ <up>Up</up>
+ <down>Down</down>
+ <pageplus>ChannelUp</pageplus>
+ <pageminus>ChannelDown</pageminus>
+ </remote>
+ </FullscreenRadio>
+ <FullscreenLiveTvPreview>
+ <remote>
+ <select>Select</select>
+ </remote>
+ </FullscreenLiveTvPreview>
+ <FullscreenRadioPreview>
+ <remote>
+ <select>Select</select>
+ </remote>
+ </FullscreenRadioPreview>
+ <FullscreenLiveTvInput>
+ <remote>
+ <select>Select</select>
+ </remote>
+ </FullscreenLiveTvInput>
+ <FullscreenRadioInput>
+ <remote>
+ <select>Select</select>
+ </remote>
+ </FullscreenRadioInput>
+ <PVROSDChannels>
+ <remote>
+ <back>Close</back>
+ <start>Close</start>
+ <playlist>Close</playlist>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>number2</two>
+ <three>number3</three>
+ <four>number4</four>
+ <five>number5</five>
+ <six>number6</six>
+ <seven>number7</seven>
+ <eight>number8</eight>
+ <nine>number9</nine>
+ </remote>
+ </PVROSDChannels>
+ <PVRChannelGuide>
+ <remote>
+ <back>Close</back>
+ <start>Close</start>
+ <guide>Close</guide>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>number2</two>
+ <three>number3</three>
+ <four>number4</four>
+ <five>number5</five>
+ <six>number6</six>
+ <seven>number7</seven>
+ <eight>number8</eight>
+ <nine>number9</nine>
+ </remote>
+ </PVRChannelGuide>
+ <TVChannels>
+ <remote>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>number2</two>
+ <three>number3</three>
+ <four>number4</four>
+ <five>number5</five>
+ <six>number6</six>
+ <seven>number7</seven>
+ <eight>number8</eight>
+ <nine>number9</nine>
+ </remote>
+ </TVChannels>
+ <TVGuide>
+ <remote>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>number2</two>
+ <three>number3</three>
+ <four>number4</four>
+ <five>number5</five>
+ <six>number6</six>
+ <seven>number7</seven>
+ <eight>number8</eight>
+ <nine>number9</nine>
+ </remote>
+ </TVGuide>
+ <RadioChannels>
+ <remote>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>number2</two>
+ <three>number3</three>
+ <four>number4</four>
+ <five>number5</five>
+ <six>number6</six>
+ <seven>number7</seven>
+ <eight>number8</eight>
+ <nine>number9</nine>
+ </remote>
+ </RadioChannels>
+ <RadioGuide>
+ <remote>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>number2</two>
+ <three>number3</three>
+ <four>number4</four>
+ <five>number5</five>
+ <six>number6</six>
+ <seven>number7</seven>
+ <eight>number8</eight>
+ <nine>number9</nine>
+ </remote>
+ </RadioGuide>
+ <PVRSettings>
+ <remote>
+ <back>PreviousMenu</back>
+ </remote>
+ </PVRSettings>
+ <Addon>
+ <remote>
+ <red>Red</red>
+ <green>Green</green>
+ <yellow>Yellow</yellow>
+ <blue>Blue</blue>
+ </remote>
+ </Addon>
+ <PlayerProcessInfo>
+ <remote>
+ <title>PlayerProcessInfo</title>
+ </remote>
+ </PlayerProcessInfo>
+</keymap>
diff --git a/system/keymaps/touchscreen.xml b/system/keymaps/touchscreen.xml
new file mode 100644
index 0000000..56a42c8
--- /dev/null
+++ b/system/keymaps/touchscreen.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file contains the mapping of touch gestures to actions within Kodi. -->
+<!-- -->
+<!-- The format is: -->
+<!-- <window> -->
+<!-- <device> -->
+<!-- <gesture>action</gesture> -->
+<!-- </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 <tap pointers="2">ActivateWindow(Music)</tap> -->
+<!-- would automatically go to Music when two fingers tap the screen at once. -->
+<!-- -->
+<!-- -->
+<!-- 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>
+ <touch>
+ <tap>LeftClick</tap>
+ <longpress>RightClick</longpress>
+ <tap pointers="2">RightClick</tap>
+ <pan>PanGesture</pan>
+ <swipe direction="left">SwipeLeft</swipe>
+ <swipe direction="left" pointers="2">Back</swipe>
+ <swipe direction="right">SwipeRight</swipe>
+ <swipe direction="right" pointers="2">Menu</swipe> <!-- Easier access to the side blade menu on touchscreens. -->
+ <swipe direction="up">SwipeUp</swipe>
+ <swipe direction="down">SwipeDown</swipe>
+ <swipe direction="up" pointers="3">SwitchPlayer</swipe>
+ <swipe direction="down" pointers="3">ActivateWindow(PlayerControls)</swipe>
+ </touch>
+ </global>
+ <FileManager>
+ <touch>
+ <tap>Select</tap>
+ <swipe direction="left">Highlight</swipe>
+ <swipe direction="right">Highlight</swipe>
+ </touch>
+ </FileManager>
+ <FullScreenVideo>
+ <touch>
+ <swipe direction="left">StepBack</swipe>
+ <swipe direction="right">StepForward</swipe>
+ <swipe direction="up">ChapterOrBigStepForward</swipe>
+ <swipe direction="down">ChapterOrBigStepBack</swipe>
+ <swipe direction="up" pointers="2">SkipNext</swipe>
+ <swipe direction="down" pointers="2">SkipPrevious</swipe>
+ <tap pointers="2">Playlist</tap>
+ <tap pointers="3">PlayPause</tap>
+ </touch>
+ </FullScreenVideo>
+ <FullScreenGame>
+ <touch>
+ <swipe direction="left">StepBack</swipe>
+ <swipe direction="right">StepForward</swipe>
+ <swipe direction="left" pointers="2">Seek(-7)</swipe>
+ <tap pointers="3">PlayPause</tap>
+ </touch>
+ </FullScreenGame>
+ <PlayerControls>
+ <touch>
+ <swipe direction="down" pointers="3">Back</swipe>
+ </touch>
+ </PlayerControls>
+ <Visualisation>
+ <touch>
+ <swipe direction="left">StepBack</swipe>
+ <swipe direction="right">StepForward</swipe>
+ <swipe direction="up">SkipNext</swipe>
+ <swipe direction="down">SkipPrevious</swipe>
+ <swipe direction="up" pointers="2">SkipNext</swipe>
+ <swipe direction="down" pointers="2">SkipPrevious</swipe>
+ <tap pointers="2">Playlist</tap>
+ <tap pointers="3">PlayPause</tap>
+ </touch>
+ </Visualisation>
+ <SlideShow>
+ <touch>
+ <zoom>ZoomGesture</zoom>
+ <rotate>RotateGesture</rotate>
+ <swipe direction="right" pointers="2">PreviousPicture</swipe> <!-- right/left are flipped here to make picture flipping feel more natural on touch screens. Two pointers are used in order to avoid conflicting with the panning gesture on zoomed-in images. -->
+ <swipe direction="left" pointers="2">NextPicture</swipe>
+ <tap pointers="2">Pause</tap>
+ <tap pointers="3">Info</tap>
+ <longpress>Back</longpress>
+ </touch>
+ </SlideShow>
+ <ScreenCalibration>
+ <touch>
+ <swipe direction="up">Up</swipe>
+ <swipe direction="down">Down</swipe>
+ <swipe direction="right">Right</swipe>
+ <swipe direction="left">Left</swipe>
+ <tap pointers="1">NextCalibration</tap>
+ </touch>
+ </ScreenCalibration>
+ <VideoMenu>
+ <touch>
+ <swipe direction="up" pointers="2">SkipNext</swipe>
+ <swipe direction="down" pointers="2">SkipPrevious</swipe>
+ </touch>
+ </VideoMenu>
+ <ContextMenu>
+ <touch>
+ <swipe direction="left" pointers="3">Back</swipe> <!-- backs out of "switch player" -->
+ <swipe direction="right" pointers="3">Back</swipe>
+ </touch>
+ </ContextMenu>
+ <PictureInfo>
+ <touch>
+ <tap pointers="3">Back</tap>
+ </touch>
+ </PictureInfo>
+ <FullScreenLiveTV>
+ <touch>
+ <swipe direction="up">Up</swipe>
+ <swipe direction="down">Down</swipe>
+ </touch>
+ </FullScreenLiveTV>
+ <FullScreenRadio>
+ <touch>
+ <swipe direction="up">ChannelUp</swipe>
+ <swipe direction="down">ChannelDown</swipe>
+ </touch>
+ </FullScreenRadio>
+</keymap>
diff --git a/system/keymaps/wetek-play/keyboard.xml b/system/keymaps/wetek-play/keyboard.xml
new file mode 100644
index 0000000..2a8edc5
--- /dev/null
+++ b/system/keymaps/wetek-play/keyboard.xml
@@ -0,0 +1,275 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<keymap>
+ <Global>
+ <keyboard>
+ <play_pause>Playpause</play_pause>
+ <play_pause mod="longpress">Info</play_pause>
+ <f2>ActivateWindow(TVGuide)</f2>
+ <f3>ActivateWindow(Home)</f3>
+ <f4>ContextMenu</f4>
+ <f4 mod="longpress">Menu</f4>
+ <f6>Info</f6>
+ <f6 mod="longpress">Playpause</f6>
+ <f7>ContextMenu</f7>
+ <f7 mod="longpress">Menu</f7>
+ <f11>ShowSubtitles</f11>
+ <escape>Back</escape>
+ <escape mod="longpress">ActivateWindow(Home)</escape>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>JumpSMS2</two>
+ <three>JumpSMS3</three>
+ <four>JumpSMS4</four>
+ <five>JumpSMS5</five>
+ <six>JumpSMS6</six>
+ <seven>JumpSMS7</seven>
+ <eight>JumpSMS8</eight>
+ <nine>JumpSMS9</nine>
+ </keyboard>
+ </Global>
+ <Home>
+ <keyboard>
+ <backspace>ActivateWindow(FavouritesBrowser)</backspace>
+ <backspace mod="longpress">ActivateWindow(ShutdownMenu)</backspace>
+ <browser_back>ActivateWindow(FavouritesBrowser)</browser_back>
+ <browser_back mod="longpress">ActivateWindow(ShutdownMenu)</browser_back>
+ <escape>ActivateWindow(FavouritesBrowser)</escape>
+ <escape mod="longpress">ActivateWindow(ShutdownMenu)</escape>
+ </keyboard>
+ </Home>
+ <FullscreenVideo>
+ <keyboard>
+ <f4>Playlist</f4>
+ <f7>Playlist</f7>
+ <escape>Stop</escape>
+ <escape mod="longpress">Fullscreen</escape>
+ <backspace>Stop</backspace>
+ <backspace mod="longpress">Fullscreen</backspace>
+ <browser_back>Stop</browser_back>
+ <browser_back mod="longpress">Fullscreen</browser_back>
+ <return>PlayPause</return>
+ <return mod="longpress">OSD</return>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ <backspace mod="longpress">FullScreen</backspace>
+ <browser_back mod="longpress">FullScreen</browser_back>
+ <escape mod="longpress">FullScreen</escape>
+ <up mod="longpress">SkipNext</up>
+ <down mod="longpress">SkipPrevious</down>
+ <left mod="longpress">Rewind</left>
+ <right mod="longpress">FastForward</right>
+ </keyboard>
+ </FullscreenVideo>
+ <Visualisation>
+ <keyboard>
+ <f4>Playlist</f4>
+ <f7>Playlist</f7>
+ <return>PlayPause</return>
+ <return mod="longpress">OSD</return>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ <backspace mod="longpress">Stop</backspace>
+ <browser_back mod="longpress">Stop</browser_back>
+ <escape mod="longpress">Stop</escape>
+ </keyboard>
+ </Visualisation>
+ <VirtualKeyboard>
+ <keyboard>
+ <f1>Backspace</f1>
+ <f2>Shift</f2>
+ <f6>Enter</f6>
+ <play_pause>Enter</play_pause>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ <backspace>Backspace</backspace>
+ <browser_back>PreviousMenu</browser_back>
+ <escape>PreviousMenu</escape>
+ </keyboard>
+ </VirtualKeyboard>
+ <VideoMenu>
+ <keyboard>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ <return mod="longpress">OSD</return>
+ <enter mod="longpress">OSD</enter>
+ </keyboard>
+ </VideoMenu>
+ <NumericInput>
+ <keyboard>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ </keyboard>
+ </NumericInput>
+ <Teletext>
+ <keyboard>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ </keyboard>
+ </Teletext>
+ <VideoOSD>
+ <keyboard>
+ <return mod="longpress">Back</return>
+ <enter mod="longpress">Back</enter>
+ </keyboard>
+ </VideoOSD>
+ <ContextMenu>
+ <keyboard>
+ <f4>Back</f4>
+ <f7>Back</f7>
+ </keyboard>
+ </ContextMenu>
+ <PVROSDChannels>
+ <keyboard>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ <f4>Close</f4>
+ <f7>Close</f7>
+ </keyboard>
+ </PVROSDChannels>
+ <TVChannels>
+ <keyboard>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ </keyboard>
+ </TVChannels>
+ <PVRChannelGuide>
+ <keyboard>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ </keyboard>
+ </PVRChannelGuide>
+ <TVGuide>
+ <keyboard>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ </keyboard>
+ </TVGuide>
+ <RadioChannels>
+ <keyboard>
+ <zero>Number0</zero>
+ <one>Number1</one>
+ <two>Number2</two>
+ <three>Number3</three>
+ <four>Number4</four>
+ <five>Number5</five>
+ <six>Number6</six>
+ <seven>Number7</seven>
+ <eight>Number8</eight>
+ <nine>Number9</nine>
+ </keyboard>
+ </RadioChannels>
+ <FullscreenLiveTV>
+ <keyboard>
+ <return>OSD</return>
+ <enter>OSD</enter>
+ </keyboard>
+ </FullscreenLiveTV>
+ <FullscreenRadio>
+ <keyboard>
+ <return>OSD</return>
+ <enter>OSD</enter>
+ </keyboard>
+ </FullscreenRadio>
+ <SlideShow>
+ <keyboard>
+ <up>ZoomIn</up>
+ <down>ZoomOut</down>
+ <left>PreviousPicture</left>
+ <right>NextPicture</right>
+ <up mod="longpress">Up</up> <!-- Longpress on direction keys for panning when zoomed in -->
+ <down mod="longpress">Down</down>
+ <left mod="longpress">Left</left>
+ <right mod="longpress">Right</right>
+ <backspace>Stop</backspace>
+ <browser_back>Stop</browser_back>
+ <return mod="longpress">Info</return>
+ <enter mod="longpress">Info</enter>
+ </keyboard>
+ </SlideShow>
+ <FileManager>
+ <keyboard>
+ <right mod="longpress">Highlight</right>
+ <left mod="longpress">Highlight</left>
+ </keyboard>
+ </FileManager>
+</keymap>