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