SETKEYCODES(8)            (8 Nov 1994)             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 speci-
          fied 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 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.

     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

     Page 1                         kbd              (printed 5/25/22)

     SETKEYCODES(8)            (8 Nov 1994)             SETKEYCODES(8)

          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.

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

     Page 2                         kbd              (printed 5/25/22)