Kmscon is a
virtual console that runs in
userspace and intends to replace the
Linux console, a terminal built into the
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
. Kmscon uses the
KMS driver
The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for interfacing with GPUs of modern video cards. DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations su ...
for its output, it is
multiseat-capable, and supports internationalized keyboard input and
UTF-8 terminal output. The input support is implemented using
X keyboard extension (XKB). Development of Kmscon stopped in March 2015. There was a successor project called
systemd-consoled, but this project was also later dropped in July 2015.
Features
Kmscon supports printing the full set of
Unicode glyph
A glyph () is any kind of purposeful mark. In typography, a glyph is "the specific shape, design, or representation of a character". It is a particular graphical representation, in a particular typeface, of an element of written language. A g ...
s and is not limited by console encoding as the Linux console.
While the only hard dependency is
udev, kmscon can optionally be compiled to use
Mesa for
hardware acceleration
Hardware acceleration is the use of computer hardware designed to perform specific functions more efficiently when compared to software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calcula ...
of the console, and the
pango library for improved font rendering.
The adoption of
XKB
In human–computer interfaces, the X keyboard extension or XKB is a part of the X Window System that extends the ability to control the computer keyboard, keyboard over what is offered by the X Window System core protocol, and allows to use multip ...
for input allows kmscon to accept the full range of available
keyboard layouts for the
X.Org Server and
Wayland compositors for input and makes it possible to use the same layout both in graphical environment and in terminal.
Multiseat support
The VT system in the Linux kernel dates to 1993 and does not implement out-of-the-box multiseat support. It supports up to 63 VTs, but only one VT can be active at any given time. This necessitates additional steps to configure multiseat support. kmscon/systemd-consoled will enable multiseat out-of-the-box.
If one seat's display server is running on VT 7 and another seat's display server is running on VT 8, then only one of these two seats can be used at a time. To use the other seat, a VT switch must be initiated.
To make all seats usable at the same time, there are a few options:
* Associate all display servers with the same VT: any user can switch VTs and in that case all users switch to the new VT. This makes VT switching (and thus fast user switching) impractical.
X.Org Server command-line option
-sharevts
* Don't associate any display server with a VT: fast user switching is impossible in this case. Text-based console logins are only possible if an input and display device are reserved for this purpose.
* Associate only one of the display servers with a VT: the other display servers can't do VT switching, but the display server associated with a VT can. VT switching on that one seat won't affect the other seats. This is the approach favored and assumed by systemd. command-line option
vt7
for user 1 and
-novtswitch
for all other users.
Development
In 2011, Jesse Barnes wrote in his blog about the possible userspace
DRM-based implementation of the virtual terminal, that would dissolve the need for the
Linux framebuffer and
virtual terminal (VT) subsystems in the Linux kernel. Motivated by this blog post, David Herrmann implemented the basic functionality of virtual terminal.
In October 2013, terminal emulator state machine () library, a state machine for
DEC VT100–
VT520 compatible terminal emulators, was split out of kmscon and made available separately.
It was amended with
wlterm, an example
Wayland terminal emulator.
See also
*
List of terminal emulators
This is a list of notable terminal emulators. Most used terminal emulators on Linux and Unix-like systems are GNOME Terminal on GNOME and GTK-based environments, Konsole on KDE, and xfce4-terminal on Xfce as well as xterm.
Character-oriente ...
References
{{freedesktop.org
Free system software
Freedesktop.org
Linux kernel-related software
Software using the ISC license
Technical communication tools
Terminal emulators
Wayland (display server protocol)