Fix some small typos and add TODOs. Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
81 lines
3.1 KiB
Plaintext
81 lines
3.1 KiB
Plaintext
= 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.
|
|
|
|
== Requirements ==
|
|
Kmscon requires the following software:
|
|
- libdrm: accessing the kernel graphics layer
|
|
- mesa: providing an OpenGL implementation (must be compiled with EGL, gbm
|
|
and GL libraries)
|
|
- udev: providing input, video, etc. hotplug support
|
|
- xproto (build time dependency): definition of keysymbols (TODO: remove it)
|
|
- libxkbcommon: keyboard handling (optional but strongly recommended)
|
|
Without libxkbcommon, basic US-ASCII input is provided.
|
|
- glib: only for Unicode handling (TODO: remove it)
|
|
- One of:
|
|
- freetype2: drawing generic text
|
|
- pango: drawing text with pango (use --enable-pango)
|
|
Pango requires: glib, cairo, pangocairo, pango and freetype2
|
|
|
|
== Install ==
|
|
To compile the kmscon binary, run the standard autotools commands:
|
|
$ ./configure [--enable-debug] [--enable-pango]
|
|
$ make
|
|
$ make install (TODO: this is currently not supported)
|
|
To compile the test applications, run:
|
|
$ make check
|
|
|
|
== Running ==
|
|
To get usage information, run:
|
|
$ ./kmscon --help
|
|
You can then run kmscon with:
|
|
$ ./kmscon [options] --switchvt
|
|
The --switchvt option will make your machine switch the active VT directly to
|
|
kmscon after starting it.
|
|
|
|
== License ==
|
|
This software is licensed under the terms of the MIT license. Please see
|
|
./COPYING for further information.
|
|
|
|
== FAQ ==
|
|
=== Why didn't you use libvte or similar terminal emulators? ===
|
|
All existing terminal emulators I found highly depend on X. Also, their code
|
|
base often is a horrible mess. I haven't had the time to convert them to use
|
|
other drawing functions than Xlib, yet.
|
|
If you feel like doing this work, please notify me. I would be glad to adjust
|
|
my code to work with other terminal emulators.
|
|
|
|
== Contact ==
|
|
This software is maintained by:
|
|
David Herrmann <dh.herrmann@googlemail.com>
|
|
If you have any questions, do not hesitate to contact one of the maintainers.
|
|
|
|
== Code Base ==
|
|
The kmscon code is split into several independent subsystems:
|
|
- uterm:
|
|
This code manages the KMS/DRI output and provides OpenGL framebuffers.
|
|
- console:
|
|
This draws the text on the screen and provides an API for any terminal
|
|
emulator to visualize its contents.
|
|
- eloop:
|
|
Main loop implementation.
|
|
- log:
|
|
Log file handling.
|
|
- unicode:
|
|
Provides basic Unicode handling.
|
|
- font:
|
|
Font loading, caching and drawing operations.
|
|
- input:
|
|
All linux input events are captured here and converted to Unicode
|
|
characters for input handling.
|
|
- vt:
|
|
The linux VT subsystem integration. This allows to run the application in
|
|
a classic linux VT like X does.
|
|
- vte:
|
|
The terminal emulator library.
|
|
- terminal:
|
|
Connects the console, output, input and vte handling into a real terminal.
|
|
- main:
|
|
This connects all subsystems into a usable console application.
|