= KMSCON = 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. == Requirements == Kmscon requires the following software: - libudev: providing input, video, etc. device hotplug support (>=v172) - libxkbcommon: providing internationalized keyboard handling 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. - freetype2: The freetype2 font uses libfreetype2 and libfontconfig to provide a very basic font backend. - 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. == Install == To compile the kmscon binary, run the standard autotools commands: $ ./autogen.sh (you need this only when building from git directly) $ ./configure --prefix=/usr $ make $ make install To compile the test applications, run: $ make check If you want only a very basic kmscon program without any major dependencies, use: $ ./configure --disable-debug --with-video=fbdev --disable-multi-seat --with-fonts=8x16 --with-sessions=dummy,terminal However, you will loose a lot of functionality by dropping all dependencies. The following configure options are available. If build-time dependencies cannot be satisfied, an option is automatically turned off, except if you explicitly enable it via command line: --enable-multi-seat: This requires the systemd-logind library to provide multi-seat support for kmscon. [default: on] --enable-hotplug: This requires libudev for hotplugging support. This is currently mandatory and cannot be disabled. [default: on] --enable-debug: Enable debug mode/messages [default: on] --enable-optimizations: Enable code optimizations [default: on] --enable-eloop-dbus: Build dbus extension for eloop library [default: off] Backends for several subsystems in kmscon can be selected with the following options (all of them take a comma-separated list of backend names): --with-video: Video backens. Available backends are: - fbdev: Linux fbdev video backend - dumb: Linux DRM dumb-buffer backend - drm: Linux DRM backend Default is: fbdev,dumb,drm --with-fonts: Font renderers. Available backends are: - 8x16: Static built-in non-scalable 8x16 font (ASCII only) - unifont: Static built-in non-scalable font (Unicode Unifont) Takes very long to compile - freetype2: Freetype2+fontconfig based scalable font renderer - pango: Pango based scalable font renderer Default is: 8x16,freetype2,pango --with-renderers: Console rendering backends. Available are: - bblit: Simply 2D blitting engine - bbulk: Same as bblit but with bulk-requests - gltex: OpenGLESv2 accelerated renderer --with-sessions: Built in sessions. Available sessions are: - dummy: Dummy fallback session - terminal: Terminal-emulator sessions The following options select which applications are built. If dependency-checks fail, they are disabled by default unless explicitly enabled on the command line: --enable-kmscon: Build kmscon application [default: on] --enable-wlterm: Build wlterm Wayland terminal [default: on] --enable-eloop: Build eloop event loop library [default: on] --enable-tsm: Build TSM terminal state-machine library [default: on] --enable-uterm: Build uterm library [default: on] == Running == To get usage information, run: $ ./kmscon --help You can then run kmscon with: $ ./kmscon [options] For debug output use "--debug". For verbose output use "--verbose". With "--xkb-layout=" you can switch the keyboard layout. See "man kmscon" / kmscon(1) for more information. == License == This software is licensed under the terms of an MIT-like license. Please see ./COPYING for further information. == FAQ == Please see http://github.com/dvdhrm/kmscon/wiki == Contact == This software is maintained by: David Herrmann If you have any questions, do not hesitate to contact one of the maintainers.