loadkeys - load keyboard translation tables
[ -a --ascii
] [ [ -b --bkeymap
] [ -c
] [ -C '<FILE>'
] [ -d --default
] [ -h --help
] [ -p --parse
] [ -q --quiet
] [ -s
] [ -u --unicode
] [ -v --verbose
] [ -V
] [ filename...
The program loadkeys
reads the file or files specified by
. Its main purpose is to load the kernel keymap for the
console. You can specify console device by the -C
If the -d
) option is given, loadkeys
default keymap, probably the file defkeymap.map
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
, while the keymap format is given in keymaps(5)
can also be seen from the output of dumpkeys(1)
If the input file does not contain any compose key definitions, the kernel
accent table is left unchanged, unless the -c
) 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
The option -s
) 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
) option is given loadkeys
to the standard output a file that may be used as
specifying the default key
bindings for a kernel (and does not modify the current keymap).
If the -b
) option is given loadkeys
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).
automatically detects whether the console is in Unicode or ASCII
(XLATE) mode. When a keymap is loaded, literal keysyms (such as
) 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).
) switch forces loadkeys
to convert all
keymaps to Unicode. If the keyboard is in a non-Unicode mode, such as XLATE,
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)
using the -u
- -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 searchs and parses keymap without
- -q --quiet
- loadkeys suppresses all normal output.
- -V --version
- loadkeys prints version number and exits.
Note that anyone having read access to /dev/console
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.
- default directory for keymaps
- default kernel keymap