KBDMAP(5) FreeBSD File Formats Manual KBDMAP(5)


kbdmapkeyboard map file format for kbdcontrol




A kbdmap file describes how the keys on a keyboard should behave. These files can be loaded using kbdcontrol(1), or kbdmap(1) can be used to select one of the default kbdmap files interactively. A kbdmap file can be specified in rc.conf(5), to be loaded at boot time. The current keymap may also be printed using kbdcontrol(1).

Each line in the file can describe a key or an accent. A ‘ #’ character begins a comment, which extends to the end of the line.

The description of a key begins with the scancode for that key. Then the effect of the key under combinations of shift, control and alt are listed in the following order: no modifier, shift, control, control and shift, alt, alt and shift, alt and control, alt and control and shift. The action of the key under each modifier can be:

' symbol'
The symbol the key should produce, in single quotes.
The Unicode value to produce as a decimal number (see ascii(7)). For example, 32 for space.
0x hexnum
The Unicode value to produce as a hexadecimal number. For example, 0x20 for space.
One of the standard names for the ASCII control characters: nul, soh, stx, etx, eot, enq, ack, bel, bs, ht, nl, vt, np, cr, so, si, dle, dc1, dc2, dc3, dc4, nak, syn, etb, can, em, sub, esc, fs, gs, rs, ns, us, sp, del.
By giving one of the accent names, the next key pressed will produce an accented character in accordance with that accent. See the description of accents below. The accent names are: dgra, dacu, dcir, dtil, dmac, dbre, ddot, duml, ddia, dsla, drin, dced, dapo, ddac, dogo, dcar.
fkey N
Act as the Nth function key, where N is a decimal number in the range from 1 to 96. Refer to the atkbd(4) manual page for a list of predefined function keys. You can use the -f option of the kbdcontrol(1) utility to assign arbitrary strings to function keys.
Act as left shift key.
Act as right shift key.
Act as caps lock key.
Act as num lock key.
Act as scroll lock key.
Act as left alt key.
Act as backwards tab.
Act as left control key.
Act as right control key.
Act as right alt (altgr) key.
Act as alt lock key.
Act as alt shift key.
Act as meta key.
Act as left shift key / alt lock.
Act as right shift key / alt lock.
Act as left ctrl key / alt lock.
Act as right ctrl key / alt lock.
Act as left alt key / alt lock.
Act as right alt key / alt lock.
Act as switch to next screen.
Act as switch to previous screen.
scr N
Switch to screen N, where N is a decimal number.
Reboot the machine.
Halt the machine.
Halt the machine and attempt to power it down.
Call the debugger.
Use APM to suspend power.
Activate screen saver by toggling between splash/text screen.
Panic the system. The sysctl(8) variable machdep.enable_panic_key must be set to 1 to enable this feature.
Act as mouse buffer paste.

Finally, to complete the description of a key, a flag which describes the effect of caps lock and num lock on that key is given. The flag can be ‘ C’ to indicate that caps lock affects the key, ‘ N’ to indicate that num lock affects the key, ‘ B’ to indicate that both caps lock and num lock affects the key, or ‘ O’ to indicate that neither affects the key.

An accent key works by modifying the behavior of the next key pressed. The description of an accent begins with one of the accent names given above. This is followed by the symbol for the accent, given in single quotes or as a decimal or hexadecimal Unicode value. This symbol will be produced if the accent key is pressed and then the space key is pressed.

The description of the accent key continues with a list showing how it modifies various symbols, by giving pairs made up of the normal symbol and the modified symbol enclosed in parentheses. Both symbols in a pair can be given in either single quotes or as decimal or hexadecimal Unicode values.

For example, consider the following extract from a kbdmap:

  041   dgra   172    nop    nop    '|'    '|'    nop    nop     O 
  dgra  '`'  ( 'a' 224 ) ( 'A' 192 ) ( 'e' 232 ) ( 'E' 200 ) 
             ( 'i' 236 ) ( 'I' 204 ) ( 'o' 242 ) ( 'O' 210 ) 
             ( 'u' 249 ) ( 'U' 217 )

This extract configures the backtick key on a UK keyboard to act as a grave accent key. Pressing backtick followed by space produces a backtick, and pressing a backtick followed by a vowel produces the ISO-8859-1 symbol for that vowel with a grave accent.


standard keyboard map files for syscons
standard keyboard map files for vt


This manual page first appeared in FreeBSD 4.2.
January 29, 2008 FreeBSD