Bug#432613: xkb-data: virtual keys missing from evdev keycodes, breaks modifiers
Subject: xkb-data: virtual keys missing from evdev keycodes, breaks modifiers
Package: xkb-data
Version: 0.9-4
Severity: normal
*** Please type your report below this line ***
Upon switching from kbd to evdev driver, and thus from xorg to evdev
keycode mappings, my window manager bindings stopped working. I
eventually traced this down to a weird part of the keycode files.
In keycodes/xfree86, there are mappings for seven keys including <META>
to codes that never occur. I added similar lines to evdev:
// Fake keycodes for virtual keys
<MDSW> = 241;
<LVL3> = 242;
<ALT> = 243;
<META> = 244;
<SUPR> = 245;
<HYPR> = 246;
And now my bindings do work. In linux/input.h keycode 240 is called
unknown and the range 241-255 are not defined.
xmodmap output with this change:
xmodmap: up to 3 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_L (0xf3), Meta_L (0xf4)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0xf5), Hyper_L (0xf6)
mod5 ISO_Level3_Shift (0x6c), Mode_switch (0xf1),
ISO_Level3_Shift (0xf2)
xmodmap output witout it:
xmodmap: up to 2 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40)
mod2 Num_Lock (0x4d)
mod3
mod4
mod5 ISO_Level3_Shift (0x6c)
The left logo key is mapped to Super_L and mod4, but without the fake
keys that fails somehow.
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.22 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=sv_SE.ISO-8859-15, LC_CTYPE=sv_SE.ISO-8859-15 (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash
-- no debconf information
Reply to: