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
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()

View File

@ -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'
}