Description of problem:
Ok, this is annoying as all get out. Not all keyboards send the same codes. We
don't have the equivalent of .inf files as Windows. I propose the following two
solutions (one or both should be freedesktop.org like standards):
First, on install a program should come up that can understand the keycodes that
you get setkeycode messages about (such as e01e) so that if it is an extended
keycode, it can still be used. This program should automatically decide on the
best keycode (0-255 it looks like) for the kernel. It should ask which of all
the standard multimedia/internet/extended keys the user's keyboard has and help
them map it to all of those such as XF86AudioPlay (as found in
/usr/share/X11/XKeysymDB). This should be able to be skipped, only enter some,
or enter all. It should come up on upgrade. It should be a tool the user can
user later (in case of changing keyboards like i just did). This program should
then write out the file needed for the kernel and for X which will get
run/loaded whenever they start.
Second, we need an .inf feature. If we can just write a loader that is part of
the above program that reads Windows .inf files for keyboards, great. If not, a
standard needs to be created and companies encouraged to provide them for Linux
users. This definitely needs to be compatible with all F/OSS operating systems
and, if possible, Apple OS X.
Thank you for taking me seriously and fixing this gaping usability hole.
(On a side note, rhythmbox should use the keys setup in GNOME keyboard
shortcuts... not demanding to use XF86Audio*.)
This should be handled in HAL (and then making sure that things are using HAL)
Not really a HAL issue per say. HAL could support it in the future by mapping
keyboards it knows about but I don't think all keyborads give that info (for
instance ps2 keyboards or bluetooth which HAL does not support yet). In any
case this should be descussed upstream, not at the distro level.
I suggest bringing this up on the HAL list, they should know other people who
have more knowledge about the keycode issues.