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>
= 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.
Description
Languages
C
93.4%
M4
2.9%
Makefile
1.6%
GLSL
1.3%
C++
0.7%
Other
0.1%