setkeycodes - load kernel scancode-to-keycode mapping table entries
setkeycodes scancode keycode [scancode keycode ... ]
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
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). It is hardwired in the current kernel that in
the range 1-88 (0x01-0x58) keycode equals scancode. For the remaining
scancodes (0x59-0x7f) or scancode pairs (0xe0 0x00 - 0xe0 0x7f) 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),
setkeycodes e06f 112
will assign the keycode 112 to it, and then loadkeys(1) can be used to
define the function of this key.
The keycodes of X have nothing to do with those of Linux. Unusual keys
can be made visible under Linux, but not under X.
dumpkeys(1), loadkeys(1), showkey(1), getkeycodes(8).
Console tools 31 Oct 1997 SETKEYCODES(8)
[ Back ]