From 6a2262a7f9bf2ab16ecfdfc52e548ef010c76e00 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sat, 17 Oct 2020 10:27:36 +0200 Subject: winkbd: Improve rendering Create self-containted, minimal, but still human-readable C file with all typedefs. Gets rid of the copied header file and all of its weird ifdef logic. Simplifies virtual scancode to virtual key mapping. --- lulua/keyboard.py | 130 +++++++++++++++++++++++++++--------------------------- 1 file changed, 65 insertions(+), 65 deletions(-) (limited to 'lulua/keyboard.py') diff --git a/lulua/keyboard.py b/lulua/keyboard.py index 0a7e2e6..c9d3adb 100644 --- a/lulua/keyboard.py +++ b/lulua/keyboard.py @@ -157,72 +157,72 @@ _buttonToKeyman = { 'Fr_ctrl': 'RCTRL', } -# button to symbolic windows scancode usable in keyboard.c -# see windows header kbd.h (#define TXX _EQ(YY)) +# button windows scancode. See Keyboard Scan Code Specification Revision 1.3a +# (published in 2000) from the Windows Platform Design Notes for example. _buttonToWinScancode = { - 'Bl1': 'T29', - 'Bl2': 'T02', - 'Bl3': 'T03', - 'Bl4': 'T04', - 'Bl5': 'T05', - 'Bl6': 'T06', - 'Bl7': 'T07', - 'Br6': 'T08', - 'Br5': 'T09', - 'Br4': 'T0A', - 'Br3': 'T0B', - 'Br2': 'T0C', - 'Br1': 'T0D', - 'Br_bs': 'T0E', - 'Cl_tab': 'T0F', - 'Cl1': 'T10', - 'Cl2': 'T11', - 'Cl3': 'T12', - 'Cl4': 'T13', - 'Cl5': 'T14', - 'Cr7': 'T15', - 'Cr6': 'T16', - 'Cr5': 'T17', - 'Cr4': 'T18', - 'Cr3': 'T19', - 'Cr2': 'T1A', - 'Cr1': 'T1B', - 'CD_ret': 'T1C', - 'Dl_caps': 'T3A', - 'Dl1': 'T1E', - 'Dl2': 'T1F', - 'Dl3': 'T20', - 'Dl4': 'T21', - 'Dl5': 'T22', - 'Dr7': 'T23', - 'Dr6': 'T24', - 'Dr5': 'T25', - 'Dr4': 'T26', - 'Dr3': 'T27', - 'Dr2': 'T28', - 'Dr1': 'T2B', - 'El_shift': 'T2A', - 'El1': 'T56', - 'El2': 'T2C', - 'El3': 'T2D', - 'El4': 'T2E', - 'El5': 'T2F', - 'El6': 'T30', - 'Er5': 'T31', - 'Er4': 'T32', - 'Er3': 'T33', - 'Er2': 'T34', - 'Er1': 'T35', - 'Er_shift': 'T36', - 'Fl_ctrl': 'T1D', - 'Fl_win': 'X5B', - 'Fl_alt': 'T38', - 'Fl_space': 'T39', - 'Fr_space': 'T39', - 'Fr_altgr': 'X38', - 'Fr_win': 'X5C', - 'Fr_menu': 'X5D', - 'Fr_ctrl': 'X1D', + 'Bl1': (0x29, ), + 'Bl2': (0x02, ), + 'Bl3': (0x03, ), + 'Bl4': (0x04, ), + 'Bl5': (0x05, ), + 'Bl6': (0x06, ), + 'Bl7': (0x07, ), + 'Br6': (0x08, ), + 'Br5': (0x09, ), + 'Br4': (0x0A, ), + 'Br3': (0x0B, ), + 'Br2': (0x0C, ), + 'Br1': (0x0D, ), + 'Br_bs': (0x0E, ), + 'Cl_tab': (0x0F, ), + 'Cl1': (0x10, ), + 'Cl2': (0x11, ), + 'Cl3': (0x12, ), + 'Cl4': (0x13, ), + 'Cl5': (0x14, ), + 'Cr7': (0x15, ), + 'Cr6': (0x16, ), + 'Cr5': (0x17, ), + 'Cr4': (0x18, ), + 'Cr3': (0x19, ), + 'Cr2': (0x1A, ), + 'Cr1': (0x1B, ), + 'CD_ret': (0x1C, ), + 'Dl_caps': (0x3A, ), + 'Dl1': (0x1E, ), + 'Dl2': (0x1F, ), + 'Dl3': (0x20, ), + 'Dl4': (0x21, ), + 'Dl5': (0x22, ), + 'Dr7': (0x23, ), + 'Dr6': (0x24, ), + 'Dr5': (0x25, ), + 'Dr4': (0x26, ), + 'Dr3': (0x27, ), + 'Dr2': (0x28, ), + 'Dr1': (0x2B, ), + 'El_shift': (0x2A, ), + 'El1': (0x56, ), + 'El2': (0x2C, ), + 'El3': (0x2D, ), + 'El4': (0x2E, ), + 'El5': (0x2F, ), + 'El6': (0x30, ), + 'Er5': (0x31, ), + 'Er4': (0x32, ), + 'Er3': (0x33, ), + 'Er2': (0x34, ), + 'Er1': (0x35, ), + 'Er_shift': (0x36, ), + 'Fl_ctrl': (0x1D, ), + 'Fl_win': (0xe0, 0x5B, ), + 'Fl_alt': (0x38, ), + 'Fl_space': (0x39, ), + 'Fr_space': (0x39, ), + 'Fr_altgr': (0xe0, 0x38, ), + 'Fr_win': (0xe0, 0x5C, ), + 'Fr_menu': (0xe0, 0x5D, ), + 'Fr_ctrl': (0xe0, 0x1D, ), } class Button: -- cgit v1.2.3