David Herrmann 39f90a4536 Add faster kmscon_char replacement
Instead of allocating big buffers with kmscon_char's for every character we now
reduce a single character to an integer. This integer is either the Unicode
codepoint or an ID to an internally allocated string.

The so called kmscon_symbol_t integer can now be used as if it were a classic
"char" value without bothering with combining marks etc.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2012-01-01 16:47:06 +01:00
2012-01-01 16:47:06 +01:00
2011-12-14 18:09:03 +01:00
2011-12-01 16:21:37 +01:00
2011-12-31 16:40:06 +01:00
2012-01-01 16:47:06 +01:00
2011-12-31 16:55:20 +01:00

= 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:
    - udev
    - mesa with:
      - EGL library
      - gbm library
      - GL library
    - pango with:
      - glib
      - cairo
      - pango
    - libxkbcommon

== Install ==
  To compile the kmscon binary, run the standard autotools commands:
    $ ./configure [--enable-debug]
    $ make
    $ make install
  To compile the test applications, run:
    $ make check

== 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:
    - output:
      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.
    - evdev:
      All linux input events are captured here and converted to Unicode
      characters for input handling.
    - vte:
      The terminal emulator library.
    - main:
      This connects all subsystems into a usable console application.
Languages
C 93.4%
M4 2.9%
Makefile 1.6%
GLSL 1.3%
C++ 0.7%
Other 0.1%