Bug#593929: xkb-data: Many keys have incorrect mappings after update to squeeze
Package: xkb-data
Version: 1.8-1
Severity: important
After updating to squeeze, I noticed many of the keys on the keyboard did not
function correctly. The base alphanumeric keys worked, but modifiers, arrow
keys, some keypad functions, etc. were broken.
Starting up with various window managers showed the same breakage. Firing up
twm and xev, every key was pressed to figure out what was going on and compared
with the output of xmodmap.
Previously, on lenny, the keyboard worked correctly under X.
It looks like /usr/share/X11/xkb/keycodes/xfree86 has the wrong keycodes
for my keyboard (IBM Type M, 101-key, PS/2 keyboard)
Checking the results, the following mappings were incorrect:
Print Screen/SysRq = keycode 107 (keysym 0xffff, delete)
Scroll Lock = keycode 78 (keysym 0xff14, scroll_lock)
Pause/Break = keycode 127 (keysym 0x0, no_symbol)
Left Arrow = keycode 113 (keysym 0xffea, delete)
Right Arrow = keycode 114 (keysym 0x0, nosymbol)
Up Arrow = keycode 111 (keysym 0xff61, print)
Down Arrow = keycode 116 (keysym 0xffec, super_r)
Insert = keycode 118 (keysym 0x0, nosymbol)
Home = keycode 110 (keysym 0xff13, pause)
Page Up = keycode 112 (keysym 0xffaf, kp_divide)
Delete = keycode 119 (keysym 0x0, nosymbol)
End = keycode 115 (keysym ffeb, super_l)
Page Down = keycode 117 (keysym 0xff67, menu)
KeyPad / = keycode 106 (keysym 0xff63, insert)
KeyPad Enter = keycode 104 (keysym <didn't write this one down>, down)
I had to use the following ~/.Xmodmap to fix things up:
keycode 108 = Alt_R Meta_R
keycode 105 = Control_R
keycode 107 = Print Sys_Req
keycode 78 = Scroll_Lock
keycode 127 = Pause Break
keycode 113 = Left
keycode 114 = Right
keycode 111 = Up
keycode 116 = Down
keycode 118 = Insert
keycode 110 = Home
keycode 112 = Prior
keycode 119 = Delete
keycode 115 = End
keycode 117 = Next
keycode 106 = KP_Divide
keycode 104 = KP_Enter
Relevant part of current /etc/X11/xorg.conf:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "evdev"
Option "Device" "/dev/input/event0"
Option "SendCoreEvents"
Option "XkbRules" "xorg"
Option "XkbModel" "pc101"
Option "XkbLayout" "us"
Option "XkbOptions" "caps:swapescape,terminate:ctrl_alt_bksp"
EndSection
During lenny, I used the following, and ~/.Xmodmap swapped Caps_Lock and Escape
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc101"
Option "XkbLayout" "us"
EndSection
/etc/default/keyboard:
# If you change any of the following variables and HAL and X are
# configured to use this file, then the changes will become visible to
# X only if HAL is restarted. In Debian you need to run
# /etc/init.d/hal restart
# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.
XKBMODEL="pc101"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="terminate:ctrl_alt_bksp,caps:swapescape"
# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap. Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (1001, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.35.3 (PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
-- no debconf information
Reply to: