# loadkeys

## NAME



           loadkeys - load keyboard translation tables
    


## SYNOPSIS



           **loadkeys**[_OPTION_]... _FILENAME_...
           **loadkeys** _--default_
           **loadkeys** _--mktable_
           **loadkeys** _--bkeymap_
           **loadkeys** _--tkeymap_**[=shape]**
           **loadkeys** _--parse_
    


## DESCRIPTION



           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_ ) option.
    


## RESET TO DEFAULT



           If the _-d_ (or _--default_ ) option is given, **loadkeys** loads a
           default keymap, probably the file _defkeymap.map_ either in
           _/usr/local/share/keymaps_ or in _/usr/src/linux/drivers/tty/vt_.
           (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.map'.
    


## 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-only'.
    


## 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 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.
    


## 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/tty/vt/defkeymap.c,_ specifying the default
           key bindings for a kernel (and does not modify the current
           keymap).
    


## CREATE BINARY 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).
    


## CREATE TEXT KEYMAP



           If the _-t_ (or _--tkeymap_ ) option is given **loadkeys** prints to the
           standard output a file that may be used as a text keymap as
           expected by **loadkeys** command (and does not modify the current
           keymap).  An optional argument can be used to select the shape of
           the output format: _-t_**shape**(or _--tkeymap=_**shape**).
    
           Available shapes:
    
                  **2** default output.
    
                  **4** one line for each keycode.
    
                  **8** one line for each (modifier,keycode) pair.
    
                  **16** one line for each keycode until 1st hole.
    


## UNICODE MODE



           **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.
    


## OTHER OPTIONS



           **-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.
    


## WARNING



           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.
    


## FILES



           _/usr/local/share/keymaps_
                  default directory for keymaps.
    
           _/usr/src/linux/drivers/tty/vt/defkeymap.map_
                  default kernel keymap.
    


* * *