showkey.1 (3493B)
- .\" @(#)showkey.1 1.1 980201 aeb
- .TH SHOWKEY 1 "1 Feb 1998" "kbd"
- .SH NAME
- showkey \- examine the codes sent by the keyboard
- .SH SYNOPSIS
- showkey [\-h|\-\-help] [\-a|\-\-ascii] [\-s|\-\-scancodes] [\-k|\-\-keycodes] [\-V|\-\-version]
- .SH DESCRIPTION
- .IX "showkey command" "" "\fLshowkey\fR command"
- .LP
- .B 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.
- .LP
- When in scancode dump mode,
- .B 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
- .BR setkeycodes (8).
- .LP
- When in the default keycode dump mode,
- .B 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
- .B showkey
- in this mode, you can find out what numbers to use in your personalized
- keymap files.
- .LP
- When in `ascii' dump mode,
- .B showkey
- prints to the standard output the decimal, octal, and hexadecimal
- value(s) of the key pressed, according to he present keymap.
- .SH OPTIONS
- .TP
- \-h \-\-help
- .B showkey
- prints to the standard error output its version number, a compile
- option and a short usage message, then exits.
- .TP
- \-s \-\-scancodes
- Starts
- .B showkey
- in scan code dump mode.
- .TP
- \-k \-\-keycodes
- Starts
- .B showkey
- in keycode dump mode. This is the default, when no command line options
- are present.
- .TP
- \-a \-\-ascii
- Starts
- .B showkey
- in `ascii' dump mode.
- .TP
- \-V \-\-version
- .B showkey
- prints version number and exits.
- .SH "2.6 KERNELS"
- 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.
- .LP
- 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.
- .SH "SEE ALSO"
- .BR loadkeys (1),
- .BR dumpkeys (1),
- .BR keymaps (5),
- .BR setkeycodes (8)