JS Keymap: use reversed key/value map
This commit is contained in:
		@@ -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:
 | 
			
		||||
@@ -150,9 +150,7 @@ if __name__ == '__main__':
 | 
			
		||||
    app.run(host=args["ip"], port=args["port"], debug=True,
 | 
			
		||||
            threaded=True, use_reloader=False)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    # Clean up
 | 
			
		||||
    if hiddev is not None:
 | 
			
		||||
        print("Closing hid")
 | 
			
		||||
        hiddev.close()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										245
									
								
								jskeycodes.py
									
									
									
									
									
								
							
							
						
						
									
										245
									
								
								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'
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user