JS Keymap: use reversed key/value map

This commit is contained in:
Petr Kracik 2020-06-04 13:43:51 +02:00
parent ef225cbbb4
commit 4cfea640f9
2 changed files with 134 additions and 125 deletions

View File

@ -9,7 +9,7 @@ import time
import json import json
from hidkeycodes import hidkeycodes from hidkeycodes import hidkeycodes
from jskeycodes import jskeycodes from jskeycodes import jscodehidmap
lock = threading.Lock() lock = threading.Lock()
@ -69,8 +69,8 @@ def get_hid_by_jscode(rawkeycode):
hidkeycode = None hidkeycode = None
hidkeyname = None hidkeyname = None
if rawkeycode in jskeycodes.values(): if rawkeycode in jscodehidmap:
hidkeyname = list(jskeycodes.keys())[list(jskeycodes.values()).index(rawkeycode)] hidkeyname = jscodehidmap[rawkeycode]
if hidkeyname in hidkeycodes: if hidkeyname in hidkeycodes:
hidkeycode = hidkeycodes[hidkeyname] hidkeycode = hidkeycodes[hidkeyname]
else: else:
@ -150,9 +150,7 @@ if __name__ == '__main__':
app.run(host=args["ip"], port=args["port"], debug=True, app.run(host=args["ip"], port=args["port"], debug=True,
threaded=True, use_reloader=False) threaded=True, use_reloader=False)
# Clean up # Clean up
if hiddev is not None: if hiddev is not None:
print("Closing hid") print("Closing hid")
hiddev.close() hiddev.close()

View File

@ -129,121 +129,132 @@ jskeycodes = {
'KEY_COMPOSE': 'ContextMenu', 'KEY_COMPOSE': 'ContextMenu',
} }
jskeywhich = { jscodehidmap = {
'KEY_CANCEL': 3, 'KeyA': 'KEY_A',
'KEY_BACKSPACE': 8, 'KeyB': 'KEY_B',
'KEY_TAB': 9, 'KeyC': 'KEY_C',
'KEY_CLEAR': 12, 'KeyD': 'KEY_D',
'KEY_ENTER': 13, 'KeyE': 'KEY_E',
'KEY_...': 14, 'KeyF': 'KEY_F',
'KEY_SHIFT': 16, 'KeyG': 'KEY_G',
'KEY_CONTROL': 17, 'KeyH': 'KEY_H',
'KEY_ALT': 18, 'KeyI': 'KEY_I',
'KEY_PAUSE': 19, 'KeyJ': 'KEY_J',
'KEY_CAPSLOCK': 20, 'KeyK': 'KEY_K',
'KEY_ESC': 27, 'KeyL': 'KEY_L',
'KEY_SPACE': 32, 'KeyM': 'KEY_M',
'KEY_PAGEUP': 33, 'KeyN': 'KEY_N',
'KEY_PAGEDOWN': 34, 'KeyO': 'KEY_O',
'KEY_END': 35, 'KeyP': 'KEY_P',
'KEY_HOME': 36, 'KeyQ': 'KEY_Q',
'KEY_LEFT': 37, 'KeyR': 'KEY_R',
'KEY_UP': 38, 'KeyS': 'KEY_S',
'KEY_RIGHT': 39, 'KeyT': 'KEY_T',
'KEY_DOWN': 40, 'KeyU': 'KEY_U',
'KEY_PRINTSCREEN': 44, 'KeyV': 'KEY_V',
'KEY_INSERT': 45, 'KeyW': 'KEY_W',
'KEY_DELETE': 46, 'KeyX': 'KEY_X',
'KEY_0': 48, 'KeyY': 'KEY_Y',
'KEY_1': 49, 'KeyZ': 'KEY_Z',
'KEY_2': 50,
'KEY_3': 51, 'Backquote': 'KEY_GRAVE',
'KEY_4': 52,
'KEY_5': 53, 'Digit0': 'KEY_0',
'KEY_6': 54, 'Digit1': 'KEY_1',
'KEY_7': 55, 'Digit2': 'KEY_2',
'KEY_8': 56, 'Digit3': 'KEY_3',
'KEY_9': 57, 'Digit4': 'KEY_4',
'KEY_SEMICOLON': 59, 'Digit5': 'KEY_5',
'KEY_EQUAL': 61, 'Digit6': 'KEY_6',
'KEY_A': 65, 'Digit7': 'KEY_7',
'KEY_B': 66, 'Digit8': 'KEY_8',
'KEY_C': 67, 'Digit9': 'KEY_9',
'KEY_D': 68,
'KEY_E': 69, 'Minus': 'KEY_MINUS',
'KEY_F': 70, 'Equal': 'KEY_EQUAL',
'KEY_G': 71,
'KEY_H': 72, 'BracketLeft': 'KEY_LEFTBRACE',
'KEY_I': 73, 'BracketRight': 'KEY_RIGHTBRACE',
'KEY_J': 74,
'KEY_K': 75, 'Semicolon': 'KEY_SEMICOLON',
'KEY_L': 76, 'Quote': 'KEY_APOSTROPHE',
'KEY_M': 77, 'Backslash': 'KEY_BACKSLASH',
'KEY_N': 78,
'KEY_O': 79, 'Comma': 'KEY_COMMA',
'KEY_P': 80, 'Period': 'KEY_DOT',
'KEY_Q': 81, 'Slash': 'KEY_SLASH',
'KEY_R': 82,
'KEY_S': 83, 'IntlBackslash': 'KEY_102ND',
'KEY_T': 84,
'KEY_U': 85, 'Numpad0': 'KEY_KP0',
'KEY_V': 86, 'Numpad1': 'KEY_KP1',
'KEY_W': 87, 'Numpad2': 'KEY_KP2',
'KEY_X': 88, 'Numpad3': 'KEY_KP3',
'KEY_Y': 89, 'Numpad4': 'KEY_KP4',
'KEY_Z': 90, 'Numpad5': 'KEY_KP5',
'KEY_CONTEXTMENU': 93, 'Numpad6': 'KEY_KP6',
'KEY_NP0': 96, 'Numpad7': 'KEY_KP7',
'KEY_NP1': 97, 'Numpad8': 'KEY_KP8',
'KEY_NP2': 98, 'Numpad9': 'KEY_KP9',
'KEY_NP3': 99,
'KEY_NP4': 100, 'NumpadMultiply': 'KEY_KPASTERISK',
'KEY_NP5': 101, 'NumpadAdd': 'KEY_KPPLUS',
'KEY_NP6': 102, 'NumpadSubtract': 'KEY_KPMINUS',
'KEY_NP7': 103, 'NumpadDecimal': 'KEY_KPDOT',
'KEY_NP8': 104, 'NumpadDivide': 'KEY_KPSLASH',
'KEY_NP9': 105, 'NumpadEnter': 'KEY_KPENTER',
'KEY_KPASTERISK': 106,
'KEY_KPPLUS': 107, 'Escape': 'KEY_ESC',
'KEY_SEPARATOR': 108, 'F1': 'KEY_F1',
'KEY_KPMINUS': 109, 'F2': 'KEY_F2',
'KEY_KPDOT': 110, 'F3': 'KEY_F3',
'KEY_KPSLASH': 111, 'F4': 'KEY_F4',
'KEY_F1': 112, 'F5': 'KEY_F5',
'KEY_F2': 113, 'F6': 'KEY_F6',
'KEY_F3': 114, 'F7': 'KEY_F7',
'KEY_F4': 115, 'F8': 'KEY_F8',
'KEY_F5': 116, 'F9': 'KEY_F9',
'KEY_F6': 117, 'F10': 'KEY_F10',
'KEY_F7': 118, 'F11': 'KEY_F11',
'KEY_F8': 119, 'F12': 'KEY_F12',
'KEY_F9': 120, 'F13': 'KEY_F13',
'KEY_F10': 121, 'F14': 'KEY_F14',
'KEY_F11': 122, 'F15': 'KEY_F15',
'KEY_F12': 123, 'F16': 'KEY_F16',
'KEY_F13': 124, 'F17': 'KEY_F17',
'KEY_F14': 125, 'F18': 'KEY_F18',
'KEY_F15': 126, 'F19': 'KEY_F19',
'KEY_F16': 127, 'F20': 'KEY_F20',
'KEY_F17': 128, 'F21': 'KEY_F21',
'KEY_F18': 129, 'F22': 'KEY_F22',
'KEY_F19': 130, 'F23': 'KEY_F23',
'KEY_F20': 131,
'KEY_F21': 132, 'Backspace': 'KEY_BACKSPACE',
'KEY_F22': 133, 'Space': 'KEY_SPACE',
'KEY_F23': 134, 'Tab': 'KEY_TAB',
'KEY_F24': 135, 'Enter': 'KEY_ENTER',
'KEY_NUMLOCK': 144,
'KEY_SCROLLLOCK': 145, 'PageUp': 'KEY_PAGEUP',
'KEY_FIND': 170, 'PageDown': 'KEY_PAGEDOWN',
'KEY_COMMA': 188, 'Home': 'KEY_HOME',
'KEY_MINUS': 189, 'End': 'KEY_END',
'KEY_DOT': 190, 'Insert': 'KEY_INSERT',
'KEY_SLASH': 191, 'Delete': 'KEY_DELETE',
'KEY_GRAVE': 192,
'KEY_LEFTBRACE': 219, 'ArrowUp': 'KEY_UP',
'KEY_BACKSLASH': 220, 'ArrowDown': 'KEY_DOWN',
'KEY_RIGHTBRACE': 221, 'ArrowLeft': 'KEY_LEFT',
'KEY_APOSTROPHE': 222, 'ArrowRight': 'KEY_RIGHT',
'KEY_META': 224
'NumLock': 'KEY_NUMLOCK',
'CapsLock': 'KEY_CAPSLOCK',
'ScrollLock': 'KEY_SCROLLLOCK',
'MetaLeft': 'KEY_MOD_LMETA',
'MetaRight': 'KEY_MOD_RMETA',
'OSLeft': 'KEY_MOD_LMETA',
'OSRight': 'KEY_MOD_RMETA',
'ContextMenu': 'KEY_COMPOSE'
} }