---
name: "wscons"
section: "4"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["openbsd"]
url: "https://new.carta.tech/wscons"
---

# wscons(4)

workstation console access

## NAME

**wscons** – workstation console access

## SYNOPSIS

**option** **WSEMUL\_SUN** **option** **WSEMUL\_NO\_VT100** **option** **WSEMUL\_DEFAULT="xxx"** **option** **WS\_KERNEL\_FG=WSCOL\_XXX** **option** **WS\_KERNEL\_BG=WSCOL\_XXX** **option** **WSDISPLAY\_COMPAT\_USL** **option** **WSDISPLAY\_COMPAT\_RAWKBD**

**wsdisplay\* at ...** **wskbd\*     at ... mux N** **wsmouse\*   at ... mux N**

**pseudo-device wsmux** \[*count*\]

## DESCRIPTION

The **wscons** driver provides support for machine-independent access to the console.

**wscons** is made of a number of cooperating modules, in particular

- Hardware support for display adapters, keyboards and mice; see [wsdisplay(4)](/wsdisplay/4.md), [wskbd(4)](/wskbd/4.md), and [wsmouse(4)](/wsmouse/4.md).

- Input event multiplexor; see [wsmux(4)](/wsmux/4.md).

- Terminal emulation modules (see below).

- Compatibility options to support control operations and other low-level behaviour of existing terminal drivers (see below).

### Terminal emulations

**wscons** does not define its own set of terminal control sequences and special keyboard codes in terms of [termcap(5)](/termcap/5.md). Instead, a “terminal emulation” is assigned to each virtual screen when the screen is created (see [wsconscfg(8)](/wsconscfg/8.md)). Different terminal emulations can be active at the same time on one display.

The following choices are available:

- dumb

  This minimal terminal support is always available. No control sequences are supported besides the ASCII control characters. The cursor is not addressable. Only ASCII keyboard codes will be delivered, cursor and functions keys do not work.

- sun

  The “sun” console emulation is available by default on the sparc64 architecture, or if **option** **WSEMUL\_SUN** was specified at kernel build time. It supports the control sequences of SUN machine consoles and delivers its keyboard codes for function and keypad keys (as far as present on the actually used keyboard).

  ANSI colors are also supported on this emulation, if the TERM environment variable is set to *rcons-color*.

  This emulation is sufficient for full-screen applications.

- vt100

  is available by default, but can be disabled with **option** **WSEMUL\_NO\_VT100**. It provides the most commonly used functions of DEC VT100 terminals with some extensions introduced by the DEC VT220 and DEC VT320 models. The features of the original VT100 which are not, or not completely, implemented are:

  - VT52 support, 132-column-mode, smooth scroll, light background, keyboard autorepeat control, external printer support, keyboard locking, newline/linefeed switching: Escape sequences related to these features are ignored or answered with standard replies. (DECANM, DECCOLM, DECSCLM, DECSCNM, DECARM, DECPFF, DECPEX, KAM, LNM)

  - Function keys are not reprogrammable and fonts cannot be downloaded. DECUDK and DECDLD sequences will be ignored.

  - Neither C1 control set characters will be recognized nor will 8-bit keyboard codes be delivered.

  - The “DEC supplemental graphic” font is approximated by the ISO-latin-1 font, though there are subtle differences.

  - The actual rendering quality depends on the underlying graphics hardware driver. Characters might be missing in the available fonts and be substituted by more or less fitting replacements.

    Depending on the keyboard used, not all function keys might be available.

    In addition to the plain VT100 functions, the following features are supported:

    - ANSI colors

    - Some VT220 -like presentation state settings and -reports (DECRSPS), especially tabulator settings.

      In most applications, **wscons** will work sufficiently as a VT220 emulator.

The *WSEMUL\_DEFAULT* kernel option allows selecting one of the described terminal options as the default choice. The default goes into effect at kernel startup, i.e., for the operating system console or additional screens allocated through the *WSDISPLAY\_DEFAULTSCREENS* option (see [wsdisplay(4)](/wsdisplay/4.md)), or if no emulation type was passed to the [wsconscfg(8)](/wsconscfg/8.md) utility.

*Compatibility* *options*: these options allow running X servers or other programs using low-level console driver functions which were written specifically for other console drivers to run on OpenBSD systems. The options are in particular:

- **WSDISPLAY\_COMPAT\_USL**

  Support the protocol for switches between multiple virtual screens on one display as used by most PC-UNIX variants.

- **WSDISPLAY\_COMPAT\_RAWKBD**

  Allows getting raw XT keyboard scancodes from PC keyboards as needed by X servers.

*Other* *options*:

- **option** **WS\_KERNEL\_FG=WSCOL\_XXX**

  - **option** **WS\_KERNEL\_BG=WSCOL\_XXX**

  - **option** **WS\_KERNEL\_COLATTR="(WSATTR\_XXX** \| **WSATTR\_YYY)"**

  - **option** **WS\_KERNEL\_MONOATTR="(WSATTR\_XXX** \| **WSATTR\_YYY)"**

  Make console output originating from the kernel appear differently than output from user level programs (via */dev/console* or the specific tty device like */dev/ttyC0*). “WS\_KERNEL\_FG” and “WS\_KERNEL\_BG” set the foreground/background used on color displays.

  The “WSCOL\_XXX” arguments are colors as defined in */usr/include/dev/wscons/wsdisplayvar.h*. “WS\_KERNEL\_COLATTR” and “WS\_KERNEL\_MONOATTR” are additional attribute flags used on color or monochrome displays, respectively. The arguments are defined in the same header file. Whether the attributes are supported or not depends on the actually used graphics adapter. These options are ignored by the “dumb” terminal emulation.

- **option** **WSCOMPAT\_USL\_SYNCTIMEOUT=nnn**

  The virtual screen switching protocol enabled by “WSDISPLAY\_COMPAT\_USL” uses a somewhat complex handshake protocol to pass control to user programs as X servers controlling a virtual screen. To avoid a non-responsive application locking the whole console system, a screen switch will be rolled back if the user application does not respond to a screen switch request within some time. This option sets the timeout (in seconds); the default value is 5 seconds.

## SEE ALSO

[intro(4)](/intro/4.md), [wsdisplay(4)](/wsdisplay/4.md), [wskbd(4)](/wskbd/4.md), [wsmouse(4)](/wsmouse/4.md), [wsmux(4)](/wsmux/4.md), [wsconscfg(8)](/wsconscfg/8.md), [wsconsctl(8)](/wsconsctl/8.md), [wsfontload(8)](/wsfontload/8.md), [wsmoused(8)](/wsmoused/8.md)
