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/ install
The 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 --help
You 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.