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