Compare commits

...
Sign in to create a new pull request.

84 commits

Author SHA1 Message Date
Fedora Release Engineering
6bad9f1fea Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-16 04:31:32 +00:00
Vitezslav Crhonek
990654f736 Update to kbd-2.10.0
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2026-06-10 06:24:35 +02:00
Vitezslav Crhonek
92a7d10456 Fix setfont segmentation fault
When setfont is invoked with an option that needs
an argument and that argument is missing.

Resolves: #2447892

Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2026-03-24 08:51:35 +01:00
Fedora Release Engineering
b9cf7908d1 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 17:22:56 +00:00
Vitezslav Crhonek
006901a271 Update to kbd-2.9.0
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2025-09-22 14:42:19 +02:00
Fedora Release Engineering
5455dcf44b Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 18:14:05 +00:00
Vitezslav Crhonek
36dccdf64f Fix kfont_load_font(): setfont killed by SIGSEGV
The issue was caused by accessing previously free'd
memory and introduced by covscan fix. Do not free
inputbuf variable in kfont_read_psffont().

Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2025-07-15 10:13:51 +02:00
Vitezslav Crhonek
495467a9c1 Update to kbd-2.8.0
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2025-06-09 09:09:55 +02:00
Adam Williamson
88612fd7df Add Georgian layout and font (from upstream PR #127)
These are added as source files rather than a patch because the
patch would be binary and autosetup won't apply those, but we're
just adding the same two files the upstream PR adds. This adds a
switched keyboard layout and a console font for Georgian. Thanks
to Temuri Doghonadze and Gia Shervashidze for these.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2025-01-27 13:39:52 -08:00
Fedora Release Engineering
e4adfcb5b6 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 08:19:02 +00:00
Adam Williamson
04bd752f9b Drop xkb-converted Georgian layout (#2336875)
In https://bugzilla.redhat.com/show_bug.cgi?id=2336875 and
https://src.fedoraproject.org/rpms/kbd/pull-request/2#comment-239318
we found out that the Georgian xkb-converted layout (ge.map.gz) is
not really ASCII-capable. It has mappings for ASCII characters,
but the ones for lower-case Latin letters are not reachable
(they rely on modifier keys that are not mapped). Let's just
wipe it, rather than trying to write a much cleverer ASCII check.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2025-01-10 17:17:26 -08:00
Vitezslav Crhonek
19eef3310f Update to kbd-2.7.1
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2025-01-02 13:22:55 +01:00
Vitezslav Crhonek
2fd209b56b Update to kbd-2.7
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2024-12-17 07:37:29 +01:00
Vitezslav Crhonek
0b01da5bee Add vlock option to issue prompt before invokation of pam stack 2024-09-10 13:26:41 +02:00
Fedora Release Engineering
0f3e690579 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 11:22:59 +00:00
Fedora Release Engineering
be64e0bccc Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-24 23:40:55 +00:00
Fedora Release Engineering
2a39d142ff Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 00:00:42 +00:00
Vitezslav Crhonek
0c0055eae4 Update to kbd-2.6.4
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2023-12-15 09:10:16 +01:00
Vitezslav Crhonek
cdf66d478d Update to kbd-2.6.3
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2023-09-20 16:34:15 +02:00
Vitezslav Crhonek
1392cb9cd0 Update to kbd-2.6.2, remove unused patch, version obsoletes
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2023-08-24 11:30:12 +02:00
Fedora Release Engineering
44dc89c083 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 08:26:16 +00:00
Vitezslav Crhonek
7b60b7f694 Update to kbd-2.6.1
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2023-07-03 08:59:09 +02:00
Vitezslav Crhonek
be8cf27e5d Update to kbd-2.6.0
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2023-06-13 09:40:19 +02:00
Vitezslav Crhonek
5bcce9c3b3 SPDX migration, replace deprecated patchN
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2023-05-26 12:18:25 +02:00
Vitezslav Crhonek
91d7302f5b Update patch adding compose rules for converted cz layout, fixes FTBFS 2023-02-21 11:54:04 +01:00
Fedora Release Engineering
952ea5e1e0 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 14:07:42 +00:00
Vitezslav Crhonek
2c037184b4 Require kbd-legacy in main kbd package again 2022-09-21 10:37:26 +02:00
Fedora Release Engineering
3bf51becf7 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 15:38:03 +00:00
Vitezslav Crhonek
45b6b9f2cf Update to kbd-2.5.1 2022-06-21 10:36:03 +02:00
Vitezslav Crhonek
bb8392f7ea Update to kbd-2.5.0 2022-06-08 10:16:20 +02:00
Fedora Release Engineering
f075c2adb3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 14:11:28 +00:00
Adam Williamson
f8cf2198ea Add compat name for Arabic keymap, remove problem char (#2015972) 2021-10-21 14:31:24 -07:00
Vitezslav Crhonek
918f776f5d Use default Finnish xkb-converted layout 2021-09-13 14:40:32 +02:00
Fedora Release Engineering
472ff21333 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 09:28:18 +00:00
Vitezslav Crhonek
bd4172466e Fix setfont exit code 2021-05-20 09:32:00 +02:00
Vitezslav Crhonek
ab3545efb9 Remove one part of the static analysis fix that actually breaks the package 2021-04-27 10:14:12 +02:00
Vitezslav Crhonek
94d128363a Fix issues detected by static analysis, fix layout->keymap conversion 2021-04-22 12:48:49 +02:00
Fedora Release Engineering
a1aed0e27a - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 15:14:06 +00:00
Tom Stellard
e597e2b25c Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-04 22:32:37 +00:00
Vitezslav Crhonek
9193782db0 Update to kbd-2.4.0 2020-12-16 11:15:40 +01:00
Vitezslav Crhonek
de77dbc7a3 Don't require kbd-legacy in main kbd package anymore 2020-10-29 11:42:20 +01:00
Vitezslav Crhonek
02a2eb26c9 Fix kbd fails to build with --nocheck 2020-09-23 08:11:51 +02:00
Adam Williamson
bd9efc38c3 Rebuild with grep #1872913 fix to correctly drop non-ASCII layouts 2020-08-28 11:26:46 -07:00
Vitezslav Crhonek
5b68f0b6fd Update to kbd-2.3.0, use make macros, minor spec file changes 2020-07-29 11:56:19 +02:00
Fedora Release Engineering
cba2479a4c - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 02:46:22 +00:00
Vitezslav Crhonek
2a4b9b3481 skip check on s390x, one test fails, investigate later 2020-03-17 11:51:20 +01:00
Vitezslav Crhonek
2c41c60b31 Use upstream test suite in %%check 2020-03-17 10:50:40 +01:00
Vitezslav Crhonek
2b80b1d7ba Move binaries and kbd data to /usr 2020-03-05 13:46:53 +01:00
Vitezslav Crhonek
70af662a75 Update to kbd-2.2.0 2020-02-10 11:24:21 +01:00
Fedora Release Engineering
eff44b086d - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-29 06:42:08 +00:00
Fedora Release Engineering
6260d1e570 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 11:06:46 +00:00
Fedora Release Engineering
c6694eb400 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 05:04:41 +00:00
Vitezslav Crhonek
eaa5607d56 Apply only tty non-breaking fixes from -10 2018-11-28 11:40:25 +01:00
Adam Williamson
1616f2c7f7 Fix disabling of patch 2018-11-13 13:16:23 -08:00
Adam Williamson
49adccf83b Drop fixes from -10 for now as they are breaking ttys (#1649531) 2018-11-13 13:13:21 -08:00
Vitezslav Crhonek
cab634e032 Fix issues detected by static analysis 2018-11-12 09:57:09 +01:00
Vitezslav Crhonek
7d9ad7580c Remove the link from open to openvt 2018-08-13 14:54:37 +02:00
Peter Robinson
189c8d49e7 Drop initscripts Require, use %%license 2018-07-30 18:46:30 +01:00
Fedora Release Engineering
270d30f7d7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 06:50:18 +00:00
Vitezslav Crhonek
90ae14bcd4 Escape macro in comment, remove Group tag 2018-02-21 15:04:01 +01:00
Vitezslav Crhonek
0aa2427ed0 Add BuildRequires gcc 2018-02-21 15:01:45 +01:00
Fedora Release Engineering
cfd239e0ba - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 19:34:11 +00:00
Fedora Release Engineering
5f91052047 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-03 00:09:51 +00:00
Fedora Release Engineering
70780e6b53 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-26 14:55:05 +00:00
Fedora Release Engineering
662a2c6744 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-10 17:35:52 +00:00
Vitezslav Crhonek
0bbc1fa214 Update to kbd-2.0.4 2017-01-11 14:03:59 +01:00
Vitezslav Crhonek
16c2dc7062 Fix FTBFS 2016-10-11 13:37:33 +02:00
Dennis Gilmore
731f211dcb - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-04 01:39:03 +00:00
Vitezslav Crhonek
d6e2ea3367 Add compose rules to generated cz.map 2015-08-06 15:39:35 +02:00
Vitezslav Crhonek
f6d95db93a Update to kbd-2.0.3 2015-07-15 14:12:17 +02:00
Dennis Gilmore
5de5185191 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-17 12:49:53 +00:00
Till Maas
7bb6f3b95d Rebuilt for Fedora 23 Change
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
2015-02-21 22:16:39 +01:00
Vitezslav Crhonek
86a170cee7 Rename and keep Finnish xkb converted layout 2014-10-06 15:35:32 +02:00
8616326374 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild 2014-08-16 22:53:53 +00:00
Vitezslav Crhonek
415fc12aa4 Fix unicode_start hardcodes font 2014-08-12 16:00:15 +02:00
Vitezslav Crhonek
a29318242a Remove Finnish xkb converted layout 2014-07-16 15:05:35 +02:00
Vitezslav Crhonek
5f3f815172 Update to kbd-2.0. 2014-07-08 12:09:17 +02:00
Dennis Gilmore
fbbf689628 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild 2014-06-07 20:36:50 -05:00
Vitezslav Crhonek
34ffed9b28 Add man page for kbdinfo, link open man page to openvt man page 2014-02-17 15:58:28 +01:00
Vitezslav Crhonek
b1baa32b67 Add missing patch for loadkeys search path 2013-11-27 13:17:26 +01:00
Vitezslav Crhonek
0ca79db4ab Add xkb and legacy keymaps subdirs to loadkyes search path, remove symlinks, Don't convert layouts that can't input ASCII, Fix vlock doesn't perform PAM account management or credential reinitialization 2013-11-26 15:57:54 +01:00
Vitezslav Crhonek
f5e5612b4f Add PAM config for vlock 2013-11-06 13:05:29 +01:00
Vitezslav Crhonek
e25fcf3a46 Fix URL, Remove source files already included in upstream tarball 2013-11-04 15:00:05 +01:00
Vitezslav Crhonek
44580b81dd Update to kbd-2.0.1 2013-11-04 13:04:03 +01:00
13 changed files with 665 additions and 252 deletions

12
.gitignore vendored
View file

@ -1,4 +1,3 @@
kbd-1.12.tar.bz2
kbd-latsun-fonts.tar.bz2
sun12x22-fixed.psfu
kbd-sun12x22-fixed.tar.bz2
@ -7,13 +6,8 @@ ro.tar.bz2
kbd-latarcyrheb-16-fixed.tar.bz2
ro_maps.tar.bz2
terminus.tar.bz2
kbd-1.13wip.tar.gz
kbd-1.15.tar.gz
/kbd-1.15.2.tar.bz2
/kbd-1.15.2.tar.bz2.sign
/fr-dvorak.tar.bz2
/kbd-1.15.3.tar.bz2
/kbd-1.15.3.tar.bz2.sign
/kbd-latarcyrheb-32.tar.bz2
/kbd-1.15.3.tar.gz
/kbd-1.15.5.tar.gz
/kbdinfo.1
/kbd-2.9.0.tar.xz
/kbd-2.10.0.tar.xz

108
cz-map.patch Normal file
View file

@ -0,0 +1,108 @@
--- cz.map.new 2023-02-21 11:13:02.527658350 +0100
+++ cz.map.old 2023-02-21 11:14:28.586714959 +0100
@@ -1,17 +1,17 @@
keymaps 0-127
keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
keycode 2 = U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam
-keycode 3 = +U+011b U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul
+keycode 3 = +U+011b U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul
keycode 4 = +U+0161 U+0033 U+0023 dead_circumflex +U+0161 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0161 U+0033 U+0023 dead_circumflex +U+0161 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0161 U+0033 U+0023 dead_circumflex +U+0161 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0161 U+0033 U+0023 dead_circumflex +U+0161 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0160 U+0033 U+0023 dead_circumflex +U+0160 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0160 U+0033 U+0023 dead_circumflex +U+0160 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0160 U+0033 U+0023 dead_circumflex +U+0160 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0160 U+0033 U+0023 dead_circumflex +U+0160 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign
-keycode 5 = +U+010d U+0034 U+0024 dead_kbreve +U+010d U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_kbreve +U+010d U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_kbreve +U+010d U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_kbreve +U+010d U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_kbreve +U+010c U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_kbreve +U+010c U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_kbreve +U+010c U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_kbreve +U+010c U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar
-keycode 6 = +U+0159 U+0035 U+0025 dead_abovering +U+0159 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 dead_abovering +U+0159 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 dead_abovering +U+0159 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 dead_abovering +U+0159 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 dead_abovering +U+0158 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 dead_abovering +U+0158 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 dead_abovering +U+0158 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 dead_abovering +U+0158 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent
-keycode 7 = +U+017e U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum
+keycode 5 = +U+010d U+0034 U+0024 dead_breve +U+010d U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_breve +U+010d U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_breve +U+010d U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_breve +U+010d U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_breve +U+010c U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_breve +U+010c U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_breve +U+010c U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_breve +U+010c U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar
+keycode 6 = +U+0159 U+0035 U+0025 U+00b0 +U+0159 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 U+00b0 +U+0159 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 U+00b0 +U+0159 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 U+00b0 +U+0159 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 U+00b0 +U+0158 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 U+00b0 +U+0158 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 U+00b0 +U+0158 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 U+00b0 +U+0158 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent
+keycode 7 = +U+017e U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum
keycode 8 = +U+00fd U+0037 U+0026 dead_grave +U+00fd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00fd U+0037 U+0026 dead_grave +U+00fd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00fd U+0037 U+0026 dead_grave +U+00fd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00fd U+0037 U+0026 dead_grave +U+00fd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00dd U+0037 U+0026 dead_grave +U+00dd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00dd U+0037 U+0026 dead_grave +U+00dd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00dd U+0037 U+0026 dead_grave +U+00dd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00dd U+0037 U+0026 dead_grave +U+00dd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand
-keycode 9 = +U+00e1 U+0038 U+002a dead_abovedot +U+00e1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00e1 U+0038 U+002a dead_abovedot +U+00e1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00e1 U+0038 U+002a dead_abovedot +U+00e1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00e1 U+0038 U+002a dead_abovedot +U+00e1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00c1 U+0038 U+002a dead_abovedot +U+00c1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00c1 U+0038 U+002a dead_abovedot +U+00c1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00c1 U+0038 U+002a dead_abovedot +U+00c1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00c1 U+0038 U+002a dead_abovedot +U+00c1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk
+keycode 9 = +U+00e1 U+0038 U+002a U+002e +U+00e1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00e1 U+0038 U+002a U+002e +U+00e1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00e1 U+0038 U+002a U+002e +U+00e1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00e1 U+0038 U+002a U+002e +U+00e1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00c1 U+0038 U+002a U+002e +U+00c1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00c1 U+0038 U+002a U+002e +U+00c1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00c1 U+0038 U+002a U+002e +U+00c1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00c1 U+0038 U+002a U+002e +U+00c1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose
keycode 10 = +U+00ed U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00ed U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00ed U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00ed U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00cd U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00cd U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00cd U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00cd U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape
-keycode 11 = +U+00e9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright
+keycode 11 = +U+00e9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright
keycode 12 = U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash
-keycode 13 = dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla
+keycode 13 = dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore
keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
keycode 15 = Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
keycode 16 = +U+0071 +U+0051 U+005c +U+03a9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0071 +U+0051 U+005c +U+03a9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0071 +U+0051 U+005c +U+03a9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0071 +U+0051 U+005c +U+03a9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0051 +U+0071 U+005c +U+03c9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0051 +U+0071 U+005c +U+03c9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0051 +U+0071 U+005c +U+03c9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0051 +U+0071 U+005c +U+03c9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash
@@ -34,16 +34,16 @@
keycode 33 = +U+0066 +U+0046 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0066 +U+0046 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0066 +U+0046 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0066 +U+0046 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0046 +U+0066 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0046 +U+0066 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0046 +U+0066 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0046 +U+0066 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape
keycode 34 = +U+0067 +U+0047 U+005d +U+014a Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0067 +U+0047 U+005d +U+014a Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0067 +U+0047 U+005d +U+014a Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0067 +U+0047 U+005d +U+014a Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0047 +U+0067 U+005d +U+014b Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0047 +U+0067 U+005d +U+014b Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0047 +U+0067 U+005d +U+014b Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0047 +U+0067 U+005d +U+014b Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright
keycode 35 = +U+0068 +U+0048 U+0060 +U+0126 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0068 +U+0048 U+0060 +U+0126 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0068 +U+0048 U+0060 +U+0126 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0068 +U+0048 U+0060 +U+0126 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0048 +U+0068 U+0060 +U+0127 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0048 +U+0068 U+0060 +U+0127 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0048 +U+0068 U+0060 +U+0127 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0048 +U+0068 U+0060 +U+0127 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul
-keycode 36 = +U+006a +U+004a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed
+keycode 36 = +U+006a +U+004a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed
keycode 37 = +U+006b +U+004b +U+0142 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0142 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0142 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0142 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0141 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0141 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0141 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0141 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k
keycode 38 = +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l
-keycode 39 = +U+016f U+0022 U+0024 dead_kdoubleacute +U+016f U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_kdoubleacute +U+016f U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_kdoubleacute +U+016f U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_kdoubleacute +U+016f U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_kdoubleacute +U+016e U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_kdoubleacute +U+016e U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_kdoubleacute +U+016e U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_kdoubleacute +U+016e U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar
+keycode 39 = +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar
keycode 40 = U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+0053 U+00a7 U+0021 U+0027 +U+0053 Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+0053 U+00a7 U+0021 U+0027 +U+0053 Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+0053 U+00a7 U+0021 U+0027 +U+0053 Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+0053 U+00a7 U+0021 U+0027 +U+0053 Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe
-keycode 41 = U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum
+keycode 41 = U+003b dead_grave U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum
keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift
keycode 43 = dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash
-keycode 44 = +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y
-keycode 45 = +U+0078 +U+0058 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x
+keycode 44 = +U+0079 +U+0059 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y
+keycode 45 = +U+0078 +U+0058 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x
keycode 46 = +U+0063 +U+0043 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c
keycode 47 = +U+0076 +U+0056 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0076 +U+0056 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0076 +U+0056 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0076 +U+0056 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0056 +U+0076 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0056 +U+0076 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0056 +U+0076 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0056 +U+0076 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul
keycode 48 = +U+0062 +U+0042 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0062 +U+0042 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0062 +U+0042 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0062 +U+0042 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0042 +U+0062 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0042 +U+0062 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0042 +U+0062 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0042 +U+0062 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape
@@ -51,7 +51,7 @@
keycode 50 = +U+006d +U+004d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+006d +U+004d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+006d +U+004d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+006d +U+004d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+004d +U+006d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+004d +U+006d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+004d +U+006d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+004d +U+006d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum
keycode 51 = U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete
keycode 52 = U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose
-keycode 53 = U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore
+keycode 53 = U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose
keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift
keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply
keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt
@@ -108,3 +108,49 @@
keycode 127 = VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period
strings as usual
+# dead_grave
+compose '`' 'u' to U+016F
+compose '`' 'U' to U+016E
+compose '`' 'z' to U+00B0
+compose '`' 'Z' to U+00B0
+# dead_acute
+compose '\'' 'a' to U+00E1
+compose '\'' 'A' to U+00C1
+compose '\'' 'e' to U+00E9
+compose '\'' 'E' to U+00C9
+compose '\'' 'i' to U+00ED
+compose '\'' 'I' to U+00CD
+compose '\'' 'o' to U+00F3
+compose '\'' 'O' to U+00D3
+compose '\'' 'u' to U+00FA
+compose '\'' 'U' to U+00DA
+compose '\'' 'y' to U+00FD
+compose '\'' 'Y' to U+00DD
+# dead_caron
+compose '^' 'u' to U+016F
+compose '^' 'U' to U+016E
+compose '^' 'c' to U+010D
+compose '^' 'C' to U+010C
+compose '^' 'd' to U+010F
+compose '^' 'D' to U+010E
+compose '^' 'e' to U+011B
+compose '^' 'E' to U+011A
+compose '^' 'n' to U+0148
+compose '^' 'N' to U+0147
+compose '^' 'r' to U+0159
+compose '^' 'R' to U+0158
+compose '^' 's' to U+0161
+compose '^' 'S' to U+0160
+compose '^' 't' to U+0165
+compose '^' 'T' to U+0164
+compose '^' 'z' to U+017E
+compose '^' 'Z' to U+017D
+# dead_diaeresis
+compose '"' 'a' to U+00E4
+compose '"' 'A' to U+00C4
+compose '"' 'e' to U+00EB
+compose '"' 'E' to U+00CB
+compose '"' 'o' to U+00F6
+compose '"' 'O' to U+00D6
+compose '"' 'u' to U+00FC
+compose '"' 'U' to U+00DC

View file

@ -1,11 +1,10 @@
diff -up kbd-1.15.2/man/man1/showkey.1.orig kbd-1.15.2/man/man1/showkey.1
--- kbd-1.15.2/man/man1/showkey.1.orig 2009-10-09 17:26:13.000000000 +0200
+++ kbd-1.15.2/man/man1/showkey.1 2011-01-05 12:45:25.726030798 +0100
@@ -80,6 +80,19 @@ corresponds to what the keyboard hardwar
diff -up kbd-2.7-rc1/docs/man/man1/showkey.1.orig kbd-2.7-rc1/docs/man/man1/showkey.1
--- kbd-2.7-rc1/docs/man/man1/showkey.1.orig 2024-10-25 10:52:17.000000000 +0200
+++ kbd-2.7-rc1/docs/man/man1/showkey.1 2024-10-29 11:59:53.540044621 +0100
@@ -84,6 +84,17 @@ corresponds to what the keyboard hardwar
to know the scan codes sent by various keys it is better to boot a
2.4 kernel. Since 2.6.9 there also is the boot option atkbd.softraw=0
that tells the 2.6 kernel to return the actual scan codes.
+
+.SH NOTES
+The raw scan codes are available only on AT and PS/2 keyboards,
+and even then they are disabled unless the
@ -17,17 +16,16 @@ diff -up kbd-1.15.2/man/man1/showkey.1.orig kbd-1.15.2/man/man1/showkey.1
+can affect the output of
+.B showkey
+in scan code dump mode.
+
.SH AUTHORS
Andries Brouwer <aeb@cwi.nl>
.SH "SEE ALSO"
.BR loadkeys (1),
.BR dumpkeys (1),
diff -up kbd-1.15.2/man/man8/setkeycodes.8.orig kbd-1.15.2/man/man8/setkeycodes.8
--- kbd-1.15.2/man/man8/setkeycodes.8.orig 2009-10-09 17:26:13.000000000 +0200
+++ kbd-1.15.2/man/man8/setkeycodes.8 2011-01-05 12:47:46.894739942 +0100
@@ -38,6 +38,10 @@ to showkey(1), the command
.RE
will assign the keycode 112 to it, and then loadkeys(1) can be used
to define the function of this key.
diff -up kbd-2.7-rc1/docs/man/man8/setkeycodes.8.orig kbd-2.7-rc1/docs/man/man8/setkeycodes.8
--- kbd-2.7-rc1/docs/man/man8/setkeycodes.8.orig 2024-10-24 19:15:13.000000000 +0200
+++ kbd-2.7-rc1/docs/man/man8/setkeycodes.8 2024-10-29 12:01:28.367235566 +0100
@@ -43,6 +43,10 @@ the command
will assign the keycode 112 to it, and then
.BR loadkeys (1)
can be used to define the function of this key.
+
+USB keyboards have standardized keycodes and
+.B setkeycodes
@ -35,7 +33,7 @@ diff -up kbd-1.15.2/man/man8/setkeycodes.8.orig kbd-1.15.2/man/man8/setkeycodes.
.LP
Some older kernels might hardwire a low scancode range to the
equivalent keycodes; setkeycodes will fail when you try to remap
@@ -56,6 +60,14 @@ None.
@@ -69,6 +73,14 @@ print this usage message.
.SH BUGS
The keycodes of X have nothing to do with those of Linux.
Unusual keys can be made visible under Linux, but not under X.
@ -48,5 +46,5 @@ diff -up kbd-1.15.2/man/man8/setkeycodes.8.orig kbd-1.15.2/man/man8/setkeycodes.
+cannot change the mapping of other devices than the "first" one.
+
.SH "SEE ALSO"
.I "dumpkeys (1), loadkeys (1), showkey (1), getkeycodes (8)"
.BR dumpkeys (1),
.BR loadkeys (1),

View file

@ -1,7 +1,7 @@
diff -up kbd-1.15.2/man/man8/kbdrate.8.orig kbd-1.15.2/man/man8/kbdrate.8
--- kbd-1.15.2/man/man8/kbdrate.8.orig 2009-06-07 21:48:42.000000000 +0200
+++ kbd-1.15.2/man/man8/kbdrate.8 2011-01-05 12:58:34.579706016 +0100
@@ -22,7 +22,7 @@ Using
diff -up kbd-2.7-rc1/docs/man/man8/kbdrate.8.orig kbd-2.7-rc1/docs/man/man8/kbdrate.8
--- kbd-2.7-rc1/docs/man/man8/kbdrate.8.orig 2023-08-09 13:57:23.000000000 +0200
+++ kbd-2.7-rc1/docs/man/man8/kbdrate.8 2024-10-29 12:03:53.354503358 +0100
@@ -19,7 +19,7 @@ Using
without any options will reset the repeat rate to 10.9 characters per second (cps)
and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems.
These are the IBM defaults. On SPARC-based systems it will reset the repeat rate
@ -10,19 +10,13 @@ diff -up kbd-1.15.2/man/man8/kbdrate.8.orig kbd-1.15.2/man/man8/kbdrate.8
.SH OPTIONS
.TP
@@ -69,3 +69,5 @@ When these ioctls fail an ioport interfa
.I /etc/rc.local
.br
.I /dev/port
+.br
+.I /dev/kbd
diff -up kbd-1.15.2/src/kbdrate.c.orig kbd-1.15.2/src/kbdrate.c
--- kbd-1.15.2/src/kbdrate.c.orig 2011-01-05 12:53:45.186575833 +0100
+++ kbd-1.15.2/src/kbdrate.c 2011-01-05 12:57:37.746753646 +0100
@@ -108,9 +108,12 @@ static int valid_delays[] = { 250, 500,
diff -up kbd-2.7-rc1/src/kbdrate.c.orig kbd-2.7-rc1/src/kbdrate.c
--- kbd-2.7-rc1/src/kbdrate.c.orig 2024-10-19 00:12:27.000000000 +0200
+++ kbd-2.7-rc1/src/kbdrate.c 2024-10-29 12:08:24.289921559 +0100
@@ -114,9 +114,12 @@ static int print_only = 0;
static int
KDKBDREP_ioctl_ok(double rate, int delay, int silent) {
KDKBDREP_ioctl_ok(double rate, int delay, int silent)
{
+#if defined(KDKBDREP) && !defined(__sparc__)
/*
* This ioctl is defined in <linux/kd.h> but is not
@ -32,40 +26,37 @@ diff -up kbd-1.15.2/src/kbdrate.c.orig kbd-1.15.2/src/kbdrate.c
* Since 2.4.9 also on i386.
*/
struct my_kbd_repeat kbdrep_s;
@@ -176,6 +179,9 @@ KDKBDREP_ioctl_ok(double rate, int delay
rate, kbdrep_s.delay );
@@ -181,6 +184,9 @@ KDKBDREP_ioctl_ok(double rate, int delay
}
return 1; /* success! */
return 1; /* success! */
+#else /* no KDKBDREP or __sparc__ */
+ return 0;
+#endif /* KDKBDREP */
}
#ifndef KIOCSRATE
@@ -226,7 +232,7 @@ sigalrmhandler( attr_unused int sig ) {
int
main( int argc, char **argv ) {
#ifdef __sparc__
- double rate = 5.0; /* Default rate */
+ double rate = 20.0; /* Default rate */
int delay = 200; /* Default delay */
#else
double rate = 10.9; /* Default rate */
@@ -277,7 +283,9 @@ main( int argc, char **argv ) {
#ifdef KIOCSRATE
@@ -251,6 +257,9 @@ ioport_set(double rate, int delay, int s
/* https://wiki.osdev.org/PS/2_Keyboard */
/* The ioport way */
+ /* The ioport way - will crash on sparc */
+
+#ifndef __sparc__
for (i = 0; i < RATE_COUNT; i++)
for (i = 0; i < (int) RATE_COUNT; i++)
if (rate * 10 >= valid_rates[i]) {
value &= 0x60;
@@ -340,5 +348,7 @@ main( int argc, char **argv ) {
valid_rates[value & 0x1f] / 10.0,
valid_delays[ (value & 0x60) >> 5 ] );
@@ -304,11 +313,12 @@ ioport_set(double rate, int delay, int s
valid_rates[value & 0x1f] / 10.0,
valid_delays[(value & 0x60) >> 5]);
+#endif
+
return 0;
return 1;
}
#ifdef __sparc__
-static double rate = 5.0; /* Default rate */
+static double rate = 20.0; /* Default rate */
static int delay = 200; /* Default delay */
#else
static double rate = 10.9; /* Default rate */

View file

@ -1,18 +0,0 @@
diff -up kbd-1.15.3/man/man1/dumpkeys.1.in.orig kbd-1.15.3/man/man1/dumpkeys.1.in
--- kbd-1.15.3/man/man1/dumpkeys.1.in.orig 2011-08-23 13:06:16.905892768 +0200
+++ kbd-1.15.3/man/man1/dumpkeys.1.in 2011-08-23 13:15:18.264853435 +0200
@@ -156,6 +156,14 @@ output of
.BR dumpkeys .
.LP
.TP
+.B \-1 \-\-separate-lines
+This forces
+.B dumpkeys
+to write one line per (modifier,keycode) pair. It prefixes the word
+.I plain
+for plain keycodes.
+.LP
+.TP
.B \-\-funcs-only
When this option is given,
.B dumpkeys

View file

@ -1,38 +0,0 @@
diff -up kbd-1.15.5/src/loadkeys.analyze.l.orig kbd-1.15.5/src/loadkeys.analyze.l
--- kbd-1.15.5/src/loadkeys.analyze.l.orig 2013-01-21 11:22:51.374582275 +0100
+++ kbd-1.15.5/src/loadkeys.analyze.l 2013-01-21 11:25:29.278331267 +0100
@@ -307,8 +307,10 @@ To to|To|TO
char *s = xstrndup(yytext+1, strlen(yytext)-2);
/* use static pathname to store *s ? */
open_include(s);
- yy_pop_state();
- state_ptr--;
+ while (state_ptr > 0) {
+ yy_pop_state();
+ state_ptr--;
+ }
}
<INCLSTR>[^"]|\"\"|\"[^"\n]*{Eol} {
yyerror(_("expected filename between quotes"));
@@ -323,7 +325,7 @@ To to|To|TO
}
{Eol} {
line_nr++;
- if (state_ptr > 0) {
+ while (state_ptr > 0) {
yy_pop_state();
state_ptr--;
}
@@ -428,8 +430,10 @@ To to|To|TO
}
<STR>\" {
*p = '\0';
- yy_pop_state();
- state_ptr--;
+ while (state_ptr > 0) {
+ yy_pop_state();
+ state_ptr--;
+ }
return(STRLITERAL);
}
. {

View file

@ -0,0 +1,24 @@
diff -up kbd-2.7-rc1/configure.ac.orig kbd-2.7-rc1/configure.ac
--- kbd-2.7-rc1/configure.ac.orig 2024-10-28 16:18:31.000000000 +0100
+++ kbd-2.7-rc1/configure.ac 2024-10-29 12:15:12.915552224 +0100
@@ -156,6 +156,8 @@ AC_DEFUN([KBD_SUBST_DEFINE], [
KBD_SUBST_DEFINE([OLDKEYMAPDIR], ["keytables"], [Subdirectory of DATADIR])
KBD_SUBST_DEFINE([KEYMAPDIR], ["keymaps"], [Subdirectory of DATADIR])
+KBD_SUBST_DEFINE([XKBKEYMAPDIR], ["keymaps/xkb"], [Subdirectory of DATADIR])
+KBD_SUBST_DEFINE([LEGACYKEYMAPDIR], ["keymaps/legacy"], [Subdirectory of DATADIR])
KBD_SUBST_DEFINE([UNIMAPDIR], ["unimaps"], [Subdirectory of DATADIR])
KBD_SUBST_DEFINE([TRANSDIR], ["consoletrans"], [Subdirectory of DATADIR])
KBD_SUBST_DEFINE([VIDEOMODEDIR], ["videomodes"], [Subdirectory of DATADIR])
diff -up kbd-2.7-rc1/src/loadkeys.c.orig kbd-2.7-rc1/src/loadkeys.c
--- kbd-2.7-rc1/src/loadkeys.c.orig 2024-10-19 00:12:27.000000000 +0200
+++ kbd-2.7-rc1/src/loadkeys.c 2024-10-29 12:17:24.519755349 +0100
@@ -26,6 +26,8 @@
static const char *const dirpath1[] = {
DATADIR "/" KEYMAPDIR "/**",
+ DATADIR "/" XKBKEYMAPDIR "/",
+ DATADIR "/" LEGACYKEYMAPDIR "/**",
KERNDIR "/",
NULL
};

View file

@ -0,0 +1,15 @@
diff -up kbd-2.0.2/src/unicode_start.orig kbd-2.0.2/src/unicode_start
--- kbd-2.0.2/src/unicode_start.orig 2014-08-12 14:47:53.019028849 +0200
+++ kbd-2.0.2/src/unicode_start 2014-08-12 14:54:42.631427602 +0200
@@ -72,7 +72,10 @@ stty iutf8
# have a Unicode map attached, or explicitly specified, e.g.,
# by giving `def.uni' as a second argument.
-DEFAULT_UNICODE_FONT=latarcyrheb-sun16
+# Source /etc/vconsole.conf to get default font
+. /etc/vconsole.conf
+
+DEFAULT_UNICODE_FONT=$FONT
# Also drdos8x16 is a good candidate.
case "$#" in

View file

@ -0,0 +1,84 @@
diff -up kbd-2.7-rc1/src/vlock/auth.c.orig kbd-2.7-rc1/src/vlock/auth.c
--- kbd-2.7-rc1/src/vlock/auth.c.orig 2024-10-09 15:14:58.000000000 +0200
+++ kbd-2.7-rc1/src/vlock/auth.c 2024-10-29 12:20:40.451059945 +0100
@@ -91,6 +91,12 @@ int get_password(pam_handle_t *pamh, con
}
fflush(stdout);
+ if (prompt) {
+ printf(_("Press ENTER to continue.\n"));
+ fflush(stdout);
+ (void )getchar();
+ }
+
/*
* No need to request a delay on failure via pam_fail_delay(3):
* authentication module should do it for us.
diff -up kbd-2.7-rc1/src/vlock/parse.c.orig kbd-2.7-rc1/src/vlock/parse.c
--- kbd-2.7-rc1/src/vlock/parse.c.orig 2024-10-19 00:12:27.000000000 +0200
+++ kbd-2.7-rc1/src/vlock/parse.c 2024-10-29 12:23:51.730369348 +0100
@@ -39,6 +39,13 @@
*/
int o_lock_all;
+/*
+ * This determines whether there will be prompt before invoking pam
+ * auth stack.
+ * 0 means no, 1 means yes.
+ */
+int prompt;
+
const char *
locked_name(void)
{
@@ -64,6 +71,8 @@ show_help(void)
" switch to other virtual consoles.\n"
"-a or --all: lock all virtual consoles by preventing other users\n"
" from switching virtual consoles.\n"
+ "-p or --prompt: wait for keypress before invoking pam auth stack,\n"
+ " useful for unlocking with smartcard setup.\n"
"-v or --version: Print the version number of vlock and exit.\n"
"-h or --help: Print this help message and exit.\n"),
program_invocation_short_name, program_invocation_short_name);
@@ -75,13 +84,14 @@ void parse(int ac, char *const av[])
static struct option long_options[] = {
{ "current", 0, NULL, 'c' },
{ "all", 0, NULL, 'a' },
+ { "prompt", 0, NULL, 'p' },
{ "version", 0, NULL, 'v' },
{ "help", 0, NULL, 'h' },
{ NULL, 0, NULL, 0 },
};
int c;
- while ((c = getopt_long(ac, av, "acvh", long_options, NULL)) != -1) {
+ while ((c = getopt_long(ac, av, "acpvh", long_options, NULL)) != -1) {
switch (c) {
case 'c':
o_lock_all = 0;
@@ -89,6 +99,9 @@ void parse(int ac, char *const av[])
case 'a':
o_lock_all = 1;
break;
+ case 'p':
+ prompt = 1;
+ break;
case 'v':
fprintf(stderr, "%s\n", VERSION);
exit(EXIT_SUCCESS);
diff -up kbd-2.7-rc1/src/vlock/vlock.h.orig kbd-2.7-rc1/src/vlock/vlock.h
--- kbd-2.7-rc1/src/vlock/vlock.h.orig 2024-10-08 12:35:16.000000000 +0200
+++ kbd-2.7-rc1/src/vlock/vlock.h 2024-10-29 12:24:21.315417215 +0100
@@ -40,5 +40,12 @@ const char *locked_name(void);
*/
extern int o_lock_all;
+/*
+ * This determines whether there will be prompt before invoking pam
+ * auth stack.
+ * 0 means no, 1 means yes.
+ */
+extern int prompt;
+
/* Copy of the VT mode when the program was started. */
extern int is_vt;

View file

@ -0,0 +1,11 @@
diff -up kbd-2.6.1/src/libkfont/psffontop.c.orig kbd-2.6.1/src/libkfont/psffontop.c
--- kbd-2.6.1/src/libkfont/psffontop.c.orig 2023-06-23 10:29:44.000000000 +0200
+++ kbd-2.6.1/src/libkfont/psffontop.c 2023-06-30 14:06:06.363944776 +0200
@@ -236,6 +236,7 @@ kfont_read_psffont(struct kfont_context
if (psfhdr->mode > PSF1_MAXMODE) {
KFONT_ERR(ctx, _("Unsupported psf file mode (%d)"), psfhdr->mode);
+ free(psfhdr);
return -EX_DATAERR;
}
fontlen = ((psfhdr->mode & PSF1_MODE512) ? 512 : 256);

494
kbd.spec
View file

@ -1,39 +1,49 @@
Name: kbd
Version: 1.15.5
Release: 9%{?dist}
Summary: Tools for configuring the console (keyboard, virtual terminals, etc.)
# {_exec_prefix}/lib/kbd is correct even on x86_64.
# It is traditionally used for kdb data (console fonts, keymaps, ...).
# It is not used for any shared objects/executables.
%global kbd_datadir %{_exec_prefix}/lib/kbd
Group: System Environment/Base
License: GPLv2+
URL: http://ftp.altlinux.org/pub/people/legion/kbd
Source0: ftp://ftp.altlinux.org/pub/people/legion/kbd/kbd-%{version}.tar.gz
Source2: kbd-latsun-fonts.tar.bz2
Source3: kbd-latarcyrheb-16-fixed.tar.bz2
Source4: fr-dvorak.tar.bz2
Source5: kbd-latarcyrheb-32.tar.bz2
Source6: xml2lst.pl
Name: kbd
Version: 2.10.0
Release: 2%{?dist}
Summary: Tools for configuring the console (keyboard, virtual terminals, etc.)
License: GPL-2.0-or-later
URL: http://www.kbd-project.org/
Source0: ftp://ftp.altlinux.org/pub/people/legion/kbd/kbd-%{version}.tar.xz
Source1: kbd-latsun-fonts.tar.bz2
Source2: kbd-latarcyrheb-32.tar.bz2
Source3: xml2lst.pl
Source4: vlock.pamd
Source5: kbdinfo.1
Source6: cz-map.patch
# Patch0: puts additional information into man pages
Patch0: kbd-1.15-keycodes-man.patch
# Patch1: sparc modifications
Patch1: kbd-1.15-sparc.patch
# Patch2: adds default unicode font to unicode_start script
Patch2: kbd-1.15-unicode_start.patch
# Patch3: add missing dumpkeys option to man page
Patch3: kbd-1.15.3-dumpkeys-man.patch
# Patch4: fixes loadkeys regression (already upstream)
Patch4: kbd-1.15.5-loadkeys-regression.patch
# Patch5: fixes decimal separator in Swiss German keyboard layout, bz 882529
Patch5: kbd-1.15.5-sg-decimal-separator.patch
# Patch3: fixes decimal separator in Swiss German keyboard layout, bz 882529
Patch3: kbd-1.15.5-sg-decimal-separator.patch
# Patch4: adds xkb and legacy keymaps subdirs to loadkyes search path, bz 1028207
Patch4: kbd-1.15.5-loadkeys-search-path.patch
# Patch5: don't hardcode font used in unicode_start, take it from vconsole.conf,
# bz 1101007
Patch5: kbd-2.0.2-unicode-start-font.patch
# Patch6: fixes issues found by static analysis
Patch6: kbd-2.4.0-covscan-fixes.patch
# Patch7: adds vlock option to issue prompt before invokation of pam stack
Patch7: kbd-2.0.4-vlock-add-prompt-option.patch
BuildRequires: bison, flex, gettext, pam-devel
BuildRequires: console-setup, xkeyboard-config
Requires: initscripts >= 5.86-1
BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake, make
BuildRequires: console-setup, xkeyboard-config, libxkbcommon-devel
Requires: %{name}-misc = %{version}-%{release}
# Temporarily require -legacy
Requires: %{name}-legacy = %{version}-%{release}
# Be sure that system is after UsrMove
Conflicts: filesystem < 3
Provides: vlock = %{version}
Conflicts: vlock <= 1.3
Obsoletes: vlock
Obsoletes: vlock < 1.3-34
%description
The %{name} package contains tools for managing a Linux
@ -57,19 +67,15 @@ The %{name}-legacy package contains original keymaps for kbd package.
Please note that %{name}-legacy is not helpful without kbd.
%prep
%setup -q -a 2 -a 3 -a 4 -a 5
%setup -q -a 1 -a 2
cp -fp %{SOURCE3} .
cp -fp %{SOURCE6} .
%patch0 -p1 -b .keycodes-man
%patch1 -p1 -b .sparc
%patch2 -p1 -b .unicode_start
%patch3 -p1 -b .dumpkeys-man
%patch4 -p1 -b .loadkeys-regression
%patch5 -p1 -b .sg-decimal-separator
%autopatch -p1
aclocal
autoconf
# 7-bit maps are obsolete; so are non-euro maps
pushd data/keymaps/i386
mv qwerty/fi.map qwerty/fi-old.map
cp qwerty/fi-latin9.map qwerty/fi.map
cp qwerty/pt-latin9.map qwerty/pt.map
cp qwerty/sv-latin1.map qwerty/se-latin1.map
@ -79,7 +85,6 @@ cp azerty/fr-latin9.map azerty/fr.map
cp azerty/fr-latin9.map azerty/fr-latin0.map # legacy alias
# Rename conflicting keymaps
mv dvorak/no.map dvorak/no-dvorak.map
mv fgGIod/trf.map fgGIod/trf-fgGIod.map
mv olpc/es.map olpc/es-olpc.map
mv olpc/pt.map olpc/pt-olpc.map
@ -96,140 +101,377 @@ iconv -f iso-8859-1 -t utf-8 < "ChangeLog" > "ChangeLog_"
mv "ChangeLog_" "ChangeLog"
%build
%configure --prefix=%{_prefix} --datadir=/lib/kbd --mandir=%{_mandir} --localedir=%{_datadir}/locale --enable-nls
make %{?_smp_mflags}
%configure --prefix=%{_prefix} --datadir=%{kbd_datadir} \
--mandir=%{_mandir} --localedir=%{_datadir}/locale --enable-nls --enable-xkb
%make_build
%install
make install DESTDIR=$RPM_BUILD_ROOT
%make_install
# ro_win.map.gz is useless
rm -f $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/ro_win.map.gz
rm -f $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/ro_win.map.gz
# Create additional name for Serbian latin keyboard
ln -s sr-cy.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/sr-latin.map.gz
ln -s sr-cy.map.gz $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/sr-latin.map.gz
# The rhpl keyboard layout table is indexed by kbd layout names, so we need a
# Korean keyboard
ln -s us.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/ko.map.gz
ln -s us.map.gz $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/ko.map.gz
# Move binaries which we use before /usr is mounted from %{_bindir} to /bin.
mkdir -p $RPM_BUILD_ROOT/bin
for binary in setfont dumpkeys kbd_mode unicode_start unicode_stop loadkeys ; do
mv $RPM_BUILD_ROOT%{_bindir}/$binary $RPM_BUILD_ROOT/bin/
done
# https://bugzilla.redhat.com/show_bug.cgi?id=2015972
# xkb Arabic layout is 'ara', not 'fa', langtable tells us to use 'ara'
ln -s fa.map.gz $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/ara.map.gz
# Some microoptimization
sed -i -e 's,\<kbd_mode\>,/bin/kbd_mode,g;s,\<setfont\>,/bin/setfont,g' \
$RPM_BUILD_ROOT/bin/unicode_start
sed -i -e 's,\<kbd_mode\>,%{_bindir}/kbd_mode,g;s,\<setfont\>,%{_bindir}/setfont,g' \
$RPM_BUILD_ROOT%{_bindir}/unicode_start
# Link open to openvt
ln -s openvt $RPM_BUILD_ROOT%{_bindir}/open
# install kbdinfo manpage
gzip -c %SOURCE5 > $RPM_BUILD_ROOT/%{_mandir}/man1/kbdinfo.1.gz
# Move locale files to correct place
cp -r $RPM_BUILD_ROOT/lib/kbd/locale/ $RPM_BUILD_ROOT%{_datadir}/locale
rm -rf $RPM_BUILD_ROOT/lib/kbd/locale
# Install PAM configuration for vlock
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
install -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/vlock
# Move original keymaps to legacy directory
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/legacy
mv $RPM_BUILD_ROOT/lib/kbd/keymaps/{amiga,atari,i386,include,mac,ppc,sun} $RPM_BUILD_ROOT/lib/kbd/keymaps/legacy
mkdir -p $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/legacy
mv $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/{amiga,atari,i386,include,mac,ppc,sun} $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/legacy
# Convert X keyboard layouts to console keymaps
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb
mkdir -p $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb
perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst
while read line; do
XKBLAYOUT=`echo "$line" | cut -d " " -f 1`
echo "$XKBLAYOUT" >> layouts-list.lst
XKBVARIANT=`echo "$line" | cut -d " " -f 2`
ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz
ckbcomp -rules base "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz
done < layouts-variants.lst
# Convert X keyboard layouts (plain, no variant)
cat layouts-list.lst | sort -u >> layouts-list-uniq.lst
while read line; do
ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz
ckbcomp -rules base "$line" | gzip > $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/"$line".map.gz
done < layouts-list-uniq.lst
# Create symbolic links from the old keymap names to the matching(?) entries of the X11 keymaps
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/dvorak
ln -s /lib/kbd/keymaps/xkb/ch-de_nodeadkeys.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/sg.map.gz
ln -s /lib/kbd/keymaps/xkb/nl.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/nl.map.gz
ln -s /lib/kbd/keymaps/xkb/mk.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/mk-utf.map.gz
ln -s /lib/kbd/keymaps/xkb/tr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/trq.map.gz
ln -s /lib/kbd/keymaps/xkb/gb.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/uk.map.gz
ln -s /lib/kbd/keymaps/xkb/is.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/is-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/de.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/de.map.gz
ln -s /lib/kbd/keymaps/xkb/latam.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/la-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/us.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/us.map.gz
ln -s /lib/kbd/keymaps/xkb/kr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/ko.map.gz
ln -s /lib/kbd/keymaps/xkb/de.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/de-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/si.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/slovene.map.gz
ln -s /lib/kbd/keymaps/xkb/hu-qwerty.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/hu101.map.gz
ln -s /lib/kbd/keymaps/xkb/jp.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/jp106.map.gz
ln -s /lib/kbd/keymaps/xkb/hr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/croat.map.gz
ln -s /lib/kbd/keymaps/xkb/fi.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/fi-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/it.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/it2.map.gz
ln -s /lib/kbd/keymaps/xkb/hu.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/hu.map.gz
ln -s /lib/kbd/keymaps/xkb/rs-latin.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/sr-latin.map.gz
ln -s /lib/kbd/keymaps/xkb/fi.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/fi.map.gz
ln -s /lib/kbd/keymaps/xkb/ch-fr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/fr_CH.map.gz
ln -s /lib/kbd/keymaps/xkb/dk.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/dk-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/fr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty/fr.map.gz
ln -s /lib/kbd/keymaps/xkb/it.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/it.map.gz
ln -s /lib/kbd/keymaps/xkb/ua.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/ua-utf.map.gz
ln -s /lib/kbd/keymaps/xkb/fr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty/fr-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/ch-de_nodeadkeys.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/sg-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/be.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty/be-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/dk.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/dk.map.gz
ln -s /lib/kbd/keymaps/xkb/fr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty/fr-pc.map.gz
ln -s /lib/kbd/keymaps/xkb/bg-phonetic.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/bg_pho-utf8.map.gz
ln -s /lib/kbd/keymaps/xkb/it.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/it-ibm.map.gz
ln -s /lib/kbd/keymaps/xkb/cz.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/cz-us-qwertz.map.gz
ln -s /lib/kbd/keymaps/xkb/br.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/br-abnt2.map.gz
ln -s /lib/kbd/keymaps/xkb/ro.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/ro.map.gz
ln -s /lib/kbd/keymaps/xkb/us-intl.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/us-acentos.map.gz
ln -s /lib/kbd/keymaps/xkb/pt.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/pt-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/de-nodeadkeys.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/de-latin1-nodeadkeys.map.gz
ln -s /lib/kbd/keymaps/xkb/no.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/no.map.gz
ln -s /lib/kbd/keymaps/xkb/bg.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/bg_bds-utf8.map.gz
ln -s /lib/kbd/keymaps/xkb/us-dvorak.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/dvorak/dvorak.map.gz
ln -s /lib/kbd/keymaps/xkb/ru.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/ru.map.gz
ln -s /lib/kbd/keymaps/xkb/cz-qwerty.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/cz-lat2.map.gz
ln -s /lib/kbd/keymaps/xkb/pl.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/pl2.map.gz
ln -s /lib/kbd/keymaps/xkb/es.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/es.map.gz
ln -s /lib/kbd/keymaps/xkb/ee.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/et.map.gz
ln -s /lib/kbd/keymaps/xkb/sk.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/sk-qwerty.map.gz
ln -s /lib/kbd/keymaps/xkb/fr-latin9.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty/fr-latin9.map.gz
ln -s /lib/kbd/keymaps/xkb/ch-fr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/fr_CH-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/ca.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/cf.map.gz
ln -s /lib/kbd/keymaps/xkb/se.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/sv-latin1.map.gz
ln -s /lib/kbd/keymaps/xkb/rs.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/sr-cy.map.gz
ln -s /lib/kbd/keymaps/xkb/gr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/gr.map.gz
ln -s /lib/kbd/keymaps/xkb/by.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/by.map.gz
ln -s /lib/kbd/keymaps/xkb/il.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/il.map.gz
ln -s /lib/kbd/keymaps/xkb/kz.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/kazakh.map.gz
ln -s /lib/kbd/keymaps/xkb/lt.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/lt.map.gz
# defkeymap
ln -s /lib/kbd/keymaps/xkb/us.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/defkeymap.map.gz
# wipe converted layouts which cannot input ASCII (#1031848)
zgrep -L "U+0041" $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/* | xargs rm -f
# wipe the xkb-converted georgian layout, it is unusable, see:
# https://bugzilla.redhat.com/show_bug.cgi?id=2336875
# https://src.fedoraproject.org/rpms/kbd/pull-request/2#comment-239318
rm -f $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/ge.map.gz
# Fix converted cz layout - add compose rules, if exists
if [ -f "$RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map.gz" ]; then
gunzip $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map.gz
patch $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map < %{SOURCE6}
gzip $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map
fi
%find_lang %{name}
%files -f %{name}.lang
%doc ChangeLog AUTHORS README COPYING doc/kbd.FAQ*.html doc/font-formats/*.html doc/utf/utf* doc/dvorak/*
/bin/*
%license COPYING
%doc ChangeLog AUTHORS README docs/doc/font-formats/*.html docs/doc/dvorak/*
%{_bindir}/*
%{_mandir}/*/*
%config(noreplace) %{_sysconfdir}/pam.d/vlock
%files misc
/lib/kbd
%exclude /lib/kbd/keymaps/legacy
%{kbd_datadir}
%exclude %{kbd_datadir}/keymaps/legacy
%files legacy
/lib/kbd/keymaps/legacy
%{kbd_datadir}/keymaps/legacy
%changelog
* Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.10.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Wed Jun 10 2026 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.10.0-1
- Update to kbd-2.10.0
Resolves: #2481141
* Tue Mar 24 2026 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.9.0-3
- Fix setfont segmentation fault when argument for option is missing
Resolves: #2447892
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Mon Sep 22 2025 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.9.0-1
- Update to kbd-2.9.0
Resolves: #2393145
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jul 15 2025 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.8.0-2
- Fix kfont_load_font(): setfont killed by SIGSEGV
Resolves: #2370214
* Mon Jun 09 2025 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.8.0-1
- Update to kbd-2.8.0
Resolves: #2369419
* Mon Jan 27 2025 Adam Williamson <awilliam@redhat.com> - 2.7.1-3
- Add Georgian layout and font (from upstream PR #127)
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Jan 02 2025 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.7.1-1
- Update to kbd-2.7.1
Resolves: #2331264
* Tue Dec 17 2024 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.7-1
- Update to kbd-2.7
Resolves: #2331264
* Tue Sep 10 2024 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.4-5
- Add vlock option to issue prompt before invokation of pam stack
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Dec 15 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.4-1
- Update to kbd-2.6.4
Resolves: #2254010
* Wed Sep 20 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.3-1
- Update to kbd-2.6.3
Resolves: #2239620
* Thu Aug 24 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.2-1
- Update to kbd-2.6.2
Resolves: #2232126
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Mon Jul 03 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.1-1
- Update to kbd-2.6.1
Resolves: #2218174
* Tue Jun 13 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.0-1
- Update to kbd-2.6.0
Resolves: #2214279
* Fri May 26 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.5.1-6
- SPDX migration
* Tue Feb 21 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.5.1-5
- Update patch adding compose rules for converted cz layout
Resolves: #2171583
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.5.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Sep 21 2022 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.5.1-3
- Require kbd-legacy in main kbd package again
Resolves: #2127513
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jun 21 2022 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.5.1-1
- Update to kbd-2.5.1
Resolves: #2097840
* Wed Jun 08 2022 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.5.0-1
- Update to kbd-2.5.0
Resolves: #2092957
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Oct 21 2021 Adam Williamson <awilliam@redhat.com> - 2.4.0-8
- Symlink fa.map.gz to ara.map.gz so Arabic console layout works (#2015972)
- Drop one mapping from fa.map that causes it to fail to load
* Mon Sep 13 2021 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.4.0-7
- Use default Finnish xkb-converted layout
Resolves: #2001787
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu May 20 2021 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.4.0-5
- Fix setfont exit code
* Tue Apr 27 2021 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.4.0-4
- Remove one part of the static analysis fix that actually breaks the package
Resolves: #1953782
* Thu Apr 22 2021 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.4.0-3
- Fix issues detected by static analysis
- Fix layout->keymap conversion broken by change in xkeyboard-config
(patch by Peter Hutterer)
Related: #1950406
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Dec 16 2020 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.4.0-1
- Update to kbd-2.4.0
Resolves: #1908123
* Thu Oct 29 2020 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.0-4
- Don't require kbd-legacy in main kbd package anymore
Resolves: #1891811
* Wed Sep 23 2020 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.0-3
- Exclude test library instead of removing it to fix --nocheck builds
Resolves: #1881515
* Fri Aug 28 2020 Adam Williamson <awilliam@redhat.com> - 2.3.0-2
- Rebuild with grep #1872913 fix to correctly drop non-ASCII layouts
Resolves: #1872922
* Wed Jul 29 2020 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.0-1
- Make changes in converted layouts conditionally
- Use make macros, patch by Tom Stellard <tstellar@redhat.com>
(https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro)
- Update to kbd-2.3.0
Resolves: #1855867
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Mar 17 2020 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.0-3
- Use upstream test suite in %%check
* Thu Mar 05 2020 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.0-2
- Don't move binaries to /bin, shouldn't be needed after UsrMove
- Move kbd data (console fonts, keymaps, ...) to /usr
Resolves: #1809257
* Mon Feb 10 2020 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.0-1
- Update to kbd-2.2.0
Resolves: #1742036
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Nov 28 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.4-12
- Apply only tty non-breaking fixes from -10
* Tue Nov 13 2018 Adam Williamson <awilliam@redhat.com> - 2.0.4-11
- Drop fixes from -10 for now as they are breaking ttys (#1649531)
* Mon Nov 12 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.4-10
- Fix issues detected by static analysis
* Mon Aug 13 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.4-9
- Remove the link from open to openvt
(related discussion and rationale in Debian bug tracker, bug #732796)
* Mon Jul 30 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2.0.4-8
- Drop initscripts Require, use %%license
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 21 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.4-6
- Add BuildRequires gcc
- Escape macro in comment, remove Group tag
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Jan 11 2017 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.4-1
- Update to kbd-2.0.4
Resolves: #1411174
* Tue Oct 11 2016 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.3-4
- Fix FTBFS
Resolves: #1381878
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Aug 06 2015 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.3-2
- Add compose rules to generated cz.map
Resolves: #1181581
* Wed Jul 15 2015 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.3-1
- Update to kbd-2.0.3
Resolves: #1242684
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 2.0.2-6
- Rebuilt for Fedora 23 Change
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
* Mon Oct 06 2014 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.2-5
- Rename and keep Finnish xkb converted layout (patch by Marko Myllynen)
Related: #1117891
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Tue Aug 12 2014 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.2-3
- Fix unicode_start hardcodes font
Resolves: #1101007
* Wed Jul 16 2014 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.2-2
- Remove Finnish xkb converted layout
Resolves: #1117891
* Tue Jul 08 2014 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.2-1
- Update to kbd-2.0.2
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon Feb 17 2014 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.1-6
- Add man page for kbdinfo, link open man page to openvt man page
* Wed Nov 27 2013 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.1-5
- Add missing patch for loadkeys search path
* Tue Nov 26 2013 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.1-4
- Add xkb and legacy keymaps subdirs to loadkyes search path, remove symlinks
Related: #1028207
- Don't convert layouts that can't input ASCII (patch by Adam Williamson)
Resolves: #1031848
- Fix vlock doesn't perform PAM account management or credential reinitialization
(patch by Dmitry V. Levin)
Resolves: #913311
* Wed Nov 06 2013 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.1-3
- Add PAM config for vlock
Resolves: #913309
* Mon Nov 04 2013 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.1-2
- Fix URL
- Remove source files already included in upstream tarball
* Mon Nov 04 2013 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.0.1-1
- Update to kbd-2.0.1
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.15.5-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

View file

@ -1,5 +1,4 @@
050e1e454e9c01e22f198303d649efb8 kbd-latsun-fonts.tar.bz2
884fdbb0b952b2e3e8389a0c40a3e301 kbd-latarcyrheb-16-fixed.tar.bz2
dd16ff8c6fa9d81490df28cbd68882eb fr-dvorak.tar.bz2
fe118f07a83134b15610503e5e3fe10e kbd-latarcyrheb-32.tar.bz2
34c71feead8ab9c01ec638acea8cd877 kbd-1.15.5.tar.gz
SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584
SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8
SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99
SHA512 (kbd-2.10.0.tar.xz) = 1b7f55f0a1b34d9b6b4237a1ff3e10eedf4bdebe50e906a7acdea48f85b3c455e72737127491a0c494388b999797aa65411b20b44c3f5612fdeee4d8289f937c

3
vlock.pamd Normal file
View file

@ -0,0 +1,3 @@
#%PAM-1.0
auth include system-auth
account required pam_permit.so