---
name: "keymap"
section: "5"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/kbdmap/5"
---

# keymap(5)

keyboard map file format for kbdcontrol

Part of [kbdmap(5)](/kbdmap/5.md).

## NAME

**kbdmap** – keyboard map file format for kbdcontrol

## SYNOPSIS

**kbdmap**

## DESCRIPTION

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

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.

- *decnum*

  The Unicode value to produce as a decimal number (see [ascii(7)](/ascii/7.md)). For example, 32 for space.

- 0x*hexnum*

  The Unicode value to produce as a hexadecimal number. For example, 0x20 for space.

- *ctrlname*

  One of the standard names for the ASCII control characters: nul, soh, stx, etx, eot, enq, ack, bel, bs, ht, lf, vt, ff, cr, so, si, dle, dc1, dc2, dc3, dc4, nak, syn, etb, can, em, sub, esc, fs, gs, rs, us, sp, del.

- *control-alias*

  One of the historical aliases for certain ASCII control characters: nl, np, ns.

- *accentname*

  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 *N*th function key, where *N* is a decimal number in the range from 1 to 96. Refer to the [atkbd(4)](/atkbd/4.md) manual page for a list of predefined function keys. You can use the **-f** option of the [kbdcontrol(1)](/kbdcontrol/1.md) utility to assign arbitrary strings to function keys.

- lshift

  Act as left shift key.

- rshift

  Act as right shift key.

- clock

  Act as caps lock key.

- nlock

  Act as num lock key.

- slock

  Act as scroll lock key.

- lalt\|alt

  Act as left alt key.

- btab

  Act as backwards tab.

- lctrl\|ctrl

  Act as left control key.

- rctrl

  Act as right control key.

- ralt

  Act as right alt (altgr) key.

- alock

  Act as alt lock key.

- ashift

  Act as alt shift key.

- meta

  Act as meta key.

- lshifta\|shifta

  Act as left shift key / alt lock.

- rshifta

  Act as right shift key / alt lock.

- lctrla\|ctrla

  Act as left ctrl key / alt lock.

- rctrla

  Act as right ctrl key / alt lock.

- lalta\|alta

  Act as left alt key / alt lock.

- ralta

  Act as right alt key / alt lock.

- nscr

  Act as switch to next screen.

- pscr

  Act as switch to previous screen.

- scr*N*

  Switch to screen *N*, where *N* is a decimal number.

- boot

  Reboot the machine.

- halt

  Halt the machine.

- pdwn

  Halt the machine and attempt to power it down.

- debug

  Call the debugger.

- susp

  Use APM to suspend power.

- saver

  Activate screen saver by toggling between splash/text screen.

- panic

  Panic the system. The [sysctl(8)](/sysctl/8.md) variable *machdep.enable\_panic\_key* must be set to 1 to enable this feature.

- paste

  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.

## FILES

- */usr/share/syscons/keymaps/\**

  standard keyboard map files for syscons

- */usr/share/vt/keymaps/\**

  standard keyboard map files for vt

## SEE ALSO

[kbdcontrol(1)](/kbdcontrol/1.md), [kbdmap(1)](/kbdmap/1.md), [keyboard(4)](/keyboard/4.md), [syscons(4)](/syscons/4.md), [vt(4)](/vt/4.md), [ascii(7)](/ascii/7.md)

## HISTORY

This manual page first appeared in FreeBSD 4.2.
