kmscon/README
Ran Benita 6e301a9af3 input: use libxkbcommon to convert input events
This commit introduces a new kmscon_input_event structure which is
delivered to the input consumer. The information provided is
- The evdev scancode (=physical keyboard key).
- The X keysym (a symbol representing what the typist really intended).
- The active modifiers (e.g. Shift, Control..)
- The unicode (UCS-4) value, when it makes sense.

To achieve this we add two dependencies:
- libxkbcommon (this entails xproto and kbproto, but shouldn't bring any of
  big X dependencies)
- A function to translate keysyms to unicode values (taken from xlib,
  copied in-tree).

libxkbcommon is not an all-around solution, and requires various degrees
of supporting code, depending on how much we wish to support. This
commit implements the common, basic uses:
- Choosing layouts, variants and options
- Switching groups
- Switching shift-levels
- Setting modifiers
Though some stuff is missing. Further information in the comments.

test_input.c is updated to use the new input event interface. You can
change the layouts in input.c:init_input() and see what works and what
doesn't.

Signed-off-by: Ran Benita <ran234@gmail.com>
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2011-12-31 16:18:29 +01:00

58 lines
1.8 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:
- 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.