/usr/share/doc/kbd
NameSizeModeActions
ANSI-dvorak.gif38080644editdlrm
AUTHORS7410644editdlrm
ChangeLog165810644editdlrm
COPYING19940644editdlrm
dvorak-l.xmodmap23330644editdlrm
dvorak-r.xmodmap23380644editdlrm
dvorak.diffs14070644editdlrm
dvorak.txt11640644editdlrm
dvorak.xmodmap21570644editdlrm
font-formats-1.html54820644editdlrm
font-formats-2.html14790644editdlrm
font-formats-3.html70070644editdlrm
font-formats-4.html21980644editdlrm
font-formats-5.html5170644editdlrm
font-formats.html13170644editdlrm
kbd.FAQ-1.html41840644editdlrm
kbd.FAQ-2.html29950644editdlrm
kbd.FAQ-3.html21060644editdlrm
kbd.FAQ-4.html78610644editdlrm
kbd.FAQ-5.html172710644editdlrm
kbd.FAQ-6.html27450644editdlrm
kbd.FAQ-7.html57100644editdlrm
kbd.FAQ-8.html94120644editdlrm
kbd.FAQ-9.html26060644editdlrm
kbd.FAQ-10.html26440644editdlrm
kbd.FAQ-11.html22480644editdlrm
kbd.FAQ-12.html82110644editdlrm
kbd.FAQ-13.html44930644editdlrm
kbd.FAQ-14.html34740644editdlrm
kbd.FAQ-15.html69180644editdlrm
kbd.FAQ-16.html30190644editdlrm
kbd.FAQ-17.html17150644editdlrm
kbd.FAQ-18.html25220644editdlrm
kbd.FAQ-19.html13490644editdlrm
kbd.FAQ-20.html17240644editdlrm
kbd.FAQ-21.html17110644editdlrm
kbd.FAQ-22.html24330644editdlrm
kbd.FAQ-23.html9650644editdlrm
kbd.FAQ.html52280644editdlrm
README8300644editdlrm
utfdemo42500644editdlrm
utflist256980644editdlrm
Edit: /usr/share/doc/kbd/kbd.FAQ-2.html (2995B)
The Linux keyboard and console HOWTO: Keyboard generalities Next Previous Contents

2. Keyboard generalities

You press a key, and the keyboard controller sends scancodes to the kernel keyboard driver. Some keyboards can be programmed, but usually the scancodes corresponding to your keys are fixed. The kernel keyboard driver just transmits whatever it receives to the application program when it is in scancode mode, like when X is running. Otherwise, it parses the stream of scancodes into keycodes, corresponding to key press or key release events. (A single key press can generate up to 6 scancodes.) These keycodes are transmitted to the application program when it is in keycode mode (as used, for example, by showkey and some X servers). Otherwise, these keycodes are looked up in the keymap, and the character or string found there is transmitted to the application, or the action described there is performed. (For example, if one presses and releases the a key, then the keyboard produces scancodes 0x1e and 0x9e, this is converted to keycodes 30 and 158, and then transmitted as 0141, the ASCII or latin-1 code for `a'; if one presses and releases Delete, then the keyboard produces scancodes 0xe0 0x53 0xe0 0xd3, these are converted to keycodes 111 and 239, and then transmitted as the 4-symbol sequence ESC [ 3 ~, all assuming a US keyboard and a default keymap. An example of a key combination to which an action is assigned is Ctrl-Alt-Del.)

The translation between unusual scancodes and keycodes can be set using the utility setkeycodes - only few people will need it. The translation between keycodes and characters or strings or actions, that is, the keymap, is set using the utilities loadkeys and setmetamode. For details, see getkeycodes(8), setkeycodes(8), dumpkeys(1), loadkeys(1), setmetamode(1). The format of the files output by dumpkeys and read by loadkeys is described in keymaps(5).

Where it says `transmitted to the application' in the above description, this really means `transmitted to the terminal driver'. That is, further processing is just like that of text that comes in over a serial line. The details of this processing are set by the program stty.


Next Previous Contents