3 Kmscon is a simple terminal emulator based on linux kernel mode setting (KMS).
4 It is an attempt to replace the in-kernel VT implementation with a userspace
5 console. See kmscon(1) man-page for usage information.
8 http://www.freedesktop.org/wiki/Software/kmscon
12 Kmscon requires the following software:
13 - libudev: providing input, video, etc. device hotplug support (>=v172)
14 - libxkbcommon: providing internationalized keyboard handling
16 Everything else is optional:
18 For video output at least one of the following is required:
19 - fbdev: For framebuffer video output the kernel headers must be installed
20 and located in the default include path.
21 - DRM: For unaccelerated drm output the "libdrm" library must be installed
22 and accessible via pkg-config.
23 - OpenGLES2: For accelerated video output via OpenGLESv2 the following must
24 be installed: libdrm, libgbm, egl, glesv2 (i.e., mesa)
26 For font handling the following is required:
27 - 8x16: The 8x16 font is a static built-in font which does not require
28 external dependencies.
29 - unifont: Static font without external dependencies.
30 - pango: drawing text with pango
31 Pango requires: glib, pango, fontconfig, freetype2 and more
33 For multi-seat support you need the following packages:
34 - systemd: Actually only the systemd-logind daemon and library is required.
38 Released tarballs can be found at:
39 http://www.freedesktop.org/software/kmscon/releases
43 To compile the kmscon binary, run the standard autotools commands:
44 $ test -f ./configure || NOCONFIGURE=1 ./autogen.sh
48 To compile the test applications, run:
51 If you want only a very basic kmscon program without any major dependencies,
53 $ ./configure --with-video=fbdev,drm2d --with-renderers= --with-fonts=unifont --disable-multi-seat --with-sessions=dummy,terminal
54 However, you will loose a lot of functionality by dropping all dependencies.
56 The following configure options are available. If build-time dependencies
57 cannot be satisfied, an option is automatically turned off, except if you
58 explicitly enable it via command line:
59 --enable-multi-seat: This requires the systemd-logind library to provide
60 multi-seat support for kmscon. [default: on]
61 --enable-hotplug: This requires libudev for hotplugging support. This is
62 currently mandatory and cannot be disabled. [default: on]
63 --enable-debug: Enable debug mode/messages [default: on]
64 --enable-optimizations: Enable code optimizations [default: on]
65 --enable-eloop-dbus: Build dbus extension for eloop library [default: off]
67 Backends for several subsystems in kmscon can be selected with the following
68 options (all of them take a comma-separated list of backend names):
69 --with-video: Video backens. Available backends are:
70 - fbdev: Linux fbdev video backend
71 - drm2d: Linux DRM software-rendering backend
72 - drm3d: Linux DRM hardware-rendering backend
73 Default is: fbdev,drm2d,drm3d
74 --with-fonts: Font renderers. Available backends are:
75 - unifont: Static built-in non-scalable font (Unicode Unifont)
76 - freetype2: Freetype2+fontconfig based scalable font renderer
77 - pango: Pango based scalable font renderer
78 Default is: unifont,pango
79 The 8x16 backend is always built-in.
80 --with-renderers: Console rendering backends. Available are:
81 - bbulk: Simple 2D software-renderer (bulk-mode)
82 - gltex: OpenGLESv2 accelerated renderer
83 - cairo: cairo based renderer
84 - pixman: pixman based renderer
85 Default is: bbulk,gltex
86 The bblit backend is always built-in.
87 --with-sessions: Built in sessions. Available sessions are:
88 - dummy: Dummy fallback session
89 - terminal: Terminal-emulator sessions
90 - cdev: Fake VTs via CUSE (DEPRECATED! Don't use it!)
92 The following options select which applications are built. If
93 dependency-checks fail, they are disabled by default unless explicitly enabled
95 --enable-kmscon: Build kmscon application [default: on]
96 --enable-wlterm: Build wlterm Wayland terminal [default: off]
97 --enable-eloop: Build eloop event loop library [default: off]
98 --enable-tsm: Build TSM terminal state-machine library [default: off]
99 --enable-uterm: Build uterm library [default: off]
100 --enable-uvt: Build UVT library [default: off]
104 To get usage information, run:
106 You can then run kmscon with:
109 For debug output use "--debug". For verbose output use "--verbose".
110 With "--xkb-layout=<lang>" you can switch the keyboard layout.
111 See "man kmscon" / kmscon(1) for more information.
115 This software is licensed under the terms of an MIT-like license. Please see
116 ./COPYING for further information.
120 Please see: http://www.freedesktop.org/wiki/Software/kmscon
124 This software is maintained by:
125 David Herrmann <dh.herrmann@gmail.com>
126 If you have any questions, do not hesitate to contact one of the maintainers.