loadkeys - load keyboard translation tables
loadkeys [ -a --ascii ] [ -b --bkeymap ] [ -c
--clearcompose ] [ -C '<FILE>' |
--console=<FILE> ] [ -d --default ] [ -h --help ] [
-m --mktable ] [ -p --parse ] [ -q --quiet ] [ -s
--clearstrings ] [ -u --unicode ] [ -v --verbose ] [ -V
--version ] [ filename... ]
The program loadkeys reads the file or files specified by
filename.... Its main purpose is to load the kernel keymap for the
console. You can specify console device by the -C (or --console
If the -d (or --default ) option is given, loadkeys loads a
default keymap, probably the file defkeymap.map either in
/usr/share/kbd/keymaps 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'.
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
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
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
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 lines
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.
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).
If the -b (or --bkeymap ) option is given loadkeys prints
to the standard output a file that may be used as a binary keymap as expected
by Busybox loadkmap command (and does not modify the current keymap).
loadkeys automatically detects whether the console is in Unicode or ASCII
(XLATE) mode. When a keymap is loaded, literal keysyms (such as
section) are resolved accordingly; numerical keysyms are converted to
fit the current console mode, regardless of the way they are specified
(decimal, octal, hexadecimal or Unicode).
The -u (or --unicode) switch forces loadkeys
to convert all keymaps to Unicode. If the keyboard is in a non-Unicode mode,
such as XLATE, loadkeys will change it to Unicode for the time of its
execution. A warning message will be printed in this case.
It is recommended to run kbd_mode(1) before loadkeys
instead of using the -u 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.
- -a --ascii
- Force conversion to ASCII.
- -h --help
- loadkeys prints its version number and a short usage message to the
programs standard error output and exits.
- -p --parse
- loadkeys searches and parses keymap without action.
- -q --quiet
- loadkeys suppresses all normal output.
- -V --version
- loadkeys prints version number and exits.
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.
- default directory for keymaps
- default kernel keymap