winlayouts.h revision 05b261ec
105b261ecSmrg/*
205b261ecSmrg * Copyright (c) 2005 Alexander Gottwald
305b261ecSmrg *
405b261ecSmrg * Permission is hereby granted, free of charge, to any person obtaining a
505b261ecSmrg * copy of this software and associated documentation files (the "Software"),
605b261ecSmrg * to deal in the Software without restriction, including without limitation
705b261ecSmrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
805b261ecSmrg * and/or sell copies of the Software, and to permit persons to whom the
905b261ecSmrg * Software is furnished to do so, subject to the following conditions:
1005b261ecSmrg *
1105b261ecSmrg * The above copyright notice and this permission notice shall be included in
1205b261ecSmrg * all copies or substantial portions of the Software.
1305b261ecSmrg *
1405b261ecSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1505b261ecSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1605b261ecSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
1705b261ecSmrg * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
1805b261ecSmrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
1905b261ecSmrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
2005b261ecSmrg * DEALINGS IN THE SOFTWARE.
2105b261ecSmrg *
2205b261ecSmrg * Except as contained in this notice, the name(s) of the above copyright
2305b261ecSmrg * holders shall not be used in advertising or otherwise to promote the sale,
2405b261ecSmrg * use or other dealings in this Software without prior written authorization.
2505b261ecSmrg */
2605b261ecSmrg/* Definitions for various keyboard layouts from windows and their
2705b261ecSmrg * XKB settings.
2805b261ecSmrg */
2905b261ecSmrg
3005b261ecSmrgtypedef struct
3105b261ecSmrg{
3205b261ecSmrg    unsigned int winlayout;
3305b261ecSmrg    int winkbtype;
3405b261ecSmrg    char *xkbmodel;
3505b261ecSmrg    char *xkblayout;
3605b261ecSmrg    char *xkbvariant;
3705b261ecSmrg    char *xkboptions;
3805b261ecSmrg    char *layoutname;
3905b261ecSmrg} WinKBLayoutRec, *WinKBLayoutPtr;
4005b261ecSmrg
4105b261ecSmrgWinKBLayoutRec winKBLayouts[] =
4205b261ecSmrg{
4305b261ecSmrg    {  0x405, -1, "pc105", "cz",      NULL, NULL, "Czech"},
4405b261ecSmrg    {0x10405, -1, "pc105", "cz_qwerty", NULL, NULL, "Czech (QWERTY)"},
4505b261ecSmrg    {  0x406, -1, "pc105", "dk",      NULL, NULL, "Danish"},
4605b261ecSmrg    {  0x407, -1, "pc105", "de",      NULL, NULL, "German (Germany)"},
4705b261ecSmrg    {0x10407, -1, "pc105", "de",      NULL, NULL, "German (Germany, IBM)"},
4805b261ecSmrg    {  0x807, -1, "pc105", "de_CH",   NULL, NULL, "German (Switzerland)"},
4905b261ecSmrg    {  0x409, -1, "pc105", "us",      NULL, NULL, "English (USA)"},
5005b261ecSmrg    {0x10409, -1, "pc105", "dvorak",  NULL, NULL, "English (USA, Dvorak)"},
5105b261ecSmrg    {0x20409, -1, "pc105", "us_intl", NULL, NULL, "English (USA, International)"},
5205b261ecSmrg    {  0x809, -1, "pc105", "gb",      NULL, NULL, "English (United Kingdom)"},
5305b261ecSmrg    { 0x1809, -1, "pc105", "ie",      NULL, NULL, "Irish"},
5405b261ecSmrg    {  0x40a, -1, "pc105", "es",      NULL, NULL, "Spanish (Spain, Traditional Sort)"},
5505b261ecSmrg    {  0x40b, -1, "pc105", "fi",      NULL, NULL, "Finnish"},
5605b261ecSmrg    {  0x40c, -1, "pc105", "fr",      NULL, NULL, "French (Standard)"},
5705b261ecSmrg    {  0x80c, -1, "pc105", "be",      NULL, NULL, "French (Belgian)"},
5805b261ecSmrg    {  0xc0c, -1, "pc105", "ca_enhanced", NULL, NULL, "French (Canada)"},
5905b261ecSmrg    { 0x100c, -1, "pc105", "fr_CH",   NULL, NULL, "French (Switzerland)"},
6005b261ecSmrg    {  0x40e, -1, "pc105", "hu",      NULL, NULL, "Hungarian"},
6105b261ecSmrg    {  0x410, -1, "pc105", "it",      NULL, NULL, "Italian"},
6205b261ecSmrg    {  0x411,  7, "jp106", "jp",      NULL, NULL, "Japanese"},
6305b261ecSmrg    {  0x813, -1, "pc105", "be",      NULL, NULL, "Dutch (Belgian)"},
6405b261ecSmrg    {  0x414, -1, "pc105", "no",      NULL, NULL, "Norwegian"},
6505b261ecSmrg    {  0x416, -1, "pc105", "br",      NULL, NULL, "Portuguese (Brazil, ABNT)"},
6605b261ecSmrg    {0x10416, -1, "abnt2", "br",      NULL, NULL, "Portuguese (Brazil, ABNT2)"},
6705b261ecSmrg    {  0x816, -1, "pc105", "pt",      NULL, NULL, "Portuguese (Portugal)"},
6805b261ecSmrg    {  0x41d, -1, "pc105", "se",      NULL, NULL, "Swedish (Sweden)"},
6905b261ecSmrg    {     -1, -1, NULL,    NULL,      NULL, NULL, NULL}
7005b261ecSmrg};
7105b261ecSmrg
7205b261ecSmrg/* Listing of language codes from MSDN */
7305b261ecSmrg/*
7405b261ecSmrgSupport ID       XKB        Language
7505b261ecSmrg====================================================================
7605b261ecSmrg   ?    0x0000              Language Neutral
7705b261ecSmrg   ?    0x0400              Process or User Default Language
7805b261ecSmrg   ?    0x0800              System Default Language
7905b261ecSmrg        0x0401              Arabic (Saudi Arabia)
8005b261ecSmrg        0x0801              Arabic (Iraq)
8105b261ecSmrg        0x0c01              Arabic (Egypt)
8205b261ecSmrg        0x1001              Arabic (Libya)
8305b261ecSmrg        0x1401              Arabic (Algeria)
8405b261ecSmrg        0x1801              Arabic (Morocco)
8505b261ecSmrg        0x1c01              Arabic (Tunisia)
8605b261ecSmrg        0x2001              Arabic (Oman)
8705b261ecSmrg        0x2401              Arabic (Yemen)
8805b261ecSmrg        0x2801              Arabic (Syria)
8905b261ecSmrg        0x2c01              Arabic (Jordan)
9005b261ecSmrg        0x3001              Arabic (Lebanon)
9105b261ecSmrg        0x3401              Arabic (Kuwait)
9205b261ecSmrg        0x3801              Arabic (U.A.E.)
9305b261ecSmrg        0x3c01              Arabic (Bahrain)
9405b261ecSmrg        0x4001              Arabic (Qatar)
9505b261ecSmrg                            Arabic (102) AZERTY
9605b261ecSmrg        0x0402              Bulgarian
9705b261ecSmrg        0x0403              Catalan
9805b261ecSmrg        0x0404              Chinese (Taiwan)
9905b261ecSmrg        0x0804              Chinese (PRC)
10005b261ecSmrg        0x0c04              Chinese (Hong Kong SAR, PRC)
10105b261ecSmrg        0x1004              Chinese (Singapore)
10205b261ecSmrg        0x1404              Chinese (Macao SAR) (98/ME,2K/XP)
10305b261ecSmrg   X    0x0405  cz          Czech
10405b261ecSmrg   X            cz_qwerty   Czech (QWERTY)
10505b261ecSmrg                            Czech (Programmers)
10605b261ecSmrg   X    0x0406  dk          Danish
10705b261ecSmrg   X    0x0407  de          German (Standard)
10805b261ecSmrg   X    0x0807  de_CH       German (Switzerland)
10905b261ecSmrg        0x0c07              German (Austria)
11005b261ecSmrg        0x1007              German (Luxembourg)
11105b261ecSmrg        0x1407              German (Liechtenstein)
11205b261ecSmrg        0x0408              Greek
11305b261ecSmrg   X    0x0409  us          English (United States)
11405b261ecSmrg   X    0x0809  gb          English (United Kingdom)
11505b261ecSmrg        0x0c09              English (Australian)
11605b261ecSmrg        0x1009              English (Canadian)
11705b261ecSmrg        0x1409              English (New Zealand)
11805b261ecSmrg   X    0x1809  ie          English (Ireland)
11905b261ecSmrg        0x1c09              English (South Africa)
12005b261ecSmrg        0x2009              English (Jamaica)
12105b261ecSmrg        0x2409              English (Caribbean)
12205b261ecSmrg        0x2809              English (Belize)
12305b261ecSmrg        0x2c09              English (Trinidad)
12405b261ecSmrg        0x3009              English (Zimbabwe) (98/ME,2K/XP)
12505b261ecSmrg        0x3409              English (Philippines) (98/ME,2K/XP)
12605b261ecSmrg   X    0x040a  es          Spanish (Spain, Traditional Sort)
12705b261ecSmrg        0x080a              Spanish (Mexican)
12805b261ecSmrg        0x0c0a              Spanish (Spain, Modern Sort)
12905b261ecSmrg        0x100a              Spanish (Guatemala)
13005b261ecSmrg        0x140a              Spanish (Costa Rica)
13105b261ecSmrg        0x180a              Spanish (Panama)
13205b261ecSmrg        0x1c0a              Spanish (Dominican Republic)
13305b261ecSmrg        0x200a              Spanish (Venezuela)
13405b261ecSmrg        0x240a              Spanish (Colombia)
13505b261ecSmrg        0x280a              Spanish (Peru)
13605b261ecSmrg        0x2c0a              Spanish (Argentina)
13705b261ecSmrg        0x300a              Spanish (Ecuador)
13805b261ecSmrg        0x340a              Spanish (Chile)
13905b261ecSmrg        0x380a              Spanish (Uruguay)
14005b261ecSmrg        0x3c0a              Spanish (Paraguay)
14105b261ecSmrg        0x400a              Spanish (Bolivia)
14205b261ecSmrg        0x440a              Spanish (El Salvador)
14305b261ecSmrg        0x480a              Spanish (Honduras)
14405b261ecSmrg        0x4c0a              Spanish (Nicaragua)
14505b261ecSmrg        0x500a              Spanish (Puerto Rico)
14605b261ecSmrg   X    0x040b  fi          Finnish
14705b261ecSmrg                            Finnish (with Sami)
14805b261ecSmrg   X    0x040c  fr          French (Standard)
14905b261ecSmrg   X    0x080c  be          French (Belgian)
15005b261ecSmrg   .    0x0c0c              French (Canadian)
15105b261ecSmrg                            French (Canadian, Legacy)
15205b261ecSmrg                            Canadian (Multilingual)
15305b261ecSmrg   X    0x100c  fr_CH       French (Switzerland)
15405b261ecSmrg        0x140c              French (Luxembourg)
15505b261ecSmrg        0x180c              French (Monaco) (98/ME,2K/XP)
15605b261ecSmrg        0x040d              Hebrew
15705b261ecSmrg   X    0x040e  hu          Hungarian
15805b261ecSmrg   .    0x040f              Icelandic
15905b261ecSmrg   X    0x0410  it          Italian (Standard)
16005b261ecSmrg        0x0810              Italian (Switzerland)
16105b261ecSmrg   X    0x0411  jp          Japanese
16205b261ecSmrg        0x0412              Korean
16305b261ecSmrg        0x0812              Korean (Johab) (95,NT)
16405b261ecSmrg   .    0x0413              Dutch (Netherlands)
16505b261ecSmrg   X    0x0813  be          Dutch (Belgium)
16605b261ecSmrg   X    0x0414  no          Norwegian (Bokmal)
16705b261ecSmrg        0x0814              Norwegian (Nynorsk)
16805b261ecSmrg   .    0x0415              Polish
16905b261ecSmrg   X    0x0416  br          Portuguese (Brazil)
17005b261ecSmrg   X    0x0816  pt          Portuguese (Portugal)
17105b261ecSmrg   .    0x0418              Romanian
17205b261ecSmrg        0x0419              Russian
17305b261ecSmrg   .    0x041a              Croatian
17405b261ecSmrg   .    0x081a              Serbian (Latin)
17505b261ecSmrg   .    0x0c1a              Serbian (Cyrillic)
17605b261ecSmrg        0x101a              Croatian (Bosnia and Herzegovina)
17705b261ecSmrg        0x141a              Bosnian (Bosnia and Herzegovina)
17805b261ecSmrg        0x181a              Serbian (Latin, Bosnia, and Herzegovina)
17905b261ecSmrg        0x1c1a              Serbian (Cyrillic, Bosnia, and Herzegovina)
18005b261ecSmrg   .    0x041b              Slovak
18105b261ecSmrg   .    0x041c              Albanian
18205b261ecSmrg   X    0x041d  se          Swedish
18305b261ecSmrg        0x081d              Swedish (Finland)
18405b261ecSmrg        0x041e              Thai
18505b261ecSmrg        0x041f              Turkish
18605b261ecSmrg        0x0420              Urdu (Pakistan) (98/ME,2K/XP)
18705b261ecSmrg        0x0820              Urdu (India)
18805b261ecSmrg        0x0421              Indonesian
18905b261ecSmrg        0x0422              Ukrainian
19005b261ecSmrg        0x0423              Belarusian
19105b261ecSmrg   .    0x0424              Slovenian
19205b261ecSmrg        0x0425              Estonian
19305b261ecSmrg        0x0426              Latvian
19405b261ecSmrg        0x0427              Lithuanian
19505b261ecSmrg        0x0827              Lithuanian (Classic) (98)
19605b261ecSmrg        0x0429              Farsi
19705b261ecSmrg        0x042a              Vietnamese (98/ME,NT,2K/XP)
19805b261ecSmrg        0x042b              Armenian. This is Unicode only. (2K/XP)
19905b261ecSmrg                            Armenian Eastern
20005b261ecSmrg                            Armenian Western
20105b261ecSmrg        0x042c              Azeri (Latin)
20205b261ecSmrg        0x082c              Azeri (Cyrillic)
20305b261ecSmrg        0x042d              Basque
20405b261ecSmrg        0x042f              Macedonian (FYROM)
20505b261ecSmrg        0x0430              Sutu
20605b261ecSmrg        0x0432              Setswana/Tswana (South Africa)
20705b261ecSmrg        0x0434              isiXhosa/Xhosa (South Africa)
20805b261ecSmrg        0x0435              isiZulu/Zulu (South Africa)
20905b261ecSmrg        0x0436              Afrikaans
21005b261ecSmrg        0x0437              Georgian. This is Unicode only. (2K/XP)
21105b261ecSmrg   .    0x0438              Faeroese
21205b261ecSmrg        0x0439              Hindi. This is Unicode only. (2K/XP)
21305b261ecSmrg        0x043a              Maltese (Malta)
21405b261ecSmrg        0x043b              Sami, Northern (Norway)
21505b261ecSmrg        0x083b              Sami, Northern (Sweden)
21605b261ecSmrg        0x0c3b              Sami, Northern (Finland)
21705b261ecSmrg        0x103b              Sami, Lule (Norway)
21805b261ecSmrg        0x143b              Sami, Lule (Sweden)
21905b261ecSmrg        0x183b              Sami, Southern (Norway)
22005b261ecSmrg        0x1c3b              Sami, Southern (Sweden)
22105b261ecSmrg        0x203b              Sami, Skolt (Finland)
22205b261ecSmrg        0x243b              Sami, Inari (Finland)
22305b261ecSmrg        0x043e              Malay (Malaysian)
22405b261ecSmrg        0x083e              Malay (Brunei Darussalam)
22505b261ecSmrg        0x0440              Kyrgyz. (XP)
22605b261ecSmrg        0x0441              Swahili (Kenya)
22705b261ecSmrg        0x0443              Uzbek (Latin)
22805b261ecSmrg        0x0843              Uzbek (Cyrillic)
22905b261ecSmrg        0x0444              Tatar (Tatarstan)
23005b261ecSmrg        0x0445              Bengali (India)
23105b261ecSmrg                            Bengali (Inscript)
23205b261ecSmrg        0x0446              Punjabi. This is Unicode only. (XP)
23305b261ecSmrg        0x0447              Gujarati. This is Unicode only. (XP)
23405b261ecSmrg        0x0449              Tamil. This is Unicode only. (2K/XP)
23505b261ecSmrg        0x044a              Telugu. This is Unicode only. (XP)
23605b261ecSmrg        0x044b              Kannada. This is Unicode only. (XP)
23705b261ecSmrg        0x044c              Malayalam (India)
23805b261ecSmrg        0x044e              Marathi. This is Unicode only. (2K/XP)
23905b261ecSmrg        0x044f              Sanskrit. This is Unicode only. (2K/XP)
24005b261ecSmrg        0x0450              Mongolian (XP)
24105b261ecSmrg        0x0452              Welsh (United Kingdom)
24205b261ecSmrg        0x0455              Burmese
24305b261ecSmrg        0x0456              Galician (XP)
24405b261ecSmrg        0x0457              Konkani. This is Unicode only. (2K/XP)
24505b261ecSmrg        0x045a              Syriac. This is Unicode only. (XP)
24605b261ecSmrg        0x0465              Divehi. This is Unicode only. (XP)
24705b261ecSmrg                            Divehi (Phonetic)
24805b261ecSmrg                            Divehi (Typewriter)
24905b261ecSmrg        0x046b              Quechua (Bolivia)
25005b261ecSmrg        0x086b              Quechua (Ecuador)
25105b261ecSmrg        0x0c6b              Quechua (Peru)
25205b261ecSmrg        0x046c              Sesotho sa Leboa/Northern Sotho (South Africa)
25305b261ecSmrg        0x007f              LOCALE_INVARIANT. See MAKELCID.
25405b261ecSmrg        0x0481              Maori (New Zealand)
25505b261ecSmrg*/
25605b261ecSmrg
25705b261ecSmrg
258