Merge pull request #4848 from MartijnKaijser/13.2b1
[vuplus_xbmc] / language / German / keyboardmap.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- This configuration file was developed to be able to map an english layout keyboard to a german layout keyboard in XBMC.
3     The problem: if I press the key that is labeled with "Z" on my german keyboard (next to the key labeled with "T" -> QWERTZ!) 
4     I get an "Y" on my XBMC screen because till now XBMC always assumes an english layout keyboard (QWERTY). 
5     If I press the "," on the numpad i get a ".". 
6     This applies for nearly all keys on my german keyboard besides "A"-"Z" and "0"-"9".
7     With the following mapping I can configure XBMC to replace the "Y" through an "Z" and so forth!
8         
9     This demands a map for printable characters (ascii and/or unicode) and logical keys (virtual keys or other names).
10     The map for printable characters and the map for logical keys must be separated 
11     since they can contain same values that should be mapped different.
12     
13     Of course, you should never reassign the same printable character 
14     without (or with the same) modifiers more than once.
15     
16     More specific mappings, i.e. with virtual keys and/or with one or even more modifiers,
17     are handled first/prioritized over less specific mappings! Why?
18     Example: an us keyboard has: "]" on one key, the german keyboard has "+" on the same key,
19     additionally the german keyboard has "~" on the same key, but the "~" 
20     can only be reached with the special modifier "AltGr" (right alt).
21     If "+" is handled first, the key is already consumed and "~" can never be reached.
22     The least specific mappings, e.g. "regardless modifiers" are done at last/least prioritized.
23     
24     I assume that once a configuration is "complete", it is useful for everybody with that language, platform or model.    
25     So let's start configuring keyboards for xbmc, collect and exchange them :o).
26     
27     We should collect them all in a structure like:
28     * XBMCdefault 
29       * standardkeyboard (this could be the standard language folder in the XBMC)
30         * english
31         * german
32         * ...
33     If needed, additionally:
34     * producer (this could be the root folder on some server for exchange)
35       * keyboard model
36         * language a
37         * language b
38     
39     For details of keyboard layouts see: http://en.wikipedia.org/wiki/Keyboard_layout (thx Gamester17 for this link)
40     
41     For details of further development see: http://forum.xbmc.org/showthread.php?t=26796
42 -->
43 <keyboard_layout> 
44     <!-- following topics are independent of all plattforms and the "last" chance in the processing chain -->
45     <!-- Some keys are reached with combinations that do not exist on english keyboards, 
46          therefore there does not exist a specific english ascii that can be replaced 
47          (simple ascii replacement is not possible). Both the key and the modifier must be specified, e.g. 
48          in the third following case the key 7 is pressed in combination with right alt to reach {.
49          -->
50     <char2char_ralt> 
51         <!-- key line with numbers, every key with right alt -->
52         <entry inchar="2" outchar="²"/>
53         <entry inchar="3" outchar="³"/>
54         <entry inchar="7" outchar="{"/>
55         <entry inchar="8" outchar="["/>
56         <entry inchar="9" outchar="]"/>
57         <entry inchar="0" outchar="}"/>
58         <entry inchar="-" outchar="\"/>
59         
60         <!-- line beginning with tab with right alt -->
61         <entry inchar="q" outchar="@"/>
62         <entry inchar="e" outchar="€"/>
63         <entry inchar="]" outchar="~"/>
64         
65         <!-- line beginning with shift (below capslock) with right alt -->
66         <entry inchar="\" outchar="|"/> <!-- does it work? -->
67         <entry inchar="m" outchar="µ"/>
68     </char2char_ralt>
69     
70     <char2char> 
71         <!-- key line with numbers, every key without modifier -->
72         <entry inchar="`" outchar="^"/>
73         <entry inchar="-" outchar="ß"/>
74         <entry inchar="=" outchar="´"/>
75         
76         <!-- key line with numbers, every key with shift -->
77         <entry inchar="~" outchar="°"/>
78         <entry inchar="@" outchar="&quot;"/>
79         <entry inchar="#" outchar="§"/>
80         <entry inchar="^" outchar="&amp;"/>
81         <entry inchar="&amp;" outchar="/"/>
82         <entry inchar="*" outchar="("/>
83         <entry inchar="(" outchar=")"/>
84         <entry inchar=")" outchar="="/>
85         <entry inchar="_" outchar="?"/>
86         <entry inchar="+" outchar="`"/>
87         
88         <!-- line beginning with tab without modifier -->
89         <entry inchar="[" outchar="ü"/>
90         <entry inchar="]" outchar="+"/>
91         
92         <!-- line beginning with tab with shift -->
93         <entry inchar="{" outchar="Ü"/>
94         <entry inchar="}" outchar="*"/>
95         
96         <!-- line beginning with capslock without modifier -->
97         <entry inchar=";" outchar="ö"/>
98         <entry inchar="'" outchar="ä"/>
99         <entry inchar="\" outchar="#"/>
100         
101         <!-- line beginning with capslock with shift -->
102         <entry inchar=":" outchar="Ö"/>
103         <entry inchar="&quot;" outchar="Ä"/>
104         <entry inchar="|" outchar="'"/>
105         
106         <!-- line beginning with shift (below capslock) without modifier -->
107         <entry inchar="\" outchar="&lt;"/> <!-- does it work? -->
108         <entry inchar="/" outchar="-"/>
109         
110         <!-- line beginning with shift (below capslock) with shift -->
111         <entry inchar="|" outchar="&gt;"/>
112         <entry inchar="&lt;" outchar=";"/>
113         <entry inchar="&gt;" outchar=":"/>
114         <entry inchar="?" outchar="_"/>
115         
116     </char2char> 
117     
118     <!-- The following maps allows for reassigning special standardardized multimedia keys,
119          e.g. assign the [ > play > ] button to ascii "p" that is assign to action "play".
120          But support of the vkey by XBMC is presumed.
121          -->
122     <vkey2char> 
123         <!-- line beginning with shift (below capslock) without modifier -->
124         <entry inhex="0xe2" outchar="&lt;"/> <!-- This is the 105th key of typical european keyboards! Usually it is not assigned in english XBMC -->
125     </vkey2char>
126     
127     <vkey2char_shift> 
128         <!-- line beginning with shift (below capslock) without modifier -->
129         <entry inhex="0xe2" outchar="&gt;"/> <!-- This is the 105th key of typical european keyboards! Usually it is not assigned in english XBMC -->
130     </vkey2char_shift>
131     
132     <vkey2char_ralt> 
133         <entry inhex="0xe2" outchar="|" /> <!-- This is the 105th key of typical european keyboards! Usually it is not assigned in english XBMC -->
134     </vkey2char_ralt>
135                         
136     <!-- 
137     further topics possible, but not yet implemented: 
138     <vkey2vkey> 
139     </vkey2vkey>
140     topics dependent of plattforms and the "first" chance in the processing chain:
141     <sdllogical2vkey>
142     </sdllogical2vkey>
143     <sdlscan2unicode>
144     </sdlscan2unicode>
145     <sdlscan2vkey>
146     </sdlscan2vkey>
147     ...
148                 -->
149 </keyboard_layout>