jskeycodes = { 'KEY_A': 'KeyA', 'KEY_B': 'KeyB', 'KEY_C': 'KeyC', 'KEY_D': 'KeyD', 'KEY_E': 'KeyE', 'KEY_F': 'KeyF', 'KEY_G': 'KeyG', 'KEY_H': 'KeyH', 'KEY_I': 'KeyI', 'KEY_J': 'KeyJ', 'KEY_K': 'KeyK', 'KEY_L': 'KeyL', 'KEY_M': 'KeyM', 'KEY_N': 'KeyN', 'KEY_O': 'KeyO', 'KEY_P': 'KeyP', 'KEY_Q': 'KeyQ', 'KEY_R': 'KeyR', 'KEY_S': 'KeyS', 'KEY_T': 'KeyT', 'KEY_U': 'KeyU', 'KEY_V': 'KeyV', 'KEY_W': 'KeyW', 'KEY_X': 'KeyX', 'KEY_Y': 'KeyY', 'KEY_Z': 'KeyZ', 'KEY_GRAVE': 'Backquote', 'KEY_0': 'Digit0', 'KEY_1': 'Digit1', 'KEY_2': 'Digit2', 'KEY_3': 'Digit3', 'KEY_4': 'Digit4', 'KEY_5': 'Digit5', 'KEY_6': 'Digit6', 'KEY_7': 'Digit7', 'KEY_8': 'Digit8', 'KEY_9': 'Digit9', 'KEY_MINUS': 'Minus', 'KEY_EQUAL': 'Equal', 'KEY_LEFTBRACE': 'BracketLeft', 'KEY_RIGHTBRACE': 'BracketRight', 'KEY_SEMICOLON': 'Semicolon', 'KEY_APOSTROPHE': 'Quote', 'KEY_BACKSLASH': 'Backslash', 'KEY_COMMA': 'Comma', 'KEY_DOT': 'Period', 'KEY_SLASH': 'Slash', 'KEY_102ND': 'IntlBackslash', 'KEY_KP0': 'Numpad0', 'KEY_KP1': 'Numpad1', 'KEY_KP2': 'Numpad2', 'KEY_KP3': 'Numpad3', 'KEY_KP4': 'Numpad4', 'KEY_KP5': 'Numpad5', 'KEY_KP6': 'Numpad6', 'KEY_KP7': 'Numpad7', 'KEY_KP8': 'Numpad8', 'KEY_KP9': 'Numpad9', 'KEY_KPASTERISK': 'NumpadMultiply', 'KEY_KPPLUS': 'NumpadAdd', 'KEY_KPMINUS': 'NumpadSubtract', 'KEY_KPDOT': 'NumpadDecimal', 'KEY_KPSLASH': 'NumpadDivide', 'KEY_KPENTER': 'NumpadEnter', 'KEY_ESC': 'Escape', 'KEY_F1': 'F1', 'KEY_F2': 'F2', 'KEY_F3': 'F3', 'KEY_F4': 'F4', 'KEY_F5': 'F5', 'KEY_F6': 'F6', 'KEY_F7': 'F7', 'KEY_F8': 'F8', 'KEY_F9': 'F9', 'KEY_F10': 'F10', 'KEY_F11': 'F11', 'KEY_F12': 'F12', 'KEY_F13': 'F13', 'KEY_F14': 'F14', 'KEY_F15': 'F15', 'KEY_F16': 'F16', 'KEY_F17': 'F17', 'KEY_F18': 'F18', 'KEY_F19': 'F19', 'KEY_F20': 'F20', 'KEY_F21': 'F21', 'KEY_F22': 'F22', 'KEY_F23': 'F23', 'KEY_BACKSPACE': 'Backspace', 'KEY_SPACE': 'Space', 'KEY_TAB': 'Tab', 'KEY_ENTER' : 'Enter', 'KEY_PAGEUP': 'PageUp', 'KEY_PAGEDOWN': 'PageDown', 'KEY_HOME': 'Home', 'KEY_END': 'End', 'KEY_INSERT': 'Insert', 'KEY_DELETE': 'Delete', 'KEY_UP': 'ArrowUp', 'KEY_DOWN': 'ArrowDown', 'KEY_LEFT': 'ArrowLeft', 'KEY_RIGHT': 'ArrowRight', 'KEY_NUMLOCK': 'NumLock', 'KEY_CAPSLOCK': 'CapsLock', 'KEY_SCROLLLOCK': 'ScrollLock', 'KEY_MOD_LMETA': 'MetaLeft', 'KEY_MOD_RMETA': 'MetaRight', # Because firefox must sending different 'KEY_MOD_LMETA': 'OSLeft', 'KEY_MOD_RMETA': 'OSRight', 'KEY_COMPOSE': 'ContextMenu', } 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' }