From de1e1d09f5ab46f0b07f55b2bc5d9722a156bb2c Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sat, 14 Nov 2020 15:36:18 +0100 Subject: render: Add keylayout renderer Not really functional, since we cannot control shift states and keys. --- lulua/keyboard.py | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) (limited to 'lulua/keyboard.py') diff --git a/lulua/keyboard.py b/lulua/keyboard.py index c9d3adb..cf96efc 100644 --- a/lulua/keyboard.py +++ b/lulua/keyboard.py @@ -225,6 +225,73 @@ _buttonToWinScancode = { 'Fr_ctrl': (0xe0, 0x1D, ), } +# see https://eastmanreference.com/complete-list-of-applescript-key-codes +_buttonToOsxKeycode = { + 'Bl1': 50, + 'Bl2': 18, + 'Bl3': 19, + 'Bl4': 20, + 'Bl5': 21, + 'Bl6': 23, + 'Bl7': 22, + 'Br6': 26, + 'Br5': 28, + 'Br4': 25, + 'Br3': 29, + 'Br2': 27, + 'Br1': 24, + 'Br_bs': 51, + 'Cl_tab': 48, + 'Cl1': 12, + 'Cl2': 13, + 'Cl3': 14, + 'Cl4': 15, + 'Cl5': 17, + 'Cr7': 16, + 'Cr6': 32, + 'Cr5': 34, + 'Cr4': 31, + 'Cr3': 35, + 'Cr2': 33, + 'Cr1': 30, + 'CD_ret': 36, + 'Dl_caps': 57, + 'Dl1': 0, + 'Dl2': 1, + 'Dl3': 2, + 'Dl4': 3, + 'Dl5': 5, + 'Dr7': 4, + 'Dr6': 38, + 'Dr5': 40, + 'Dr4': 37, + 'Dr3': 41, + 'Dr2': 39, + #'Dr1': 51, + 'El_shift': 57, + #'El1': 6, + 'El2': 6, + 'El3': 7, + 'El4': 8, + 'El5': 9, + 'El6': 11, + 'Er5': 45, + 'Er4': 46, + 'Er3': 43, + 'Er2': 47, + 'Er1': 44, + 'Er_shift': 60, + 'Fl_ctrl': 59, + 'Fl_win': 55, + 'Fl_alt': 58, + 'Fl_space': 49, + 'Fr_space': 49, + 'Fr_altgr': 61, + 'Fr_win': 55, + #'Fr_menu': , + #'Fr_ctrl': 105, + } + class Button: __slots__ = ('width', 'isMarked', 'i') _idToName : Dict[int, Text] = {} @@ -271,6 +338,10 @@ class Button: def windowsScancode (self): return _buttonToWinScancode[self.name] + @property + def osxKeycode (self): + return _buttonToOsxKeycode[self.name] + @classmethod def deserialize (self, data: Dict): kindMap = {'standard': Button, 'letter': LetterButton, 'multi': MultiRowButton} -- cgit v1.2.3