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