Comment 10 for bug 1167869

Revision history for this message
Martin Pitt (pitti) wrote : Re: [keymap] Dell Latitude D830: hibernate key

The udev keymaps are correct. As I said, on the kernel level there is only KEY_SLEEP (suspend to RAM) and KEY_SUSPEND (suspend to disk, aka hibernate).

On the X.org level, /usr/share/X11/xkb/keycodes/evdev assigns <I150> to KEY_SLEEP and <I213> to KEY_SUSPEND. /usr/share/X11/xkb/symbols/inet then maps <I150> to XF86Sleep and <I213> to XF86Suspend, mirroring the evdev naming. There is also an entry

      key <I255> { [ XF86Hibernate ] }; // KEY_HIBERNATE

But this isn't defined in /usr/share/X11/xkb/keycodes/evdev. Per the "evdev code + 8" mapping, this would correspond to KEY_RFKILL and thus be wrong.

So there are two things which can happen here:

  * Change the xkb mapping of <I213> to XF86Hibernate. This seems to be what KDE expects, and GNOME gets along with it as well (it handles both XF86Hibernate and XF86Suspend).

  * Change KDE to accept XF86Suspend for hibernation as well, in addition to XF86Hibernate (which is never emitted right now).