From Wikipedia, the free encyclopedia
Jump to: navigation, search
Developer(s) David Herrmann
Initial release March 27, 2012 (2012-03-27)[1]
Stable release 8 / October 29, 2013; 10 months ago (2013-10-29)
Preview release 8 / October 29, 2013; 10 months ago (2013-10-29)
Development status Active
Written in C
Operating system Linux
Type System console
License ISC license

Kmscon is a virtual console which runs in userspace and intends to replace the Linux console, a terminal built into the Linux kernel. Kmscon uses the KMS driver for its output, it is multi-seat capable, supports internationalized keyboard input and UTF-8 terminal output. The input support is implemented using X keyboard extension (XKB).


Kmscon supports printing full set of Unicode glyphs and is not limited by console encoding as the Linux console.[2] A fully featured kmscon uses mesa for hardware acceleration and pango for font rendering, though for lighter systems, it can be compiled to only depend on udev.[3]

The adoption of XKB 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.[4]


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.[2]

In October 2013 terminal-emulator state machine (libtsm) library, a state machine for DEC VT100-VT520 compatible terminal emulators, was split out of kmscon and made available separately.[5] It was ammended with wlterm, an example Wayland terminal emulator.[6]

See also[edit]


  1. ^ Herrmann, David (March 27, 2012), "[ANNOUNCE] kmscon: Lazy-web's DRM based terminal emulator", dri-devel mailing list (, retrieved April 2, 2012 
  2. ^ a b Larabel, Michael (March 28, 2012), "KMSCON: A DRM-Based Terminal Emulator", Phoronix, retrieved April 2, 2012 
  3. ^ Larabel, Michael (August 18, 2012), "KMSCON Is Getting Ready To Kick The Kernel Console", Phoronix, retrieved July 5, 2012 
  4. ^ Herrmann, David (December 10, 2012), KMSCON Introduction, retrieved May 8, 2013 
  5. ^ Herrmann, David (October 29, 2013), "[ANNOUNCE] libtsm-3 release", kmscon-devel mailing list (, retrieved July 5, 2012 
  6. ^ libtsm,, retrieved July 5, 2012