setkeycodes
load kernel scancode-to-keycode mapping table entries
Synopsis
setkeycodes
scancode keycode ...
add an example, a script, a trick and tips
examples
no example yet ...
... Feel free to add your own example above to help other Linux-lovers !
description
The
setkeycodes command reads its arguments two at a
time, each pair of arguments consisting of a scancode (given
in hexadecimal) and a keycode (given in decimal). For each
such pair, it tells the kernel keyboard driver to map the
specified scancode to the specified keycode.
This command is
useful only for people with slightly unusual keyboards, that
have a few keys which produce scancodes that the kernel does
not recognize.
options
None.
2 6 kernels
In 2.6 kernels key codes lie in the range 1-255, instead of
1-127. (It might be best to confine oneself to the range 1-239.)
In 2.6 kernels raw mode, or scancode mode, is not very raw at
all. The code returned by showkey -s will change after use of
setkeycodes. A kernel bug. See also showkey(1).
theory
The usual PC keyboard produces a series of scancodes for each key
press and key release. (Scancodes are shown by showkey -s,
see showkey(1).) The kernel parses this stream of scancodes, and
converts it to a stream of keycodes (key press/release events).
(Keycodes are shown by showkey.) Apart from a few
scancodes with special meaning, and apart from the sequence
produced by the Pause key, and apart from shiftstate related
scancodes, and apart from the key up/down bit, the stream of
scancodes consists of unescaped scancodes xx (7 bits) and escaped
scancodes e0 xx (8+7 bits). To these scancodes or scancode pairs,
a corresponding keycode can be assigned (in the range 1-127). For
example, if you have a Macro key that produces e0 6f according to
showkey(1), the command
setkeycodes e06f 112
will assign the keycode 112 to it, and then loadkeys(1) can be
used to define the function of this key.
Some older kernels might hardwire a low scancode range to the
equivalent keycodes; setkeycodes will fail when you try to remap
these.
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.
see also
dumpkeys
, loadkeys , showkey , getkeycodes