375888f8919e519d8c14a547b472e5e0ad59ad46
[platform/upstream/kmscon.git] / README
1 = KMSCON =
2 Kmscon is a simple terminal emulator based on linux kernel mode setting (KMS).
3 It is an attempt to replace the in-kernel VT implementation with a userspace
4 console.
5
6 == Requirements ==
7   Kmscon requires the following software:
8     - libdrm: accessing the kernel graphics layer
9     - mesa: providing an OpenGL implementation (must be compiled with EGL, gbm
10             and GL libraries)
11     - udev: providing input device hotplug
12     - libxkbcommon: keyboard handling
13     - glib: only for Unicode handling
14     - One of:
15       - freetype2: drawing generic text
16       - pango: drawing text with pango (use --enable-pango)
17                Pango requires: glib, cairo, pangocairo, pango and freetype2
18
19 == Install ==
20   To compile the kmscon binary, run the standard autotools commands:
21     $ ./configure [--enable-debug] [--enable-pango]
22     $ make
23     $ make install
24   To compile the test applications, run:
25     $ make check
26
27 == License ==
28   This software is licensed under the terms of the MIT license. Please see
29   ./COPYING for further information.
30
31 == FAQ ==
32   === Why didn't you use libvte or similar terminal emulators? ===
33   All existing terminal emulators I found highly depend on X. Also, their code
34   base often is a horrible mess. I haven't had the time to convert them to use
35   other drawing functions than Xlib, yet.
36   If you feel like doing this work, please notify me. I would be glad to adjust
37   my code to work with other terminal emulators.
38
39 == Contact ==
40   This software is maintained by:
41     David Herrmann <dh.herrmann@googlemail.com>
42   If you have any questions, do not hesitate to contact one of the maintainers.
43
44 == Code Base ==
45   The kmscon code is split into several independent subsystems:
46     - output:
47       This code manages the KMS/DRI output and provides OpenGL framebuffers.
48     - console:
49       This draws the text on the screen and provides an API for any terminal
50       emulator to visualize its contents.
51     - eloop:
52       Main loop implementation.
53     - log:
54       Log file handling.
55     - unicode:
56       Provides basic Unicode handling.
57     - font:
58       Font loading, caching and drawing operations.
59     - input:
60       All linux input events are captured here and converted to Unicode
61       characters for input handling.
62     - vt:
63       The linux VT subsystem integration. This allows to run the application in
64       a classic linux VT like X does.
65     - vte:
66       The terminal emulator library.
67     - terminal:
68       Connects the console, output, input and vte handling into a real terminal.
69     - main:
70       This connects all subsystems into a usable console application.