# ========================================================================== # # # # KVMD - The main Pi-KVM daemon. # # # # Copyright (C) 2018 Maxim Devaev # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program. If not, see . # # # # ========================================================================== # # https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values # https://github.com/NicoHood/HID/blob/master/src/KeyboardLayouts/ImprovedKeylayouts.h # https://gist.github.com/MightyPork/6da26e382a7ad91b5496ee55fdc73db2 # ----------------------------------------------------------------------------------- # Web | Serial code | Arduino key | OTG code + modifier flag # ----------------------------------------------------------------------------------- KeyA 1 KEY_A 0x04 - KeyB 2 KEY_B 0x05 - KeyC 3 KEY_C 0x06 - KeyD 4 KEY_D 0x07 - KeyE 5 KEY_E 0x08 - KeyF 6 KEY_F 0x09 - KeyG 7 KEY_G 0x0a - KeyH 8 KEY_H 0x0b - KeyI 9 KEY_I 0x0c - KeyJ 10 KEY_J 0x0d - KeyK 11 KEY_K 0x0e - KeyL 12 KEY_L 0x0f - KeyM 13 KEY_M 0x10 - KeyN 14 KEY_N 0x11 - KeyO 15 KEY_O 0x12 - KeyP 16 KEY_P 0x13 - KeyQ 17 KEY_Q 0x14 - KeyR 18 KEY_R 0x15 - KeyS 19 KEY_S 0x16 - KeyT 20 KEY_T 0x17 - KeyU 21 KEY_U 0x18 - KeyV 22 KEY_V 0x19 - KeyW 23 KEY_W 0x1a - KeyX 24 KEY_X 0x1b - KeyY 25 KEY_Y 0x1c - KeyZ 26 KEY_Z 0x1d - Digit1 27 KEY_1 0x1e - Digit2 28 KEY_2 0x1f - Digit3 29 KEY_3 0x20 - Digit4 30 KEY_4 0x21 - Digit5 31 KEY_5 0x22 - Digit6 32 KEY_6 0x23 - Digit7 33 KEY_7 0x24 - Digit8 34 KEY_8 0x25 - Digit9 35 KEY_9 0x26 - Digit0 36 KEY_0 0x27 - Enter 37 KEY_ENTER 0x28 - Escape 38 KEY_ESC 0x29 - Backspace 39 KEY_BACKSPACE 0x2a - Tab 40 KEY_TAB 0x2b - Space 41 KEY_SPACE 0x2c - Minus 42 KEY_MINUS 0x2d - Equal 43 KEY_EQUAL 0x2e - BracketLeft 44 KEY_LEFT_BRACE 0x2f - BracketRight 45 KEY_RIGHT_BRACE 0x30 - Backslash 46 KEY_BACKSLASH 0x31 - Semicolon 47 KEY_SEMICOLON 0x33 - Quote 48 KEY_QUOTE 0x34 - Backquote 49 KEY_TILDE 0x35 - Comma 50 KEY_COMMA 0x36 - Period 51 KEY_PERIOD 0x37 - Slash 52 KEY_SLASH 0x38 - CapsLock 53 KEY_CAPS_LOCK 0x39 - F1 54 KEY_F1 0x3a - F2 55 KEY_F2 0x3b - F3 56 KEY_F3 0x3c - F4 57 KEY_F4 0x3d - F5 58 KEY_F5 0x3e - F6 59 KEY_F6 0x3f - F7 60 KEY_F7 0x40 - F8 61 KEY_F8 0x41 - F9 62 KEY_F9 0x42 - F10 63 KEY_F10 0x43 - F11 64 KEY_F11 0x44 - F12 65 KEY_F12 0x45 - PrintScreen 66 KEY_PRINT 0x46 - Insert 67 KEY_INSERT 0x49 - Home 68 KEY_HOME 0x4a - PageUp 69 KEY_PAGE_UP 0x4b - Delete 70 KEY_DELETE 0x4c - End 71 KEY_END 0x4d - PageDown 72 KEY_PAGE_DOWN 0x4e - ArrowRight 73 KEY_RIGHT_ARROW 0x4f - ArrowLeft 74 KEY_LEFT_ARROW 0x50 - ArrowDown 75 KEY_DOWN_ARROW 0x51 - ArrowUp 76 KEY_UP_ARROW 0x52 - ControlLeft 77 KEY_LEFT_CTRL 0x01 m ShiftLeft 78 KEY_LEFT_SHIFT 0x02 m AltLeft 79 KEY_LEFT_ALT 0x04 m MetaLeft 80 KEY_LEFT_GUI 0x08 m ControlRight 81 KEY_RIGHT_CTRL 0x10 m ShiftRight 82 KEY_RIGHT_SHIFT 0x20 m AltRight 83 KEY_RIGHT_ALT 0x40 m MetaRight 84 KEY_RIGHT_GUI 0x80 m Pause 85 KEY_PAUSE 0x48 - ScrollLock 86 KEY_SCROLL_LOCK 0x47 - NumLock 87 KEY_NUM_LOCK 0x53 - ContextMenu 88 KEY_MENU 0x65 - # KEY_NON_US_NUM # KEYPAD_DIVIDE # KEYPAD_MULTIPLY # KEYPAD_SUBTRACT # KEYPAD_ADD # KEYPAD_ENTER # KEYPAD_1 # KEYPAD_2 # KEYPAD_3 # KEYPAD_4 # KEYPAD_5 # KEYPAD_6 # KEYPAD_7 # KEYPAD_8 # KEYPAD_9 # KEYPAD_0 # KEYPAD_DOT # KEY_NON_US