Figure 1
+----------+
| Keypress |
+----+-----+
|
| keycode
|
+-----------+------------+
| |
V V
+--------------+ +-----------------+
| Linux kernel | | X Window System |
+-------+------+ +--------+--------+
| |
| | keysym
| |
| +-----------+---------+
| | | |
| V | |
| +-------+ | |
| | xterm | | |
| +---+---+ | |
| | | |
+------------+ | |
| | |
| character | V
| | +----------+
+------+------+---------------+ +------+ | netscape |
| | | | | +-----+----+
V | V V V |
+------+ | +------+ +=======+---+-------------+ |
| less | | | bash | | emacs | : | |
+-+----+ | +----+-+ +=======+ : input event | |
| V | | V | |
| +---------+ | | +------------------+ | |
| | minicom | | | | function-key-map | | |
| +----+----+ | | +--------+---------+ | |
| | | | | | |
| | | | | input event | |
| | | | V | |
| | | | +---------------------+ | |
| | | | | key-translation-map | | |
| | | | +---------+-----------+ | |
| | | | : | |
| | | | : input event | |
| | | | V | |
| | | | +------------+ | |
| | | | | global-map | | |
| | | +-----+-----+------+------+ |
| | | | |
+------+------+-----------+----+-----------------+
|
| command
V
+--------+
| Action |
+--------+