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