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>
9 lines
137 B
C
9 lines
137 B
C
/*
|
|
* This is taken from the xlib:
|
|
* libX11/src/xlibil18n/imKStoUCS.c
|
|
*/
|
|
|
|
#include <stdint.h>
|
|
|
|
uint32_t KeysymToUcs4(uint32_t keysym);
|