winlayouts.h revision 05b261ec
1/*
2 * Copyright (c) 2005 Alexander Gottwald
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 * DEALINGS IN THE SOFTWARE.
21 *
22 * Except as contained in this notice, the name(s) of the above copyright
23 * holders shall not be used in advertising or otherwise to promote the sale,
24 * use or other dealings in this Software without prior written authorization.
25 */
26/* Definitions for various keyboard layouts from windows and their
27 * XKB settings.
28 */
29
30typedef struct
31{
32    unsigned int winlayout;
33    int winkbtype;
34    char *xkbmodel;
35    char *xkblayout;
36    char *xkbvariant;
37    char *xkboptions;
38    char *layoutname;
39} WinKBLayoutRec, *WinKBLayoutPtr;
40
41WinKBLayoutRec winKBLayouts[] =
42{
43    {  0x405, -1, "pc105", "cz",      NULL, NULL, "Czech"},
44    {0x10405, -1, "pc105", "cz_qwerty", NULL, NULL, "Czech (QWERTY)"},
45    {  0x406, -1, "pc105", "dk",      NULL, NULL, "Danish"},
46    {  0x407, -1, "pc105", "de",      NULL, NULL, "German (Germany)"},
47    {0x10407, -1, "pc105", "de",      NULL, NULL, "German (Germany, IBM)"},
48    {  0x807, -1, "pc105", "de_CH",   NULL, NULL, "German (Switzerland)"},
49    {  0x409, -1, "pc105", "us",      NULL, NULL, "English (USA)"},
50    {0x10409, -1, "pc105", "dvorak",  NULL, NULL, "English (USA, Dvorak)"},
51    {0x20409, -1, "pc105", "us_intl", NULL, NULL, "English (USA, International)"},
52    {  0x809, -1, "pc105", "gb",      NULL, NULL, "English (United Kingdom)"},
53    { 0x1809, -1, "pc105", "ie",      NULL, NULL, "Irish"},
54    {  0x40a, -1, "pc105", "es",      NULL, NULL, "Spanish (Spain, Traditional Sort)"},
55    {  0x40b, -1, "pc105", "fi",      NULL, NULL, "Finnish"},
56    {  0x40c, -1, "pc105", "fr",      NULL, NULL, "French (Standard)"},
57    {  0x80c, -1, "pc105", "be",      NULL, NULL, "French (Belgian)"},
58    {  0xc0c, -1, "pc105", "ca_enhanced", NULL, NULL, "French (Canada)"},
59    { 0x100c, -1, "pc105", "fr_CH",   NULL, NULL, "French (Switzerland)"},
60    {  0x40e, -1, "pc105", "hu",      NULL, NULL, "Hungarian"},
61    {  0x410, -1, "pc105", "it",      NULL, NULL, "Italian"},
62    {  0x411,  7, "jp106", "jp",      NULL, NULL, "Japanese"},
63    {  0x813, -1, "pc105", "be",      NULL, NULL, "Dutch (Belgian)"},
64    {  0x414, -1, "pc105", "no",      NULL, NULL, "Norwegian"},
65    {  0x416, -1, "pc105", "br",      NULL, NULL, "Portuguese (Brazil, ABNT)"},
66    {0x10416, -1, "abnt2", "br",      NULL, NULL, "Portuguese (Brazil, ABNT2)"},
67    {  0x816, -1, "pc105", "pt",      NULL, NULL, "Portuguese (Portugal)"},
68    {  0x41d, -1, "pc105", "se",      NULL, NULL, "Swedish (Sweden)"},
69    {     -1, -1, NULL,    NULL,      NULL, NULL, NULL}
70};
71
72/* Listing of language codes from MSDN */
73/*
74Support ID       XKB        Language
75====================================================================
76   ?    0x0000              Language Neutral
77   ?    0x0400              Process or User Default Language
78   ?    0x0800              System Default Language
79        0x0401              Arabic (Saudi Arabia)
80        0x0801              Arabic (Iraq)
81        0x0c01              Arabic (Egypt)
82        0x1001              Arabic (Libya)
83        0x1401              Arabic (Algeria)
84        0x1801              Arabic (Morocco)
85        0x1c01              Arabic (Tunisia)
86        0x2001              Arabic (Oman)
87        0x2401              Arabic (Yemen)
88        0x2801              Arabic (Syria)
89        0x2c01              Arabic (Jordan)
90        0x3001              Arabic (Lebanon)
91        0x3401              Arabic (Kuwait)
92        0x3801              Arabic (U.A.E.)
93        0x3c01              Arabic (Bahrain)
94        0x4001              Arabic (Qatar)
95                            Arabic (102) AZERTY
96        0x0402              Bulgarian
97        0x0403              Catalan
98        0x0404              Chinese (Taiwan)
99        0x0804              Chinese (PRC)
100        0x0c04              Chinese (Hong Kong SAR, PRC)
101        0x1004              Chinese (Singapore)
102        0x1404              Chinese (Macao SAR) (98/ME,2K/XP)
103   X    0x0405  cz          Czech
104   X            cz_qwerty   Czech (QWERTY)
105                            Czech (Programmers)
106   X    0x0406  dk          Danish
107   X    0x0407  de          German (Standard)
108   X    0x0807  de_CH       German (Switzerland)
109        0x0c07              German (Austria)
110        0x1007              German (Luxembourg)
111        0x1407              German (Liechtenstein)
112        0x0408              Greek
113   X    0x0409  us          English (United States)
114   X    0x0809  gb          English (United Kingdom)
115        0x0c09              English (Australian)
116        0x1009              English (Canadian)
117        0x1409              English (New Zealand)
118   X    0x1809  ie          English (Ireland)
119        0x1c09              English (South Africa)
120        0x2009              English (Jamaica)
121        0x2409              English (Caribbean)
122        0x2809              English (Belize)
123        0x2c09              English (Trinidad)
124        0x3009              English (Zimbabwe) (98/ME,2K/XP)
125        0x3409              English (Philippines) (98/ME,2K/XP)
126   X    0x040a  es          Spanish (Spain, Traditional Sort)
127        0x080a              Spanish (Mexican)
128        0x0c0a              Spanish (Spain, Modern Sort)
129        0x100a              Spanish (Guatemala)
130        0x140a              Spanish (Costa Rica)
131        0x180a              Spanish (Panama)
132        0x1c0a              Spanish (Dominican Republic)
133        0x200a              Spanish (Venezuela)
134        0x240a              Spanish (Colombia)
135        0x280a              Spanish (Peru)
136        0x2c0a              Spanish (Argentina)
137        0x300a              Spanish (Ecuador)
138        0x340a              Spanish (Chile)
139        0x380a              Spanish (Uruguay)
140        0x3c0a              Spanish (Paraguay)
141        0x400a              Spanish (Bolivia)
142        0x440a              Spanish (El Salvador)
143        0x480a              Spanish (Honduras)
144        0x4c0a              Spanish (Nicaragua)
145        0x500a              Spanish (Puerto Rico)
146   X    0x040b  fi          Finnish
147                            Finnish (with Sami)
148   X    0x040c  fr          French (Standard)
149   X    0x080c  be          French (Belgian)
150   .    0x0c0c              French (Canadian)
151                            French (Canadian, Legacy)
152                            Canadian (Multilingual)
153   X    0x100c  fr_CH       French (Switzerland)
154        0x140c              French (Luxembourg)
155        0x180c              French (Monaco) (98/ME,2K/XP)
156        0x040d              Hebrew
157   X    0x040e  hu          Hungarian
158   .    0x040f              Icelandic
159   X    0x0410  it          Italian (Standard)
160        0x0810              Italian (Switzerland)
161   X    0x0411  jp          Japanese
162        0x0412              Korean
163        0x0812              Korean (Johab) (95,NT)
164   .    0x0413              Dutch (Netherlands)
165   X    0x0813  be          Dutch (Belgium)
166   X    0x0414  no          Norwegian (Bokmal)
167        0x0814              Norwegian (Nynorsk)
168   .    0x0415              Polish
169   X    0x0416  br          Portuguese (Brazil)
170   X    0x0816  pt          Portuguese (Portugal)
171   .    0x0418              Romanian
172        0x0419              Russian
173   .    0x041a              Croatian
174   .    0x081a              Serbian (Latin)
175   .    0x0c1a              Serbian (Cyrillic)
176        0x101a              Croatian (Bosnia and Herzegovina)
177        0x141a              Bosnian (Bosnia and Herzegovina)
178        0x181a              Serbian (Latin, Bosnia, and Herzegovina)
179        0x1c1a              Serbian (Cyrillic, Bosnia, and Herzegovina)
180   .    0x041b              Slovak
181   .    0x041c              Albanian
182   X    0x041d  se          Swedish
183        0x081d              Swedish (Finland)
184        0x041e              Thai
185        0x041f              Turkish
186        0x0420              Urdu (Pakistan) (98/ME,2K/XP)
187        0x0820              Urdu (India)
188        0x0421              Indonesian
189        0x0422              Ukrainian
190        0x0423              Belarusian
191   .    0x0424              Slovenian
192        0x0425              Estonian
193        0x0426              Latvian
194        0x0427              Lithuanian
195        0x0827              Lithuanian (Classic) (98)
196        0x0429              Farsi
197        0x042a              Vietnamese (98/ME,NT,2K/XP)
198        0x042b              Armenian. This is Unicode only. (2K/XP)
199                            Armenian Eastern
200                            Armenian Western
201        0x042c              Azeri (Latin)
202        0x082c              Azeri (Cyrillic)
203        0x042d              Basque
204        0x042f              Macedonian (FYROM)
205        0x0430              Sutu
206        0x0432              Setswana/Tswana (South Africa)
207        0x0434              isiXhosa/Xhosa (South Africa)
208        0x0435              isiZulu/Zulu (South Africa)
209        0x0436              Afrikaans
210        0x0437              Georgian. This is Unicode only. (2K/XP)
211   .    0x0438              Faeroese
212        0x0439              Hindi. This is Unicode only. (2K/XP)
213        0x043a              Maltese (Malta)
214        0x043b              Sami, Northern (Norway)
215        0x083b              Sami, Northern (Sweden)
216        0x0c3b              Sami, Northern (Finland)
217        0x103b              Sami, Lule (Norway)
218        0x143b              Sami, Lule (Sweden)
219        0x183b              Sami, Southern (Norway)
220        0x1c3b              Sami, Southern (Sweden)
221        0x203b              Sami, Skolt (Finland)
222        0x243b              Sami, Inari (Finland)
223        0x043e              Malay (Malaysian)
224        0x083e              Malay (Brunei Darussalam)
225        0x0440              Kyrgyz. (XP)
226        0x0441              Swahili (Kenya)
227        0x0443              Uzbek (Latin)
228        0x0843              Uzbek (Cyrillic)
229        0x0444              Tatar (Tatarstan)
230        0x0445              Bengali (India)
231                            Bengali (Inscript)
232        0x0446              Punjabi. This is Unicode only. (XP)
233        0x0447              Gujarati. This is Unicode only. (XP)
234        0x0449              Tamil. This is Unicode only. (2K/XP)
235        0x044a              Telugu. This is Unicode only. (XP)
236        0x044b              Kannada. This is Unicode only. (XP)
237        0x044c              Malayalam (India)
238        0x044e              Marathi. This is Unicode only. (2K/XP)
239        0x044f              Sanskrit. This is Unicode only. (2K/XP)
240        0x0450              Mongolian (XP)
241        0x0452              Welsh (United Kingdom)
242        0x0455              Burmese
243        0x0456              Galician (XP)
244        0x0457              Konkani. This is Unicode only. (2K/XP)
245        0x045a              Syriac. This is Unicode only. (XP)
246        0x0465              Divehi. This is Unicode only. (XP)
247                            Divehi (Phonetic)
248                            Divehi (Typewriter)
249        0x046b              Quechua (Bolivia)
250        0x086b              Quechua (Ecuador)
251        0x0c6b              Quechua (Peru)
252        0x046c              Sesotho sa Leboa/Northern Sotho (South Africa)
253        0x007f              LOCALE_INVARIANT. See MAKELCID.
254        0x0481              Maori (New Zealand)
255*/
256
257
258