Yolinux.com

setkeycodes manpage

Search topic Section


SETKEYCODES(8)		       Keyboard Support			SETKEYCODES(8)



NAME
       setkeycodes - load kernel scancode-to-keycode mapping table entries

SYNOPSIS
       setkeycodes scancode keycode ...

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.


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 scan-
       codes 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  cor-
       responding  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.

       USB keyboards have standardized keycodes and setkeycodes doesn't affect
       them at all.


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).

OPTIONS
       None.

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.

       setkeycodes  affects  only the "first" input device that has modifiable
       scancode-to-keycode mapping.  If there is more than  one	 such  device,
       setkeycodes cannot change the mapping of other devices than the "first"
       one.


SEE ALSO
       dumpkeys (1), loadkeys (1), showkey (1), getkeycodes (8)





Local				  8 Nov 1994			SETKEYCODES(8)