showkey(1) — Linux manual page


SHOWKEY(1)                 General Commands Manual                SHOWKEY(1)

NAME         top

       showkey - examine the codes sent by the keyboard

SYNOPSIS         top

       showkey [-h|--help] [-a|--ascii] [-s|--scancodes] [-k|--keycodes]

DESCRIPTION         top

       showkey prints to standard output either the scan codes or the
       keycode or the `ascii' code of each key pressed.  In the first two
       modes the program runs until 10 seconds have elapsed since the last
       key press or release event, or until it receives a suitable signal,
       like SIGTERM, from another process.  In `ascii' mode the program
       terminates when the user types ^D.

       When in scancode dump mode, showkey prints in hexadecimal format each
       byte received from the keyboard to the standard output. A new line is
       printed when an interval of about 0.1 seconds occurs between the
       bytes received, or when the internal receive buffer fills up. This
       can be used to determine roughly, what byte sequences the keyboard
       sends at once on a given key press. The scan code dumping mode is
       primarily intended for debugging the keyboard driver or other low
       level interfaces. As such it shouldn't be of much interest to the
       regular end-user. However, some modern keyboards have keys or buttons
       that produce scancodes to which the kernel does not associate a
       keycode, and, after finding out what these are, the user can assign
       keycodes with setkeycodes(8).

       When in the default keycode dump mode, showkey prints to the standard
       output the keycode number or each key pressed or released. The kind
       of the event, press or release, is also reported.  Keycodes are
       numbers assigned by the kernel to each individual physical key. Every
       key has always only one associated keycode number, whether the
       keyboard sends single or multiple scan codes when pressing it. Using
       showkey in this mode, you can find out what numbers to use in your
       personalized keymap files.

       When in `ascii' dump mode, showkey prints to the standard output the
       decimal, octal, and hexadecimal value(s) of the key pressed,
       according to he present keymap.

OPTIONS         top

       -h --help
              showkey prints to the standard error output its version
              number, a compile option and a short usage message, then

       -s --scancodes
              Starts showkey in scan code dump mode.

       -k --keycodes
              Starts showkey in keycode dump mode. This is the default, when
              no command line options are present.

       -a --ascii
              Starts showkey in `ascii' dump mode.

       -V --version
              showkey prints version number and exits.

2.6 KERNELS         top

       In 2.6 kernels key codes lie in the range 1-255, instead of 1-127.
       Key codes larger than 127 are returned as three bytes of which the
       low order 7 bits are: zero, bits 13-7, and bits 6-0 of the key code.
       The high order bits are: 0/1 for make/break, 1, 1.

       In 2.6 kernels raw mode, or scancode mode, is not very raw at all.
       Scan codes are first translated to key codes, and when scancodes are
       desired, the key codes are translated back. Various transformations
       are involved, and there is no guarantee at all that the final result
       corresponds to what the keyboard hardware did send. So, if you want
       to know the scan codes sent by various keys it is better to boot a
       2.4 kernel. Since 2.6.9 there also is the boot option atkbd.softraw=0
       that tells the 2.6 kernel to return the actual scan codes.

SEE ALSO         top

       loadkeys(1), dumpkeys(1), keymaps(5), setkeycodes(8)

COLOPHON         top

       This page is part of the kbd (Linux keyboard tools) project.
       Information about the project can be found at 
       ⟨⟩.  If you have a bug report for this man‐
       ual page, send it to  This page was obtained
       from the project's upstream Git repository
       ⟨⟩ on 2020-06-09.  (At that time,
       the date of the most recent commit that was found in the repository
       was 2020-06-08.)  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-to-
       date source for the page, or you have corrections or improvements to
       the information in this COLOPHON (which is not part of the original
       manual page), send a mail to

                                 1 Feb 1998                       SHOWKEY(1)

Pages that refer to this page: loadkeys(1)keymaps(5)setkeycodes(8)