summaryrefslogtreecommitdiffstats
path: root/perl-install/keyboard.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/keyboard.pm')
-rw-r--r--perl-install/keyboard.pm37
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);