Squashed commits: * Add type to $$ in mid-rules.(see: http://www.mail-archive.com/help-bi...@gnu.org/msg02159.html )
* Lexer support for keycodes with +/- symbols and arbitrary level numbers. * Skip to main file's default section when needed. * Update key type assigment routine. (Adds support for FOUR_LEVEL keys) * Recreate xkb/keymap/hurd based on xkeyboard-config-1.8's xfree86 keymap. modified: xkb/keymap/hurd - Don't include inexistant symbol file: pc104. - en_US was replaced by pc(pc105). - Append us layout by default as pc(pc105) no longer describes a full keyboard. --- lex.l | 3 +- parser.y | 6 +- xkb.c | 47 ++++++--- xkb/keymap/hurd | 294 +++++++++++++++++++++++++++++++------------------------ 4 files changed, 205 insertions(+), 145 deletions(-) diff --git a/lex.l b/lex.l index 37b88c3..6ef9134 100644 --- a/lex.l +++ b/lex.l @@ -30,7 +30,7 @@ %option nodebug %option UNPUT -KEYCODE "<"[A-Z][A-Z0-9]*">" +KEYCODE "<"[A-Z][-+A-Z0-9]*">" DIGIT [0-9] NUM {DIGIT}{DIGIT}* FLOAT {DIGIT}{DIGIT}*\.{DIGIT}{DIGIT}* @@ -91,6 +91,7 @@ level1 { yylval.val = 1; return LEVEL; } level2 { yylval.val = 2; return LEVEL; } level3 { yylval.val = 3; return LEVEL; } level4 { yylval.val = 4; return LEVEL; } +level[1-9][0-9]* { yylval.val = atoi(yytext + 5); return LEVEL; } /* Groups. */ group1 { yylval.val = 1; return GROUPNUM; } diff --git a/parser.y b/parser.y index 9fe2a39..cf1ca33 100644 --- a/parser.y +++ b/parser.y @@ -336,8 +336,8 @@ mods: mods '+' rmod { $$.rmods = $1.rmods | $3; } | mods '+' vmod { $$.vmods = $1.vmods | $3; } /* Use a mid-rule action to start with no modifiers. */ -| { $$.rmods = 0; $$.vmods = 0 } rmod { $$.rmods = $2; } -| { $$.rmods = 0; $$.vmods = 0 } vmod { $$.vmods = $2; } +| { $<modmap>$.rmods = 0; $<modmap>$.vmods = 0 } rmod { $$.rmods = $2; } +| { $<modmap>$.rmods = 0; $<modmap>$.vmods = 0 } vmod { $$.vmods = $2; } | "all" { $$.rmods = 0xFF; $$.vmods = 0xFFFF} | "none" { $$.rmods = 0; $$.vmods = 0 } ; @@ -1486,6 +1486,8 @@ parse_xkbconfig (char *xkbdir, char *xkbkeymapfile, char *xkbkeymap) if (xkbkeymap) skip_to_sectionname (xkbkeymap, XKBKEYMAP); + else + skip_to_defaultsection(); } else /* Use defaults. */ { diff --git a/xkb.c b/xkb.c index 9da51a2..00fa6e0 100644 --- a/xkb.c +++ b/xkb.c @@ -388,28 +388,47 @@ iskeypad (int width, int *sym) /* Get the keytype (the keytype determines which modifiers are used for shifting. + See findautomatict...@xkbcomp/symbols.c + These rules are used: - * If the width is 1 the keytype is ONE_LEVEL. - * If the first symbol is lowercase and the second is uppercase - (latin alphabeth) the keytype is ALPHABETHIC. - * If one of the symbols is in the keypad range the keytype is KEYPAD. - * Else the keytype is TWO_LEVEL. */ + Simple recipe: + - ONE_LEVEL for width 0/1 + - ALPHABETIC for 2 shift levels, with lower/upercase + - KEYPAD for keypad keys. + - TWO_LEVEL for other 2 shift level keys. + and the same for four level keys. + + Otherwise, the key type is TWO_LEVEL. + */ static struct keytype * get_keytype (int width, symbol *sym) { - struct keytype *ktfound; + struct keytype *ktfound = NULL; - if (!width || !sym) + if (!sym) ktfound = keytype_find ("TWO_LEVEL"); - else if (iskeypad (width, sym)) - ktfound = keytype_find ("KEYPAD"); - else if (width == 1) + else if ((width == 1) || (width == 0)) ktfound = keytype_find ("ONE_LEVEL"); - else if (width >= 2 && islatin_lower (sym[0]) && islatin_upper (sym[1])) - ktfound = keytype_find ("ALPHABETIC"); - else - ktfound = keytype_find ("TWO_LEVEL"); + else if (width == 2) { + if (islatin_lower (sym[0]) && islatin_upper (sym[1])) + ktfound = keytype_find ("ALPHABETIC"); + else if (iskeypad (width, sym)) + ktfound = keytype_find ("KEYPAD"); + else + ktfound = keytype_find ("TWO_LEVEL"); + } + else if (width <= 4) { + if (islatin_lower (sym[0]) && islatin_upper (sym[1])) + if (islatin_lower(sym[2]) && islatin_upper(sym[3])) + ktfound = keytype_find ("FOUR_LEVEL_ALPHABETIC"); + else + ktfound = keytype_find ("FOUR_LEVEL_SEMIALPHABETIC"); + else if (iskeypad (2, sym)) + ktfound = keytype_find ("FOUR_LEVEL_KEYPAD"); + else + ktfound = keytype_find ("FOUR_LEVEL"); + } if (!ktfound) ktfound = keytype_find ("TWO_LEVEL"); diff --git a/xkb/keymap/hurd b/xkb/keymap/hurd index 66de67e..8ee4de8 100644 --- a/xkb/keymap/hurd +++ b/xkb/keymap/hurd @@ -1,347 +1,385 @@ -// $Xorg: xfree86,v 1.3 2000/08/17 19:54:40 cpqbld Exp $ +// $XFree86: xc/programs/xkbcomp/keymap/xfree86,v 3.30 2003/04/03 16:34:49 dawes Exp $ - - -// $XFree86: xc/programs/xkbcomp/keymap/xfree86,v 3.26 2002/01/16 18:20:11 dawes Exp $ - xkb_keymap "Hurd" { xkb_keycodes { include "xfree86" }; xkb_types { include "default+hurd" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+hurd+pc104+group(win_switch)+compose(menu)" }; + xkb_symbols { include "pc(pc105)+us+hurd+group(win_switch)+compose(menu)" }; xkb_geometry { include "pc" }; }; -xkb_keymap "us" { + +default xkb_keymap "us" { xkb_keycodes { include "xfree86" }; - xkb_types { include "default+hurd" }; + xkb_types { include "default+hurd" }; xkb_compatibility { include "default" }; - xkb_symbols { include "us(pc105)+hurd" }; + xkb_symbols { include "pc(pc105)+us+hurd" }; xkb_geometry { include "pc" }; }; -xkb_keymap "us_microsoft" { + +// "ar" addition by Arabeyes Team, <supp...@arabeyes.org> +xkb_keymap "ar" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "us(pc105)" }; - xkb_geometry { include "microsoft" }; + xkb_symbols { include "pc(pc105)+ara" }; + xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "us_flexpro" { +xkb_keymap "be" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "us(pc105)" }; - xkb_geometry { include "keytronic(FlexPro)" }; + xkb_symbols { include "pc(pc105)+be" }; + xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "en_US" { +xkb_keymap "bg" { xkb_keycodes { include "xfree86" }; - xkb_types { include "default+hurd" }; + xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+hurd" }; - xkb_geometry { include "pc" }; + xkb_symbols { include "pc(pc105)+bg" }; + xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "be" { +// us_intl and br by Ricardo Y. Igarashi (i...@that.com.br) +xkb_keymap "br" { + xkb_keycodes { include "xfree86" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "pc(pc105)+br" }; + xkb_geometry { include "pc(abnt2)" }; +}; +// cz and sk keymaps by Kamil Toman (kto...@email.cz) +// are designed to replace old czechoslovakian and czsk keyboards +// and their prog variants. Those are now obsolete and should not be used anymore. +xkb_keymap "cz" { + xkb_keycodes { include "xfree86" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "pc(pc105)+cz" }; + xkb_geometry { include "pc" }; +}; +xkb_keymap "de" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+be" }; + xkb_symbols { include "pc(pc105)+de" }; xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "bg" { +xkb_keymap "ch_de" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+bg" }; + xkb_symbols { include "pc(pc105)+ch(de)" }; xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "de" { +xkb_keymap "ch_fr" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+de" }; + xkb_symbols { include "pc(pc105)+ch(fr)" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "dk" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+dk" }; + xkb_symbols { include "pc(pc105)+dk" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "dvorak" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+dvorak" }; + xkb_symbols { include "pc(pc105)+us(dvorak)"}; xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "es" { +xkb_keymap "en_US" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+es" }; + xkb_symbols { include "pc(pc105)+us" }; + xkb_geometry { include "pc" }; +}; +xkb_keymap "es" { + xkb_keycodes { include "xfree86" }; + xkb_types { include "default+hurd" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "pc(pc105)+es+hurd" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "fr" { xkb_keycodes { include "xfree86" }; xkb_types { include "default+hurd" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+fr+hurd" }; + xkb_symbols { include "pc(pc105)+fr+hurd" }; xkb_geometry { include "pc(pc102)" }; }; +xkb_keymap "fr-latin9" { + xkb_keycodes { include "xfree86" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "pc(pc105)+fr-latin9" }; + xkb_geometry { include "pc" }; +}; xkb_keymap "fr_CA" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+ca" }; + xkb_symbols { include "pc(pc105)+ca" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "gb" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+gb" }; + xkb_symbols { include "pc(pc105)+gb" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "hr" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+hr" }; + xkb_symbols { include "pc(pc105)+hr" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "it" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+it" }; + xkb_symbols { include "pc(pc105)+it" }; xkb_geometry { include "pc(pc102)" }; }; +xkb_keymap "jp106" { + xkb_keycodes { include "xfree86" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "jp(jp106)" }; + xkb_geometry { include "pc(jp106)" }; +}; xkb_keymap "lt" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+lt" }; + xkb_symbols { include "pc(pc105)+lt" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "lt_std" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+lt_std" }; + xkb_symbols { include "pc(pc105)+lt(std)" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "lv" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+lv" }; + xkb_symbols { include "pc(pc105)+lv" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "mk" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+mk" }; + xkb_symbols { include "pc(pc105)+mk" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "mt" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+mt" }; - xkb_geometry { include "pc(pc102)" }; -}; -xkb_keymap "mt_us" { - xkb_keycodes { include "xfree86" }; - xkb_types { include "default" }; - xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+mt_us" }; + xkb_symbols { include "pc(pc105)+mt" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "no" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+no" }; + xkb_symbols { include "pc(pc105)+no" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "pl" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+pl" }; + xkb_symbols { include "pc(pc105)+pl" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "pt" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+pt" }; + xkb_symbols { include "pc(pc105)+pt" }; xkb_geometry { include "pc(pc102)" }; }; +// ro: additions by Cristian Gafton, <gaf...@redhat.com> +xkb_keymap "ro" { + xkb_keycodes { include "xfree86" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "pc(pc105)+ro(pc101)" }; + xkb_geometry { include "pc(pc101)" }; +}; +xkb_keymap "ro_microsoft" { + xkb_keycodes { include "xfree86" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "pc(pc105)+ro(pc105)" }; + xkb_geometry { include "pc(pc105)" }; +}; xkb_keymap "ru" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+ru" }; + xkb_symbols { include "pc(pc105)+ru" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "se_FI" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+fi" }; + xkb_symbols { include "pc(pc105)+fi" }; xkb_geometry { include "pc(pc102)" }; }; xkb_keymap "se_SE" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+se" }; + xkb_symbols { include "pc(pc105)+se" }; xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "th" { +xkb_keymap "sl" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+th" }; - xkb_geometry { include "pc(pc102)" }; + xkb_symbols { include "pc(pc105)+si" }; + xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "de_CH" { +xkb_keymap "sl_SI" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+de_CH" }; - xkb_geometry { include "pc(pc102)" }; + xkb_symbols { include "pc(pc105)+si" }; + xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "fr_CH" { +// cz and sk keymaps by Kamil Toman (kto...@email.cz) +// are designed to replace old czechoslovakian and czsk keyboards +// and their prog variants. Those are now obsolete and should not be used anymore. +xkb_keymap "sk" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+fr_CH" }; - xkb_geometry { include "pc(pc102)" }; + xkb_symbols { include "pc(pc105)+sk" }; + xkb_geometry { include "pc" }; }; -xkb_keymap "jp106" { - xkb_keycodes { include "xfree86(jp106)" }; +// Additions by Emil Soleyman-Zomalan, <e...@nishra.com> +xkb_keymap "syr" { + xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; - xkb_compatibility { include "default" }; - xkb_symbols { include "jp(jp106)" }; - xkb_geometry { include "pc(jp106)" }; -}; - -// Additions by Eric Moreau, 1998-09-27 -// I am reachable at eric_mor...@compuserve.com - -xkb_keymap "fr_CA_sundeadkeys" { + xkb_compatibility { include "default" }; + xkb_symbols { include "pc(pc105)+syr" }; + xkb_geometry { include "pc(pc102)" }; +}; +xkb_keymap "th" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc102)+ca_enhanced(sundeadkeys)+us_group3(basic)+group(ctrl_shift_toggle)+ralt(mode_switch)" }; + xkb_symbols { include "pc(pc105)+th" }; xkb_geometry { include "pc(pc102)" }; }; - -xkb_keymap "fr_CA" { +xkb_keymap "th_tis" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc102)+ca_enhanced(basic)+us_group3(basic)+group(ctrl_shift_toggle)+ralt(mode_switch)" }; + xkb_symbols { include "pc(pc105)+th(tis)" }; xkb_geometry { include "pc(pc102)" }; }; - -// us_intl and br by Ricardo Y. Igarashi (i...@that.com.br) -// us_intl means standard us keyboard plus dead_keys symbols -// these keyboards are very popular in Brazil - -xkb_keymap "us_intl" { +xkb_keymap "th_pat" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "us(pc101)+us_intl" }; - xkb_geometry { include "pc" }; + xkb_symbols { include "pc(pc105)+th(pat)" }; + xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "br" { - xkb_keycodes { include "xfree86(abnt2)" }; +xkb_keymap "tr" { + xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "us(pc101)+br" }; - xkb_geometry { include "pc(abnt2)" }; + xkb_symbols { include "pc(pc105)+tr" }; + xkb_geometry { include "pc(pc102)" }; }; - -// cz and sk keymaps by Kamil Toman (kto...@email.cz) -// are designed to replace old czechoslovakian and czsk keyboards -// and their prog variants. Those are now obsolete and should not be used anymore. -xkb_keymap "cz" { +xkb_keymap "uk" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+cz" }; - xkb_geometry { include "pc" }; + xkb_symbols { include "pc(pc105)+uk)" }; + xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "cz_qwerty" { +xkb_keymap "us_flexpro" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+cz_qwerty" }; - xkb_geometry { include "pc" }; + xkb_symbols { include "us(pc105)" }; + xkb_geometry { include "keytronic(FlexPro)" }; }; -xkb_keymap "sk" { +// us_intl and br by Ricardo Y. Igarashi (i...@that.com.br) +// us_intl means standard us keyboard plus dead_keys symbols +// these keyboards are very popular in Brazil +xkb_keymap "us_intl" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+sk" }; + xkb_symbols { include "us(pc101)+us(intl)" }; xkb_geometry { include "pc" }; }; -xkb_keymap "sk_qwerty" { +xkb_keymap "us_microsoft" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+sk_qwerty" }; - xkb_geometry { include "pc" }; + xkb_symbols { include "us(pc105)" }; + xkb_geometry { include "microsoft" }; }; -xkb_keymap "sl" { +xkb_keymap "uz" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+si" }; + xkb_symbols { include "pc(pc105)+uz" }; xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "sl_SI" { + +# svu: compatibility keymaps, based on variants +xkb_keymap "cz_qwerty" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+si" }; - xkb_geometry { include "pc(pc102)" }; + xkb_symbols { include "pc(pc105)+cz(qwerty)" }; + xkb_geometry { include "pc" }; }; - -// Additions by Cristian Gafton, <gaf...@redhat.com> -xkb_keymap "ro" { - xkb_keycodes { include "xfree86" }; - xkb_types { include "default" }; - xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc101)+ro(pc101)" }; - xkb_geometry { include "pc(pc101)" }; +xkb_keymap "de_CH" { + xkb_keycodes { include "xfree86" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "pc(pc105)+ch(de)" }; + xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "ro_microsoft" { - xkb_keycodes { include "xfree86" }; - xkb_types { include "default" }; - xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+ro(pc105)" }; - xkb_geometry { include "pc(pc105)" }; +xkb_keymap "fr_CH" { + xkb_keycodes { include "xfree86" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "pc(pc105)+ch(fr)" }; + xkb_geometry { include "pc(pc102)" }; }; -xkb_keymap "tr" { +xkb_keymap "mt_us" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+tr" }; + xkb_symbols { include "pc(pc105)+mt(us)" }; xkb_geometry { include "pc(pc102)" }; }; -// Additions by Arabeyes Team, <supp...@arabeyes.org> -xkb_keymap "ar" { +xkb_keymap "sk_qwerty" { xkb_keycodes { include "xfree86" }; xkb_types { include "default" }; xkb_compatibility { include "default" }; - xkb_symbols { include "en_US(pc105)+ar" }; - xkb_geometry { include "pc(pc102)" }; + xkb_symbols { include "pc(pc105)+sk(qwerty)" }; + xkb_geometry { include "pc" }; }; -- 1.7.2