Kmscon is a simple terminal emulator based on linux kernel mode setting (KMS). It is an attempt to replace the in-kernel VT implementation with a userspace console. See kmscon(1) man-page for usage information.
Kmscon requires the following software:
- libtsm: terminal emulator state machine
- libudev: providing input, video, etc. device hotplug support (>=v172)
- libxkbcommon: providing internationalized keyboard handling
- libdrm: graphics access to DRM/KMS subsystem
- linux-headers: linux kernel headers for ABI definitions
Everything else is optional:
For video output at least one of the following is required:
- fbdev: For framebuffer video output the kernel headers must be installed and located in the default include path.
- DRM: For unaccelerated drm output the "libdrm" library must be installed and accessible via pkg-config.
- OpenGLES2: For accelerated video output via OpenGLESv2 the following must be installed: libdrm, libgbm, egl, glesv2 (i.e., mesa)
For font handling the following is required:
- 8x16: The 8x16 font is a static built-in font which does not require external dependencies.
- unifont: Static font without external dependencies.
- pango: drawing text with pango Pango requires: glib, pango, fontconfig, freetype2 and more
For multi-seat support you need the following packages:
- systemd: Actually only the systemd-logind daemon and library is required.
Released tarballs can be found at: https://github.com/Aetf/kmscon/releases
To compile the kmscon binary, run the standard meson commands:
meson builddir/By default this will install into /usr/local, you can change your prefix with --prefix=/usr
(or meson configure builddir/ -Dprefix=/usr after the initial meson setup).
Then build and install. Note that this requires ninja.
meson -C builddir/ installThe following meson options are available. They can be used to select backends for several subsystems in kmscon. If build-time dependencies cannot be satisfied, an option is automatically turned off, except if you explicitly enable it via command line:
| option | default | description | 
|---|---|---|
| extra_debug | false | Additional debug outputs | 
| multi_seat | auto | This requires the systemd-logind library to provide multi-seat support for kmscon | 
| video_fbdev | auto | Linux fbdev video backend | 
| video_drm2d | auto | Linux DRM software-rendering backend | 
| video_drm3d | auto | Linux DRM hardware-rendering backend | 
| font_unifont | auto | Static built-in non-scalable font (Unicode Unifont) | 
| font_pango | auto | Pango based scalable font renderer | 
| renderer_bbulk | auto | Simple 2D software-renderer (bulk-mode) | 
| renderer_gltex | auto | OpenGLESv2 accelerated renderer | 
| renderer_pixman | auto | pixman based renderer | 
| session_dummy | auto | Dummy fallback session | 
| session_terminal | auto | Terminal-emulator sessions | 
To get usage information, run:
kmscon --helpYou can then run kmscon with:
kmscon [options]Kmscon queries and setups system locale settings before starting if systemd-localed is available.
Otherwise, you can change locale settings via --xkb-{model,layout,variant,options} command line options.
See man kmscon for more information.
The default configuration file is /etc/kmscon/kmscon.conf. Any command line option can be put in the config file in
its long form without the leading -- (double dash). See man kmscon for more information.
This software is licensed under the terms of an MIT-like license. Please see
COPYING for further information.
This is a personal fork from https://www.freedesktop.org/wiki/Software/kmscon, which hasn't been updated since 2014.