WSCONS(4)                 OpenBSD Programmer's Manual                WSCONS(4)

NAME
     wscons - 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_PCVT
     option WSDISPLAY_COMPAT_SYSCONS
     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

     o   Hardware support for display adapters, keyboards and mice; see
         wsdisplay(4), wskbd(4), and wsmouse(4).

     o   Input event multiplexor; see wsmux(4).

     o   Terminal emulation modules (see below).

     o   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 spe-
     cial keyboard codes in terms of termcap(5).  Instead, a ``terminal
     emulation'' is assigned to each virtual screen when the screen is created
     (see wsconscfg(8)).  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 se-
            quences are supported besides the ASCII control characters.  The
            cursor is not addressable.  Only ASCII keyboard codes will be de-
            livered, cursor and functions keys do not work.

     sun    The ``sun'' console emulation is available by default on sparc and
            sparc64 architectures, 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 en-
            vironment 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 func-
            tions 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:

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

            o   Function keys are not reprogrammable and fonts can not be
                downloaded.  DECUDK and DECDLD sequences will be ignored.

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

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

            o   The actual rendering quality depends on the underlying graph-
                ics hardware driver.  Characters might be missing in the
                available fonts and be substituted by more or less fitting re-
                placements.

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

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

            o   ANSI colors

            o   Some VT220 -like presentation state settings and -reports (DE-
                CRSPS), especially tabulator settings.

            In most applications, wscons will work sufficiently as a VT220 em-
            ulator.

     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)), or if no emulation type was passed to the wsconscfg(8)
     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 mul-
                                tiple 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 i386 X servers.

     WSDISPLAY_COMPAT_PCVT      Emulates enough of the OpenBSD / i386 ``pcvt''
                                driver to make X servers work.

     WSDISPLAY_COMPAT_SYSCONS   Emulates enough of the i386 FreeBSD
                                ``syscons'' driver to make X servers work.
                                Useful with FreeBSD binary emulation.

     Linux/i386 X servers do usually run if the first two options are enabled
     together with the OpenBSD Linux binary emulation.

     (To have programs looking for device special files of other console
     drivers find the wscons driver entry points, symlinks are a helpful mea-
     sure.)

     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 spe-
          cific tty device like /dev/ttyC0).  ``WS_KERNEL_FG'' and
          ``WS_KERNEL_BG'' set the foreground / background used on color dis-
          plays.

          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 ap-
          plication 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), wsdisplay(4), wskbd(4), wsmouse(4), wsmux(4), wsconscfg(8),
     wsconsctl(8), wsfontload(8), wsmoused(8)

OpenBSD 4.7                      June 26, 2008                               3
