loadkeys - load keyboard translation tables
loadkeys [ -d --default ] [ -h --help ] [ -q --quiet ] [ -u --unicode ]
[ -v --verbose [ -v --verbose ]...] [ -m --mktable ] [ -c
--clearcompose ] [ -s --clearstrings ] [ filename... ]
The loadkeys program reads the file or files specified by filename...
Its main purpose is to load the kernel keymap for the console.
RESET TO DEFAULT
If the -d (or --default ) option is given, loadkeys loads a default
keymap, probably the file defkeymap.map[.gz] typically in
/usr/share/keymaps/i386/qwerty/ or in /usr/src/linux/drivers/char.
(Probably the former was user-defined, while the latter is a qwerty
keyboard map for PCs - maybe not what was desired.) Sometimes, with a
strange keymap loaded (with the minus on some obscure unknown modifier
combination) it is easier to type ‘loadkeys defkeymap’.
LOAD KERNEL KEYMAP
The main function of loadkeys is to load or modify the keyboard
driver’s translation tables. When specifying the file names, standard
input can be denoted by dash (-). If no file is specified, the data is
read from the standard input.
For many countries and keyboard types appropriate keymaps are available
already, and a command like ‘loadkeys uk’ might do what you want. On
the other hand, it is easy to construct one’s own keymap. The user has
to tell what symbols belong to each key. She can find the keycode for a
key by use of showkey(1), while the keymap format is given in
keymaps(5) and can also be seen from the output of dumpkeys(1).
LOAD KERNEL ACCENT TABLE
If the input file does not contain any compose key definitions, the
kernel accent table is left unchanged, unless the -c (or --clearcompose
) option is given, in which case the kernel accent table is emptied.
If the input file does contain compose key definitions, then all old
definitions are removed, and replaced by the specified new entries.
The kernel accent table is a sequence of (by default 68) entries
describing how dead diacritical signs and compose keys behave. For
example, a line
compose ’,’ ’c’ to ccedilla
means that <ComposeKey><,><c> must be combined to <ccedilla>. The
current content of this table can be see using ‘dumpkeys --compose-
LOAD KERNEL STRING TABLE
The option -s (or --clearstrings ) clears the kernel string table. If
this option is not given, loadkeys will only add or replace strings,
not remove them. (Thus, the option -s is required to reach a well-
defined state.) The kernel string table is a sequence of strings with
names like F31. One can make function key F5 (on an ordinary PC
keyboard) produce the text ‘Hello!’, and Shift+F5 ‘Goodbye!’ using
keycode 63 = F70 F71
string F70 = "Hello!"
string F71 = "Goodbye!"
in the keymap. The default bindings for the function keys are certain
escape sequences mostly inspired by the VT100 terminal.
CREATE KERNEL SOURCE TABLE
If the -m (or --mktable ) option is given loadkeys prints to the
standard output a file that may be used as /usr/src/linux/drivers/char
/defkeymap.c, specifying the default key bindings for a kernel (and
does not modify the current keymap).
print the version number and a short usage message to the
programs standard error output and exit.
Print details about changes. If used several times, be even
Go into unicode mode; characters outputted will be in UTF-8.
Do not print standard messages.
Clear the kernel’s compose table (also called accent table). If
this option is not given, and if this file does not contain any
compose key definitions, the kernel compose table is left
Clear the kernel string table. If this option is not given,
loadkeys will only add or replace strings, not remove them.
/usr/share/keymaps/ default directory for keymap files.
/usr/share/keymaps/defkeymap.kmap default keymap loaded by -d option.
Note that anyone having read access to /dev/console can run loadkeys
and thus change the keyboard layout, possibly making it unusable. Note
that the keyboard translation table is common for all the virtual
consoles, so any changes to the keyboard bindings affect all the
virtual consoles simultaneously.
Note that because the changes affect all the virtual consoles, they
also outlive your session. This means that even at the login prompt the
key bindings may not be what the user expects.
The default keymap should be the default keymap compiled in the kernel
(ie. the one in /usr/src/linux/drivers/char/defkeymap.c).
dumpkeys(1), kbd_mode(1), keymaps(5), setkeycodes(8).