diff options
Diffstat (limited to 'perl-install/keyboard.pm')
-rw-r--r-- | perl-install/keyboard.pm | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/perl-install/keyboard.pm b/perl-install/keyboard.pm index 7f3d90edd..a92f8ee13 100644 --- a/perl-install/keyboard.pm +++ b/perl-install/keyboard.pm @@ -23,6 +23,7 @@ my $KMAP_MAGIC = 0x8B39C07F; my %lang2keyboard = ( 'af' => 'us_intl', + 'am' => 'us:90', 'ar' => 'ar:90', 'as' => 'ben:90 dev:20 us_intl:5', 'az' => 'az:90 tr_q:10 us_intl:5', @@ -38,18 +39,22 @@ my %lang2keyboard = 'de' => 'de_nodeadkeys:70 de:50 be:50 ch_de:50', 'el' => 'gr:90', 'en' => 'us:89 us_intl:50 qc:50 uk:50', +'en_IE' => 'ie:80 uk:70', 'en_US' => 'us:90 us_intl:50', 'en_GB' => 'uk:89 us:60 us_intl:50', - 'eo' => 'us_intl:89 dvorak:20', + 'eo' => 'us_intl:89 dvorak_eo:30 dvorak:20', 'es' => 'es:85 la:80 us_intl:50', 'et' => 'ee:90', 'eu' => 'es:90 fr:15', 'fa' => 'ir:90', 'fi' => 'fi:90', + 'fo' => 'dk:90', 'fr' => 'fr:89 qc:85 be:85 ch_fr:70', + 'fur' => 'it:90', 'ga' => 'ie:80 uk:70', 'gd' => 'uk:80 ie:70', 'gl' => 'es:90', + 'gn' => 'la:85 es:80 us_intl:50', 'gu' => 'guj:90', 'gv' => 'uk:80 ie:70', 'he' => 'il:90 il_phonetic:10', @@ -57,10 +62,11 @@ my %lang2keyboard = 'hr' => 'hr:90 si:50', 'hu' => 'hu:90', 'hy' => 'am:90 am_old:10 am_phonetic:5', + 'ia' => 'us:90 us_intl:20', 'id' => 'us:90 us_intl:20', 'is' => 'is:90', - 'iu' => 'iu:90', 'it' => 'it:90 ch_fr:50 ch_de:50', + 'iu' => 'iu:90', 'ja' => 'jp:90 us:50 us_intl:20', 'ka' => 'ge_la:90 ge_ru:50', 'kl' => 'dk:80 us_intl:30', @@ -68,9 +74,11 @@ my %lang2keyboard = 'ko' => 'kr:90 us:60', 'ku' => 'tr_q:90 tr_f:30', 'kw' => 'uk:80 ie:70', + 'ky' => 'ky:90 ru_yawerty:40', 'li' => 'us_intl:80 be:70 nl:10 us:5', 'lo' => 'lao:90', 'lt' => 'lt:80 lt_new:70 lt_b:60 lt_p:50', + 'ltg' => 'lv:90 lt:40 lt_new:30 lt_b:20 lt_p:10 ee:5', 'lv' => 'lv:90 lt:40 lt_new:30 lt_b:20 lt_p:10 ee:5', 'mi' => 'us_intl:90 uk:20 us:10', 'mk' => 'mk:90', @@ -81,9 +89,11 @@ my %lang2keyboard = 'mt' => 'mt:90 mt_us:35 us_intl:10', 'my' => 'mm:90', 'nb' => 'no:90 dvorak_no:10', + 'nds' => 'de_nodeadkeys:70 de:50 us_intl:40 nl:10 us:5', + 'ne' => 'dev:90', 'nl' => 'us_intl:80 be:70 nl:10 us:5', 'nn' => 'no:90 dvorak_no:10', - 'no' => 'no:90 dvorak_no:10', + 'no' => 'no:90 dvorak_no:10', # for compatiblity only 'oc' => 'fr:90', 'or' => 'ori:90', 'pa' => 'gur:90', @@ -94,38 +104,51 @@ my %lang2keyboard = 'pt' => 'pt:90', 'ro' => 'ro2:80 ro:40 us_intl:10', 'ru' => 'ru:85 ru_yawerty:80 ua:50', + 'sc' => 'it:90', 'se' => 'sapmi:70 sapmi_sefi:50', 'sh' => 'yu:80', 'sk' => 'sk_qwerty:80 sk:70', 'sl' => 'si:90 hr:50', 'sq' => 'al:90', 'sr' => 'sr:80', + 'ss' => 'us_intl', + 'st' => 'us_intl', 'sv' => 'se:90 fi:30 dvorak_se:10', 'ta' => 'tscii:80 tml:20', 'te' => 'tel:90', 'tg' => 'tj:90 ru_yawerty:40', 'th' => 'th:90', + 'tk' => 'tr_q:50 tr_f:40', # proper Turkmen keyboard still to come + 'tl' => 'us:90 us_intl:20', 'tr' => 'tr_q:90 tr_f:30', 'tt' => 'ru:50 ru_yawerty:40', 'uk' => 'ua:90 ru:50 ru_yawerty:40', - 'uz' => 'us:80 uz:80', + 'ur' => 'ar:50 ir:40', # proper Urdu keyboard still to come + 'uz' => 'uz:80 ru_yawerty:40', 'uz\@Cyrl' => 'uz:80 ru_yawerty:40', + 'uz\@Latn' => 'us:80 uz:80', + 've' => 'us_intl', 'vi' => 'vn:80 us:60 us_intl:50', 'wa' => 'be:90 fr:5', + 'xh' => 'us_intl', 'yi' => 'il_phonetic:90 il:10 us_intl:10', 'zh_CN' => 'us:60', 'zh_TW' => 'us:60', + 'zu' => 'us_intl', ); # USB kbd table # The numeric values are the bCountryCode field (5th byte) of HID descriptor +# NOTE: we don't trust when the layout is declared as us layout (0x21) +# as most manufacturers just use that value when selling physical devices +# with different layouts printed on the keys. my @usb2keyboard = ( qw(SKIP ar_SKIP be ca_SKIP qc cz dk fi fr de gr il hu us_intl it jp), #- 0x10 qw(kr la nl no ir pl pt ru sk es se ch_de ch_de ch_de tw_SKIP tr_q), #- 0x20 - qw(uk us yu tr_f), + qw(uk us_SKIP yu tr_f), #- higher codes not attribued as of 2002-02 ); @@ -173,6 +196,7 @@ arch() =~ /^sparc/ ? ( "dev" => [ N_("Devanagari"), "us", "dev", 0 ], "dk" => [ N_("Danish"), "dk-latin1", "dk", 0 ], "dvorak" => [ N_("Dvorak (US)"), "pc-dvorak-latin1", "dvorak", 0 ], + "dvorak_eo" => [ N_("Dvorak (Esperanto)"), "us", "dvorak(eo)", 0 ], "dvorak_no" => [ N_("Dvorak (Norwegian)"), "no-dvorak", "dvorak(no)", 0 ], "dvorak_se" => [ N_("Dvorak (Swedish)"), "se-dvorak", "dvorak(se)", 0 ], "ee" => [ N_("Estonian"), "ee-latin9", "ee", 0 ], @@ -202,6 +226,7 @@ arch() =~ /^sparc/ ? ( #There is no XKB korean file yet; but using xmodmap one disables # some functioanlity; "us" used for XKB until this is fixed "kr" => [ N_("Korean keyboard"), "us", "us", 1 ], + "ky" => [ N_("Kyrgyz keyboard"), "ru", "ky", 1 ], "la" => [ N_("Latin American"), "la-latin1", "la", 0 ], "lao" => [ N_("Laotian"), "us", "lo", 1 ], "lt" => [ N_("Lithuanian AZERTY (old)"), "lt-latin7", "lt_a", 0 ], @@ -548,7 +573,7 @@ sub check() { } } /SKIP/ || $keyboards{$_} or $err->("invalid keyboard $_ in \@usb2keyboard keyboard.pm") foreach @usb2keyboard; - $usb2keyboard[0x21] eq 'us' or $err->('@usb2keyboard is badly modified, 0x21 is not us keyboard'); + $usb2keyboard[0x21] eq 'us_SKIP' or $err->('@usb2keyboard is badly modified, 0x21 is not us keyboard'); my @xkb_groups = map { if_(/grp:(\S+)/, $1) } cat_('/usr/lib/X11/xkb/rules/xfree86.lst'); $err->("invalid xkb group toggle '$_' in \%grp_toggles") foreach difference2([ keys %grp_toggles ], \@xkb_groups); |