PCKBD(4) | Device Drivers Manual | PCKBD(4)

# NAME

`pckbd` —
PC keyboard driver for wscons

# SYNOPSIS

`pckbc* at isa?`
`pckbd* at pckbc?`
`wskbd* at pckbd? console ?`
`options PCKBD_LAYOUT=XXX`

# DESCRIPTION

This driver supports PC/AT keyboards within the wscons(4) console framework. It doesn't provide direct device driver entry points but makes its functions available via the internal wskbd(4) interface.

The `pckbd` driver supports a number of different key mappings which can be chosen from with the kernel option `PCKBD_LAYOUT` at compile time or with the utility wsconsctl(8) (variable: “encoding”) at runtime. Other mappings can be used if the whole keymap is replaced by means of wsconsctl(8). The builtin mappings are at this time:

option | wsconsctl | language
`KB_US` | us | English/US keyboard mapping (default)
`KB_UK` | uk | English/UK keyboard mapping
`KB_BE` | be | Belgian
`KB_CZ` | cz | Czech (QWERTY)
`KB_DK` | dk | Danish with “dead accents”
`KB_NL` | nl | Dutch
`KB_FI` | fi | Finnish
`KB_FR` | fr | French
`KB_DE` | de | German with “dead accents”
`KB_GR` | gr | Greek
`KB_HU` | hu | Hungarian
`KB_IT` | it | Italian
`KB_JP` | jp | Japanese
`KB_NO` | no | Norwegian with “dead accents”
`KB_PL` | pl | Polish
`KB_PT` | pt | Portuguese
`KB_RU` | ru | Russian
`KB_ES` | es | Spanish
`KB_SV` | sv | Swedish with “dead accents”
`KB_SF` | sf | Swiss French
`KB_SG` | sg | Swiss German
`KB_UA` | ua | Ukrainian
`KB_US|KB_DECLK` | us.declk | English/US mapping for DEC
|  | LK400-style keyboards with PC keyboard
|  | interface (e.g., LK461)
`KB_US|KB_DVORAK` | us.dvorak | English/US keyboard with
|  | “Dvorak” layout
`KB_US|KB_COLEMAK` | us.colemak | English/US keyboard with
|  | “Colemak” layout

The `KB_DE`, `KB_DK`, `KB_NO` and `KB_SV` mappings can be used in the `KB_NODEAD` ( “.nodead”) variant. This switches off the “dead accents”.

The `KB_US`, `KB_UK`, `KB_FR`, `KB_JP` and `KB_US|KB_DVORAK` mappings can be modified to swap the left CTRL and the CAPS LOCK keys by the `KB_SWAPCTRLCAPS` variant bit or the “.swapctrlcaps” suffix.

The `KB_METAESC` ( “.metaesc”) option can be applied to any layout. If set, keys pressed together with the ALT modifier are prefixed by an ESC character. (Standard behaviour is to add 128 to the ASCII value.)

Because PC keyboard hardware doesn't contain a beeper, requests for “keyboard beeps” cannot be handled directly. On alpha and i386 a helper device attached to the pcppi(4) driver allows the use of the standard ISA speaker for this purpose. On acorn32, vidcaudio(4) performs this function.

# EXAMPLES

To set a German keyboard layout without “dead accents” and sending an ESC character before the key symbol if the ALT key is pressed simultaneously, use `wsconsctl` `-w` encoding=de.nodead.metaesc. To set it at kernel build time, add
`options PCKBD_LAYOUT="(KB_DE` | `KB_NODEAD` | `KB_METAESC)"`
to the kernel configuration file.

# SEE ALSO

isa(4), pcppi(4), wskbd(4), wsconsctl(8)

# BUGS

The list of builtin mappings doesn't follow any logic. It grew as people submitted what they needed.

January 11, 2020 | NetBSD 9.0