From: "Daniel P. Berrange" <berra...@redhat.com> To avoid the need for QEMU maintainers to have the perl Text::CSV module on their build machines, add pre-generated keymaps for each of the 6 conversions needed for QEMU's SDL driver --- ui/sdl_keymap_osx2rfb.c | 117 +++++++++++++++++++ ui/sdl_keymap_win322rfb.c | 140 +++++++++++++++++++++++ ui/sdl_keymap_xorgevdev2rfb.c | 240 +++++++++++++++++++++++++++++++++++++++ ui/sdl_keymap_xorgkbd2rfb.c | 112 ++++++++++++++++++ ui/sdl_keymap_xorgxquartz2rfb.c | 117 +++++++++++++++++++ ui/sdl_keymap_xorgxwin2rfb.c | 112 ++++++++++++++++++ 6 files changed, 838 insertions(+), 0 deletions(-) create mode 100644 ui/sdl_keymap_osx2rfb.c create mode 100644 ui/sdl_keymap_win322rfb.c create mode 100644 ui/sdl_keymap_xorgevdev2rfb.c create mode 100644 ui/sdl_keymap_xorgkbd2rfb.c create mode 100644 ui/sdl_keymap_xorgxquartz2rfb.c create mode 100644 ui/sdl_keymap_xorgxwin2rfb.c
diff --git a/ui/sdl_keymap_osx2rfb.c b/ui/sdl_keymap_osx2rfb.c new file mode 100644 index 0000000..62cd692 --- /dev/null +++ b/ui/sdl_keymap_osx2rfb.c @@ -0,0 +1,117 @@ +static const guint16 keymap_osx2rfb[] = { + [0x0] = 0x1e, /* 0 (ANSI_A) => 30 via 30 (KEY_A) */ + [0x1] = 0x1f, /* 1 (ANSI_S) => 31 via 31 (KEY_S) */ + [0x2] = 0x20, /* 2 (ANSI_D) => 32 via 32 (KEY_D) */ + [0x3] = 0x21, /* 3 (ANSI_F) => 33 via 33 (KEY_F) */ + [0x4] = 0x23, /* 4 (ANSI_H) => 35 via 35 (KEY_H) */ + [0x5] = 0x22, /* 5 (ANSI_G) => 34 via 34 (KEY_G) */ + [0x6] = 0x2c, /* 6 (ANSI_Z) => 44 via 44 (KEY_Z) */ + [0x7] = 0x2d, /* 7 (ANSI_X) => 45 via 45 (KEY_X) */ + [0x8] = 0x2e, /* 8 (ANSI_C) => 46 via 46 (KEY_C) */ + [0x9] = 0x2f, /* 9 (ANSI_V) => 47 via 47 (KEY_V) */ + [0xa] = 0x70, /* 10 (ISO_Section) => 112 via 170 (KEY_ISO) */ + [0xb] = 0x30, /* 11 (ANSI_B) => 48 via 48 (KEY_B) */ + [0xc] = 0x10, /* 12 (ANSI_Q) => 16 via 16 (KEY_Q) */ + [0xd] = 0x11, /* 13 (ANSI_W) => 17 via 17 (KEY_W) */ + [0xe] = 0x12, /* 14 (ANSI_E) => 18 via 18 (KEY_E) */ + [0xf] = 0x13, /* 15 (ANSI_R) => 19 via 19 (KEY_R) */ + [0x10] = 0x15, /* 16 (ANSI_Y) => 21 via 21 (KEY_Y) */ + [0x11] = 0x14, /* 17 (ANSI_T) => 20 via 20 (KEY_T) */ + [0x12] = 0x2, /* 18 (ANSI_1) => 2 via 2 (KEY_1) */ + [0x13] = 0x3, /* 19 (ANSI_2) => 3 via 3 (KEY_2) */ + [0x14] = 0x4, /* 20 (ANSI_3) => 4 via 4 (KEY_3) */ + [0x15] = 0x5, /* 21 (ANSI_4) => 5 via 5 (KEY_4) */ + [0x16] = 0x7, /* 22 (ANSI_6) => 7 via 7 (KEY_6) */ + [0x17] = 0x6, /* 23 (ANSI_5) => 6 via 6 (KEY_5) */ + [0x18] = 0xd, /* 24 (ANSI_Equal) => 13 via 13 (KEY_EQUAL) */ + [0x19] = 0xa, /* 25 (ANSI_9) => 10 via 10 (KEY_9) */ + [0x1a] = 0x8, /* 26 (ANSI_7) => 8 via 8 (KEY_7) */ + [0x1b] = 0xc, /* 27 (ANSI_Minus) => 12 via 12 (KEY_MINUS) */ + [0x1c] = 0x9, /* 28 (ANSI_8) => 9 via 9 (KEY_8) */ + [0x1d] = 0xb, /* 29 (ANSI_0) => 11 via 11 (KEY_0) */ + [0x1e] = 0x1b, /* 30 (ANSI_RightBracket) => 27 via 27 (KEY_RIGHTBRACE) */ + [0x1f] = 0x18, /* 31 (ANSI_O) => 24 via 24 (KEY_O) */ + [0x20] = 0x16, /* 32 (ANSI_U) => 22 via 22 (KEY_U) */ + [0x21] = 0x1a, /* 33 (ANSI_LeftBracket) => 26 via 26 (KEY_LEFTBRACE) */ + [0x22] = 0x17, /* 34 (ANSI_I) => 23 via 23 (KEY_I) */ + [0x23] = 0x19, /* 35 (ANSI_P) => 25 via 25 (KEY_P) */ + [0x24] = 0x1c, /* 36 (Return) => 28 via 28 (KEY_ENTER) */ + [0x25] = 0x26, /* 37 (ANSI_L) => 38 via 38 (KEY_L) */ + [0x26] = 0x24, /* 38 (ANSI_J) => 36 via 36 (KEY_J) */ + [0x27] = 0x28, /* 39 (ANSI_Quote) => 40 via 40 (KEY_APOSTROPHE) */ + [0x28] = 0x25, /* 40 (ANSI_K) => 37 via 37 (KEY_K) */ + [0x29] = 0x27, /* 41 (ANSI_Semicolon) => 39 via 39 (KEY_SEMICOLON) */ + [0x2a] = 0x2b, /* 42 (ANSI_Backslash) => 43 via 43 (KEY_BACKSLASH) */ + [0x2b] = 0x33, /* 43 (ANSI_Comma) => 51 via 51 (KEY_COMMA) */ + [0x2c] = 0x35, /* 44 (ANSI_Slash) => 53 via 53 (KEY_SLASH) */ + [0x2d] = 0x31, /* 45 (ANSI_N) => 49 via 49 (KEY_N) */ + [0x2e] = 0x32, /* 46 (ANSI_M) => 50 via 50 (KEY_M) */ + [0x2f] = 0x34, /* 47 (ANSI_Period) => 52 via 52 (KEY_DOT) */ + [0x30] = 0xf, /* 48 (Tab) => 15 via 15 (KEY_TAB) */ + [0x31] = 0x39, /* 49 (Space) => 57 via 57 (KEY_SPACE) */ + [0x32] = 0x29, /* 50 (ANSI_Grave) => 41 via 41 (KEY_GRAVE) */ + [0x33] = 0xe, /* 51 (Delete) => 14 via 14 (KEY_BACKSPACE) */ + [0x35] = 0x1, /* 53 (Escape) => 1 via 1 (KEY_ESC) */ + [0x37] = 0xdb, /* 55 (Command) => 219 via 125 (KEY_LEFTMETA) */ + [0x38] = 0x2a, /* 56 (Shift) => 42 via 42 (KEY_LEFTSHIFT) */ + [0x39] = 0x3a, /* 57 (CapsLock) => 58 via 58 (KEY_CAPSLOCK) */ + [0x3a] = 0x38, /* 58 (Option) => 56 via 56 (KEY_LEFTALT) */ + [0x3b] = 0x1d, /* 59 (Control) => 29 via 29 (KEY_LEFTCTRL) */ + [0x3c] = 0x36, /* 60 (RightShift) => 54 via 54 (KEY_RIGHTSHIFT) */ + [0x3d] = 0xb8, /* 61 (RightOption) => 184 via 100 (KEY_RIGHTALT) */ + [0x3e] = 0x9d, /* 62 (RightControl) => 157 via 97 (KEY_RIGHTCTRL) */ + [0x3f] = 0xdd, /* 63 (Function) => 221 via 127 (KEY_COMPOSE) */ + [0x40] = 0x83, /* 64 (F17) => 131 via 187 (KEY_F17) */ + [0x41] = 0x53, /* 65 (ANSI_KeypadDecimal) => 83 via 83 (KEY_KPDOT) */ + [0x43] = 0x37, /* 67 (ANSI_KeypadMultiply) => 55 via 55 (KEY_KPASTERISK) */ + [0x45] = 0x4e, /* 69 (ANSI_KeypadPlus) => 78 via 78 (KEY_KPPLUS) */ + [0x47] = 0x7e, /* 71 (ANSI_KeypadClear????) => 126 via 121 (KEY_KPCOMMA) */ + [0x48] = 0xb0, /* 72 (VolumeUp) => 176 via 115 (KEY_VOLUMEUP) */ + [0x49] = 0xae, /* 73 (VolumeDown) => 174 via 114 (KEY_VOLUMEDOWN) */ + [0x4a] = 0xa0, /* 74 (Mute) => 160 via 113 (KEY_MUTE) */ + [0x4b] = 0xb5, /* 75 (ANSI_KeypadDivide) => 181 via 98 (KEY_KPSLASH) */ + [0x4c] = 0x9c, /* 76 (ANSI_KeypadEnter) => 156 via 96 (KEY_KPENTER) */ + [0x4e] = 0x4a, /* 78 (ANSI_KeypadMinus) => 74 via 74 (KEY_KPMINUS) */ + [0x4f] = 0xf7, /* 79 (F18) => 247 via 188 (KEY_F18) */ + [0x50] = 0x84, /* 80 (F19) => 132 via 189 (KEY_F19) */ + [0x51] = 0x59, /* 81 (ANSI_KeypadEquals) => 89 via 117 (KEY_KPEQUAL) */ + [0x52] = 0x52, /* 82 (ANSI_Keypad0) => 82 via 82 (KEY_KP0) */ + [0x53] = 0x4f, /* 83 (ANSI_Keypad1) => 79 via 79 (KEY_KP1) */ + [0x54] = 0x50, /* 84 (ANSI_Keypad2) => 80 via 80 (KEY_KP2) */ + [0x55] = 0x51, /* 85 (ANSI_Keypad3) => 81 via 81 (KEY_KP3) */ + [0x56] = 0x4b, /* 86 (ANSI_Keypad4) => 75 via 75 (KEY_KP4) */ + [0x57] = 0x4c, /* 87 (ANSI_Keypad5) => 76 via 76 (KEY_KP5) */ + [0x58] = 0x4d, /* 88 (ANSI_Keypad6) => 77 via 77 (KEY_KP6) */ + [0x59] = 0x47, /* 89 (ANSI_Keypad7) => 71 via 71 (KEY_KP7) */ + [0x5a] = 0x5a, /* 90 (F20) => 90 via 190 (KEY_F20) */ + [0x5b] = 0x48, /* 91 (ANSI_Keypad8) => 72 via 72 (KEY_KP8) */ + [0x5c] = 0x49, /* 92 (ANSI_Keypad9) => 73 via 73 (KEY_KP9) */ + [0x5d] = 0x7d, /* 93 (JIS_Yen) => 125 via 124 (KEY_YEN) */ + [0x5f] = 0x5c, /* 95 (JIS_KeypadComma) => 92 via 95 (KEY_KPJPCOMMA) */ + [0x60] = 0x3f, /* 96 (F5) => 63 via 63 (KEY_F5) */ + [0x61] = 0x40, /* 97 (F6) => 64 via 64 (KEY_F6) */ + [0x62] = 0x41, /* 98 (F7) => 65 via 65 (KEY_F7) */ + [0x63] = 0x3d, /* 99 (F3) => 61 via 61 (KEY_F3) */ + [0x64] = 0x42, /* 100 (F8) => 66 via 66 (KEY_F8) */ + [0x65] = 0x43, /* 101 (F9) => 67 via 67 (KEY_F9) */ + [0x67] = 0x57, /* 103 (F11) => 87 via 87 (KEY_F11) */ + [0x68] = 0x78, /* 104 (JIS_Kana????) => 120 via 90 (KEY_KATAKANA) */ + [0x69] = 0x5d, /* 105 (F13) => 93 via 183 (KEY_F13) */ + [0x6a] = 0x55, /* 106 (F16) => 85 via 186 (KEY_F16) */ + [0x6b] = 0x5e, /* 107 (F14) => 94 via 184 (KEY_F14) */ + [0x6d] = 0x44, /* 109 (F10) => 68 via 68 (KEY_F10) */ + [0x6f] = 0x58, /* 111 (F12) => 88 via 88 (KEY_F12) */ + [0x71] = 0x5f, /* 113 (F15) => 95 via 185 (KEY_F15) */ + [0x73] = 0xc7, /* 115 (Home) => 199 via 102 (KEY_HOME) */ + [0x74] = 0xc9, /* 116 (PageUp) => 201 via 104 (KEY_PAGEUP) */ + [0x75] = 0xd3, /* 117 (ForwardDelete) => 211 via 111 (KEY_DELETE) */ + [0x76] = 0x3e, /* 118 (F4) => 62 via 62 (KEY_F4) */ + [0x77] = 0xcf, /* 119 (End) => 207 via 107 (KEY_END) */ + [0x78] = 0x3c, /* 120 (F2) => 60 via 60 (KEY_F2) */ + [0x79] = 0xd1, /* 121 (PageDown) => 209 via 109 (KEY_PAGEDOWN) */ + [0x7a] = 0x3b, /* 122 (F1) => 59 via 59 (KEY_F1) */ + [0x7b] = 0xcb, /* 123 (LeftArrow) => 203 via 105 (KEY_LEFT) */ + [0x7c] = 0xcd, /* 124 (RightArrow) => 205 via 106 (KEY_RIGHT) */ + [0x7d] = 0xd0, /* 125 (DownArrow) => 208 via 108 (KEY_DOWN) */ + [0x7e] = 0xc8, /* 126 (UpArrow) => 200 via 103 (KEY_UP) */ +}; diff --git a/ui/sdl_keymap_win322rfb.c b/ui/sdl_keymap_win322rfb.c new file mode 100644 index 0000000..74a01d1 --- /dev/null +++ b/ui/sdl_keymap_win322rfb.c @@ -0,0 +1,140 @@ +static const guint16 keymap_win322rfb[] = { + [0x8] = 0xe, /* 8 (VK_BACK) => 14 via 14 (KEY_BACKSPACE) */ + [0x9] = 0xf, /* 9 (VK_TAB) => 15 via 15 (KEY_TAB) */ + [0xd] = 0x1c, /* 13 (VK_RETURN) => 28 via 28 (KEY_ENTER) */ + [0x10] = 0x2a, /* 16 (VK_LSHIFT) => 42 via 42 (KEY_LEFTSHIFT) */ + [0x11] = 0x1d, /* 17 (VK_CONTROL) => 29 via 29 (KEY_LEFTCTRL) */ + [0x12] = 0x38, /* 18 (VK_MENU) => 56 via 56 (KEY_LEFTALT) */ + [0x13] = 0xc6, /* 19 (VK_PAUSE) => 198 via 119 (KEY_PAUSE) */ + [0x14] = 0x3a, /* 20 (VK_CAPITAL) => 58 via 58 (KEY_CAPSLOCK) */ + [0x19] = 0x8d, /* 25 (VK_HANJA) => 141 via 123 (KEY_HANJA) */ + [0x1b] = 0x1, /* 27 (VK_ESCAPE) => 1 via 1 (KEY_ESC) */ + [0x20] = 0x39, /* 32 (VK_SPACE) => 57 via 57 (KEY_SPACE) */ + [0x21] = 0xc9, /* 33 (VK_PRIOR) => 201 via 104 (KEY_PAGEUP) */ + [0x22] = 0xd1, /* 34 (VK_NEXT) => 209 via 109 (KEY_PAGEDOWN) */ + [0x23] = 0xcf, /* 35 (VK_END) => 207 via 107 (KEY_END) */ + [0x24] = 0xc7, /* 36 (VK_HOME) => 199 via 102 (KEY_HOME) */ + [0x25] = 0xcb, /* 37 (VK_LEFT) => 203 via 105 (KEY_LEFT) */ + [0x26] = 0xc8, /* 38 (VK_UP) => 200 via 103 (KEY_UP) */ + [0x27] = 0xcd, /* 39 (VK_RIGHT) => 205 via 106 (KEY_RIGHT) */ + [0x28] = 0xd0, /* 40 (VK_DOWN) => 208 via 108 (KEY_DOWN) */ + [0x2a] = 0xb9, /* 42 (VK_PRINT) => 185 via 210 (KEY_PRINT) */ + [0x2c] = 0x54, /* 44 (VK_SNAPSHOT ???) => 84 via 99 (KEY_SYSRQ) */ + [0x2d] = 0xd2, /* 45 (VK_INSERT) => 210 via 110 (KEY_INSERT) */ + [0x2e] = 0xd3, /* 46 (VK_DELETE) => 211 via 111 (KEY_DELETE) */ + [0x2f] = 0xf5, /* 47 (VK_HELP) => 245 via 138 (KEY_HELP) */ + [0x30] = 0xb, /* 48 (VK_0) => 11 via 11 (KEY_0) */ + [0x31] = 0x2, /* 49 (VK_1) => 2 via 2 (KEY_1) */ + [0x32] = 0x3, /* 50 (VK_2) => 3 via 3 (KEY_2) */ + [0x33] = 0x4, /* 51 (VK_3) => 4 via 4 (KEY_3) */ + [0x34] = 0x5, /* 52 (VK_4) => 5 via 5 (KEY_4) */ + [0x35] = 0x6, /* 53 (VK_5) => 6 via 6 (KEY_5) */ + [0x36] = 0x7, /* 54 (VK_6) => 7 via 7 (KEY_6) */ + [0x37] = 0x8, /* 55 (VK_7) => 8 via 8 (KEY_7) */ + [0x38] = 0x9, /* 56 (VK_8) => 9 via 9 (KEY_8) */ + [0x39] = 0xa, /* 57 (VK_9) => 10 via 10 (KEY_9) */ + [0x41] = 0x1e, /* 65 (VK_A) => 30 via 30 (KEY_A) */ + [0x42] = 0x30, /* 66 (VK_B) => 48 via 48 (KEY_B) */ + [0x43] = 0x2e, /* 67 (VK_C) => 46 via 46 (KEY_C) */ + [0x44] = 0x20, /* 68 (VK_D) => 32 via 32 (KEY_D) */ + [0x45] = 0x12, /* 69 (VK_E) => 18 via 18 (KEY_E) */ + [0x46] = 0x21, /* 70 (VK_F) => 33 via 33 (KEY_F) */ + [0x47] = 0x22, /* 71 (VK_G) => 34 via 34 (KEY_G) */ + [0x48] = 0x23, /* 72 (VK_H) => 35 via 35 (KEY_H) */ + [0x49] = 0x17, /* 73 (VK_I) => 23 via 23 (KEY_I) */ + [0x4a] = 0x24, /* 74 (VK_J) => 36 via 36 (KEY_J) */ + [0x4b] = 0x25, /* 75 (VK_K) => 37 via 37 (KEY_K) */ + [0x4c] = 0x26, /* 76 (VK_L) => 38 via 38 (KEY_L) */ + [0x4d] = 0x32, /* 77 (VK_M) => 50 via 50 (KEY_M) */ + [0x4e] = 0x31, /* 78 (VK_N) => 49 via 49 (KEY_N) */ + [0x4f] = 0x18, /* 79 (VK_O) => 24 via 24 (KEY_O) */ + [0x50] = 0x19, /* 80 (VK_P) => 25 via 25 (KEY_P) */ + [0x51] = 0x10, /* 81 (VK_Q) => 16 via 16 (KEY_Q) */ + [0x52] = 0x13, /* 82 (VK_R) => 19 via 19 (KEY_R) */ + [0x53] = 0x1f, /* 83 (VK_S) => 31 via 31 (KEY_S) */ + [0x54] = 0x14, /* 84 (VK_T) => 20 via 20 (KEY_T) */ + [0x55] = 0x16, /* 85 (VK_U) => 22 via 22 (KEY_U) */ + [0x56] = 0x2f, /* 86 (VK_V) => 47 via 47 (KEY_V) */ + [0x57] = 0x11, /* 87 (VK_W) => 17 via 17 (KEY_W) */ + [0x58] = 0x2d, /* 88 (VK_X) => 45 via 45 (KEY_X) */ + [0x59] = 0x15, /* 89 (VK_Y) => 21 via 21 (KEY_Y) */ + [0x5a] = 0x2c, /* 90 (VK_Z) => 44 via 44 (KEY_Z) */ + [0x5b] = 0xdb, /* 91 (VK_LWIN) => 219 via 125 (KEY_LEFTMETA) */ + [0x5c] = 0xdc, /* 92 (VK_RWIN) => 220 via 126 (KEY_RIGHTMETA) */ + [0x5d] = 0xdd, /* 93 (VK_APPS) => 221 via 127 (KEY_COMPOSE) */ + [0x5f] = 0xdf, /* 95 (VK_SLEEP) => 223 via 142 (KEY_SLEEP) */ + [0x60] = 0x52, /* 96 (VK_NUMPAD0) => 82 via 82 (KEY_KP0) */ + [0x61] = 0x4f, /* 97 (VK_NUMPAD1) => 79 via 79 (KEY_KP1) */ + [0x62] = 0x50, /* 98 (VK_NUMPAD2) => 80 via 80 (KEY_KP2) */ + [0x63] = 0x51, /* 99 (VK_NUMPAD3) => 81 via 81 (KEY_KP3) */ + [0x64] = 0x4b, /* 100 (VK_NUMPAD4) => 75 via 75 (KEY_KP4) */ + [0x65] = 0x4c, /* 101 (VK_NUMPAD5) => 76 via 76 (KEY_KP5) */ + [0x66] = 0x4d, /* 102 (VK_NUMPAD6) => 77 via 77 (KEY_KP6) */ + [0x67] = 0x47, /* 103 (VK_NUMPAD7) => 71 via 71 (KEY_KP7) */ + [0x68] = 0x48, /* 104 (VK_NUMPAD8) => 72 via 72 (KEY_KP8) */ + [0x69] = 0x49, /* 105 (VK_NUMPAD9) => 73 via 73 (KEY_KP9) */ + [0x6a] = 0x37, /* 106 (VK_MULTIPLY) => 55 via 55 (KEY_KPASTERISK) */ + [0x6b] = 0x4e, /* 107 (VK_ADD) => 78 via 78 (KEY_KPPLUS) */ + [0x6c] = 0x7e, /* 108 (VK_SEPARATOR??) => 126 via 121 (KEY_KPCOMMA) */ + [0x6d] = 0x4a, /* 109 (VK_SUBTRACT) => 74 via 74 (KEY_KPMINUS) */ + [0x6e] = 0x53, /* 110 (VK_DECIMAL) => 83 via 83 (KEY_KPDOT) */ + [0x6f] = 0xb5, /* 111 (VK_DIVIDE) => 181 via 98 (KEY_KPSLASH) */ + [0x70] = 0x3b, /* 112 (VK_F1) => 59 via 59 (KEY_F1) */ + [0x71] = 0x3c, /* 113 (VK_F2) => 60 via 60 (KEY_F2) */ + [0x72] = 0x3d, /* 114 (VK_F3) => 61 via 61 (KEY_F3) */ + [0x73] = 0x3e, /* 115 (VK_F4) => 62 via 62 (KEY_F4) */ + [0x74] = 0x3f, /* 116 (VK_F5) => 63 via 63 (KEY_F5) */ + [0x75] = 0x40, /* 117 (VK_F6) => 64 via 64 (KEY_F6) */ + [0x76] = 0x41, /* 118 (VK_F7) => 65 via 65 (KEY_F7) */ + [0x77] = 0x42, /* 119 (VK_F8) => 66 via 66 (KEY_F8) */ + [0x78] = 0x43, /* 120 (VK_F9) => 67 via 67 (KEY_F9) */ + [0x79] = 0x44, /* 121 (VK_F10) => 68 via 68 (KEY_F10) */ + [0x7a] = 0x57, /* 122 (VK_F11) => 87 via 87 (KEY_F11) */ + [0x7b] = 0x58, /* 123 (VK_F12) => 88 via 88 (KEY_F12) */ + [0x7c] = 0x5d, /* 124 (VK_F13) => 93 via 183 (KEY_F13) */ + [0x7d] = 0x5e, /* 125 (VK_F14) => 94 via 184 (KEY_F14) */ + [0x7e] = 0x5f, /* 126 (VK_F15) => 95 via 185 (KEY_F15) */ + [0x7f] = 0x55, /* 127 (VK_F16) => 85 via 186 (KEY_F16) */ + [0x80] = 0x83, /* 128 (VK_F17) => 131 via 187 (KEY_F17) */ + [0x81] = 0xf7, /* 129 (VK_F18) => 247 via 188 (KEY_F18) */ + [0x82] = 0x84, /* 130 (VK_F19) => 132 via 189 (KEY_F19) */ + [0x83] = 0x5a, /* 131 (VK_F20) => 90 via 190 (KEY_F20) */ + [0x84] = 0x74, /* 132 (VK_F21) => 116 via 191 (KEY_F21) */ + [0x85] = 0xf9, /* 133 (VK_F22) => 249 via 192 (KEY_F22) */ + [0x86] = 0x6d, /* 134 (VK_F23) => 109 via 193 (KEY_F23) */ + [0x87] = 0x6f, /* 135 (VK_F24) => 111 via 194 (KEY_F24) */ + [0x90] = 0x45, /* 144 (VK_NUMLOCK) => 69 via 69 (KEY_NUMLOCK) */ + [0x91] = 0x46, /* 145 (VK_SCROLL) => 70 via 70 (KEY_SCROLLLOCK) */ + [0xa0] = 0x2a, /* 160 (VK_LSHIFT) => 42 via 42 (KEY_LEFTSHIFT) */ + [0xa1] = 0x36, /* 161 (VK_RSHIFT) => 54 via 54 (KEY_RIGHTSHIFT) */ + [0xa2] = 0x1d, /* 162 (VK_CONTROL) => 29 via 29 (KEY_LEFTCTRL) */ + [0xa3] = 0x9d, /* 163 (VK_RCONTROL) => 157 via 97 (KEY_RIGHTCTRL) */ + [0xa4] = 0x38, /* 164 (VK_MENU) => 56 via 56 (KEY_LEFTALT) */ + [0xa5] = 0xb8, /* 165 (VK_RMENU) => 184 via 100 (KEY_RIGHTALT) */ + [0xa6] = 0xea, /* 166 (VK_BROWSER_BACK) => 234 via 158 (KEY_BACK) */ + [0xa7] = 0xe9, /* 167 (VK_BROWSER_FORWARD) => 233 via 159 (KEY_FORWARD) */ + [0xa8] = 0xe7, /* 168 (VK_BROWSER_REFRESH) => 231 via 173 (KEY_REFRESH) */ + [0xa9] = 0xe8, /* 169 (VK_BROWSER_STOP) => 232 via 128 (KEY_STOP) */ + [0xaa] = 0xe5, /* 170 (VK_BROWSER_SEARCH) => 229 via 217 (KEY_SEARCH) */ + [0xac] = 0xb2, /* 172 (VK_BROWSER_HOME) => 178 via 172 (KEY_HOMEPAGE) */ + [0xad] = 0xa0, /* 173 (VK_VOLUME_MUTE) => 160 via 113 (KEY_MUTE) */ + [0xae] = 0xae, /* 174 (VK_VOLUME_DOWN) => 174 via 114 (KEY_VOLUMEDOWN) */ + [0xaf] = 0xb0, /* 175 (VK_VOLUME_UP) => 176 via 115 (KEY_VOLUMEUP) */ + [0xb0] = 0x99, /* 176 (VK_MEDIA_NEXT_TRACK) => 153 via 163 (KEY_NEXTSONG) */ + [0xb1] = 0x90, /* 177 (VK_MEDIA_PREV_TRACK) => 144 via 165 (KEY_PREVIOUSSONG) */ + [0xb2] = 0xa4, /* 178 (VK_MEDIA_STOP) => 164 via 166 (KEY_STOPCD) */ + [0xb3] = 0xa2, /* 179 (VK_MEDIA_PLAY_PAUSE) => 162 via 164 (KEY_PLAYPAUSE) */ + [0xb4] = 0xbf, /* 180 (VK_LAUNCH_MAIL) => 191 via 215 (KEY_EMAIL) */ + [0xba] = 0x27, /* 186 (VK_OEM_1) => 39 via 39 (KEY_SEMICOLON) */ + [0xbb] = 0xd, /* 187 (VK_OEM_PLUS) => 13 via 13 (KEY_EQUAL) */ + [0xbc] = 0x33, /* 188 (VK_OEM_COMMA) => 51 via 51 (KEY_COMMA) */ + [0xbd] = 0xc, /* 189 (VK_OEM_MINUS) => 12 via 12 (KEY_MINUS) */ + [0xbe] = 0x34, /* 190 (VK_OEM_PERIOD) => 52 via 52 (KEY_DOT) */ + [0xbf] = 0x35, /* 191 (VK_OEM_2) => 53 via 53 (KEY_SLASH) */ + [0xc0] = 0x29, /* 192 (VK_OEM_3) => 41 via 41 (KEY_GRAVE) */ + [0xdb] = 0x1a, /* 219 (VK_OEM_4) => 26 via 26 (KEY_LEFTBRACE) */ + [0xdc] = 0x2b, /* 220 (VK_OEM_5) => 43 via 43 (KEY_BACKSLASH) */ + [0xdd] = 0x1b, /* 221 (VK_OEM_6) => 27 via 27 (KEY_RIGHTBRACE) */ + [0xe1] = 0x56, /* 225 (VK_OEM_102) => 86 via 86 (KEY_102ND) */ + [0xfa] = 0xb3, /* 250 (VK_PLAY) => 179 via 207 (KEY_PLAY) */ +}; diff --git a/ui/sdl_keymap_xorgevdev2rfb.c b/ui/sdl_keymap_xorgevdev2rfb.c new file mode 100644 index 0000000..6f12b32 --- /dev/null +++ b/ui/sdl_keymap_xorgevdev2rfb.c @@ -0,0 +1,240 @@ +static const guint16 keymap_xorgevdev2rfb[] = { + [0x9] = 0x1, /* 9 => 1 via 1 (KEY_ESC) */ + [0xa] = 0x2, /* 10 => 2 via 2 (KEY_1) */ + [0xb] = 0x3, /* 11 => 3 via 3 (KEY_2) */ + [0xc] = 0x4, /* 12 => 4 via 4 (KEY_3) */ + [0xd] = 0x5, /* 13 => 5 via 5 (KEY_4) */ + [0xe] = 0x6, /* 14 => 6 via 6 (KEY_5) */ + [0xf] = 0x7, /* 15 => 7 via 7 (KEY_6) */ + [0x10] = 0x8, /* 16 => 8 via 8 (KEY_7) */ + [0x11] = 0x9, /* 17 => 9 via 9 (KEY_8) */ + [0x12] = 0xa, /* 18 => 10 via 10 (KEY_9) */ + [0x13] = 0xb, /* 19 => 11 via 11 (KEY_0) */ + [0x14] = 0xc, /* 20 => 12 via 12 (KEY_MINUS) */ + [0x15] = 0xd, /* 21 => 13 via 13 (KEY_EQUAL) */ + [0x16] = 0xe, /* 22 => 14 via 14 (KEY_BACKSPACE) */ + [0x17] = 0xf, /* 23 => 15 via 15 (KEY_TAB) */ + [0x18] = 0x10, /* 24 => 16 via 16 (KEY_Q) */ + [0x19] = 0x11, /* 25 => 17 via 17 (KEY_W) */ + [0x1a] = 0x12, /* 26 => 18 via 18 (KEY_E) */ + [0x1b] = 0x13, /* 27 => 19 via 19 (KEY_R) */ + [0x1c] = 0x14, /* 28 => 20 via 20 (KEY_T) */ + [0x1d] = 0x15, /* 29 => 21 via 21 (KEY_Y) */ + [0x1e] = 0x16, /* 30 => 22 via 22 (KEY_U) */ + [0x1f] = 0x17, /* 31 => 23 via 23 (KEY_I) */ + [0x20] = 0x18, /* 32 => 24 via 24 (KEY_O) */ + [0x21] = 0x19, /* 33 => 25 via 25 (KEY_P) */ + [0x22] = 0x1a, /* 34 => 26 via 26 (KEY_LEFTBRACE) */ + [0x23] = 0x1b, /* 35 => 27 via 27 (KEY_RIGHTBRACE) */ + [0x24] = 0x1c, /* 36 => 28 via 28 (KEY_ENTER) */ + [0x25] = 0x1d, /* 37 => 29 via 29 (KEY_LEFTCTRL) */ + [0x26] = 0x1e, /* 38 => 30 via 30 (KEY_A) */ + [0x27] = 0x1f, /* 39 => 31 via 31 (KEY_S) */ + [0x28] = 0x20, /* 40 => 32 via 32 (KEY_D) */ + [0x29] = 0x21, /* 41 => 33 via 33 (KEY_F) */ + [0x2a] = 0x22, /* 42 => 34 via 34 (KEY_G) */ + [0x2b] = 0x23, /* 43 => 35 via 35 (KEY_H) */ + [0x2c] = 0x24, /* 44 => 36 via 36 (KEY_J) */ + [0x2d] = 0x25, /* 45 => 37 via 37 (KEY_K) */ + [0x2e] = 0x26, /* 46 => 38 via 38 (KEY_L) */ + [0x2f] = 0x27, /* 47 => 39 via 39 (KEY_SEMICOLON) */ + [0x30] = 0x28, /* 48 => 40 via 40 (KEY_APOSTROPHE) */ + [0x31] = 0x29, /* 49 => 41 via 41 (KEY_GRAVE) */ + [0x32] = 0x2a, /* 50 => 42 via 42 (KEY_LEFTSHIFT) */ + [0x33] = 0x2b, /* 51 => 43 via 43 (KEY_BACKSLASH) */ + [0x34] = 0x2c, /* 52 => 44 via 44 (KEY_Z) */ + [0x35] = 0x2d, /* 53 => 45 via 45 (KEY_X) */ + [0x36] = 0x2e, /* 54 => 46 via 46 (KEY_C) */ + [0x37] = 0x2f, /* 55 => 47 via 47 (KEY_V) */ + [0x38] = 0x30, /* 56 => 48 via 48 (KEY_B) */ + [0x39] = 0x31, /* 57 => 49 via 49 (KEY_N) */ + [0x3a] = 0x32, /* 58 => 50 via 50 (KEY_M) */ + [0x3b] = 0x33, /* 59 => 51 via 51 (KEY_COMMA) */ + [0x3c] = 0x34, /* 60 => 52 via 52 (KEY_DOT) */ + [0x3d] = 0x35, /* 61 => 53 via 53 (KEY_SLASH) */ + [0x3e] = 0x36, /* 62 => 54 via 54 (KEY_RIGHTSHIFT) */ + [0x3f] = 0x37, /* 63 => 55 via 55 (KEY_KPASTERISK) */ + [0x40] = 0x38, /* 64 => 56 via 56 (KEY_LEFTALT) */ + [0x41] = 0x39, /* 65 => 57 via 57 (KEY_SPACE) */ + [0x42] = 0x3a, /* 66 => 58 via 58 (KEY_CAPSLOCK) */ + [0x43] = 0x3b, /* 67 => 59 via 59 (KEY_F1) */ + [0x44] = 0x3c, /* 68 => 60 via 60 (KEY_F2) */ + [0x45] = 0x3d, /* 69 => 61 via 61 (KEY_F3) */ + [0x46] = 0x3e, /* 70 => 62 via 62 (KEY_F4) */ + [0x47] = 0x3f, /* 71 => 63 via 63 (KEY_F5) */ + [0x48] = 0x40, /* 72 => 64 via 64 (KEY_F6) */ + [0x49] = 0x41, /* 73 => 65 via 65 (KEY_F7) */ + [0x4a] = 0x42, /* 74 => 66 via 66 (KEY_F8) */ + [0x4b] = 0x43, /* 75 => 67 via 67 (KEY_F9) */ + [0x4c] = 0x44, /* 76 => 68 via 68 (KEY_F10) */ + [0x4d] = 0x45, /* 77 => 69 via 69 (KEY_NUMLOCK) */ + [0x4e] = 0x46, /* 78 => 70 via 70 (KEY_SCROLLLOCK) */ + [0x4f] = 0x47, /* 79 => 71 via 71 (KEY_KP7) */ + [0x50] = 0x48, /* 80 => 72 via 72 (KEY_KP8) */ + [0x51] = 0x49, /* 81 => 73 via 73 (KEY_KP9) */ + [0x52] = 0x4a, /* 82 => 74 via 74 (KEY_KPMINUS) */ + [0x53] = 0x4b, /* 83 => 75 via 75 (KEY_KP4) */ + [0x54] = 0x4c, /* 84 => 76 via 76 (KEY_KP5) */ + [0x55] = 0x4d, /* 85 => 77 via 77 (KEY_KP6) */ + [0x56] = 0x4e, /* 86 => 78 via 78 (KEY_KPPLUS) */ + [0x57] = 0x4f, /* 87 => 79 via 79 (KEY_KP1) */ + [0x58] = 0x50, /* 88 => 80 via 80 (KEY_KP2) */ + [0x59] = 0x51, /* 89 => 81 via 81 (KEY_KP3) */ + [0x5a] = 0x52, /* 90 => 82 via 82 (KEY_KP0) */ + [0x5b] = 0x53, /* 91 => 83 via 83 (KEY_KPDOT) */ + [0x5c] = 0x54, /* 92 => 84 via 84 */ + [0x5d] = 0x76, /* 93 => 118 via 85 (KEY_ZENKAKUHANKAKU) */ + [0x5e] = 0x56, /* 94 => 86 via 86 (KEY_102ND) */ + [0x5f] = 0x57, /* 95 => 87 via 87 (KEY_F11) */ + [0x60] = 0x58, /* 96 => 88 via 88 (KEY_F12) */ + [0x61] = 0x73, /* 97 => 115 via 89 (KEY_RO) */ + [0x62] = 0x78, /* 98 => 120 via 90 (KEY_KATAKANA) */ + [0x63] = 0x77, /* 99 => 119 via 91 (KEY_HIRAGANA) */ + [0x64] = 0x79, /* 100 => 121 via 92 (KEY_HENKAN) */ + [0x65] = 0x70, /* 101 => 112 via 93 (KEY_KATAKANAHIRAGANA) */ + [0x66] = 0x7b, /* 102 => 123 via 94 (KEY_MUHENKAN) */ + [0x67] = 0x5c, /* 103 => 92 via 95 (KEY_KPJPCOMMA) */ + [0x68] = 0x9c, /* 104 => 156 via 96 (KEY_KPENTER) */ + [0x69] = 0x9d, /* 105 => 157 via 97 (KEY_RIGHTCTRL) */ + [0x6a] = 0xb5, /* 106 => 181 via 98 (KEY_KPSLASH) */ + [0x6b] = 0x54, /* 107 => 84 via 99 (KEY_SYSRQ) */ + [0x6c] = 0xb8, /* 108 => 184 via 100 (KEY_RIGHTALT) */ + [0x6d] = 0x5b, /* 109 => 91 via 101 (KEY_LINEFEED) */ + [0x6e] = 0xc7, /* 110 => 199 via 102 (KEY_HOME) */ + [0x6f] = 0xc8, /* 111 => 200 via 103 (KEY_UP) */ + [0x70] = 0xc9, /* 112 => 201 via 104 (KEY_PAGEUP) */ + [0x71] = 0xcb, /* 113 => 203 via 105 (KEY_LEFT) */ + [0x72] = 0xcd, /* 114 => 205 via 106 (KEY_RIGHT) */ + [0x73] = 0xcf, /* 115 => 207 via 107 (KEY_END) */ + [0x74] = 0xd0, /* 116 => 208 via 108 (KEY_DOWN) */ + [0x75] = 0xd1, /* 117 => 209 via 109 (KEY_PAGEDOWN) */ + [0x76] = 0xd2, /* 118 => 210 via 110 (KEY_INSERT) */ + [0x77] = 0xd3, /* 119 => 211 via 111 (KEY_DELETE) */ + [0x78] = 0xef, /* 120 => 239 via 112 (KEY_MACRO) */ + [0x79] = 0xa0, /* 121 => 160 via 113 (KEY_MUTE) */ + [0x7a] = 0xae, /* 122 => 174 via 114 (KEY_VOLUMEDOWN) */ + [0x7b] = 0xb0, /* 123 => 176 via 115 (KEY_VOLUMEUP) */ + [0x7c] = 0xde, /* 124 => 222 via 116 (KEY_POWER) */ + [0x7d] = 0x59, /* 125 => 89 via 117 (KEY_KPEQUAL) */ + [0x7e] = 0xce, /* 126 => 206 via 118 (KEY_KPPLUSMINUS) */ + [0x7f] = 0xc6, /* 127 => 198 via 119 (KEY_PAUSE) */ + [0x80] = 0x8b, /* 128 => 139 via 120 (KEY_SCALE) */ + [0x81] = 0x7e, /* 129 => 126 via 121 (KEY_KPCOMMA) */ + [0x83] = 0x8d, /* 131 => 141 via 123 (KEY_HANJA) */ + [0x84] = 0x7d, /* 132 => 125 via 124 (KEY_YEN) */ + [0x85] = 0xdb, /* 133 => 219 via 125 (KEY_LEFTMETA) */ + [0x86] = 0xdc, /* 134 => 220 via 126 (KEY_RIGHTMETA) */ + [0x87] = 0xdd, /* 135 => 221 via 127 (KEY_COMPOSE) */ + [0x88] = 0xe8, /* 136 => 232 via 128 (KEY_STOP) */ + [0x89] = 0x85, /* 137 => 133 via 129 (KEY_AGAIN) */ + [0x8a] = 0x86, /* 138 => 134 via 130 (KEY_PROPS) */ + [0x8b] = 0x87, /* 139 => 135 via 131 (KEY_UNDO) */ + [0x8c] = 0x8c, /* 140 => 140 via 132 (KEY_FRONT) */ + [0x8d] = 0xf8, /* 141 => 248 via 133 (KEY_COPY) */ + [0x8e] = 0x64, /* 142 => 100 via 134 (KEY_OPEN) */ + [0x8f] = 0x65, /* 143 => 101 via 135 (KEY_PASTE) */ + [0x90] = 0xc1, /* 144 => 193 via 136 (KEY_FIND) */ + [0x91] = 0xbc, /* 145 => 188 via 137 (KEY_CUT) */ + [0x92] = 0xf5, /* 146 => 245 via 138 (KEY_HELP) */ + [0x93] = 0x9e, /* 147 => 158 via 139 (KEY_MENU) */ + [0x94] = 0xa1, /* 148 => 161 via 140 (KEY_CALC) */ + [0x95] = 0x66, /* 149 => 102 via 141 (KEY_SETUP) */ + [0x96] = 0xdf, /* 150 => 223 via 142 (KEY_SLEEP) */ + [0x97] = 0xe3, /* 151 => 227 via 143 (KEY_WAKEUP) */ + [0x98] = 0x67, /* 152 => 103 via 144 (KEY_FILE) */ + [0x99] = 0x68, /* 153 => 104 via 145 (KEY_SENDFILE) */ + [0x9a] = 0x69, /* 154 => 105 via 146 (KEY_DELETEFILE) */ + [0x9b] = 0x93, /* 155 => 147 via 147 (KEY_XFER) */ + [0x9c] = 0x9f, /* 156 => 159 via 148 (KEY_PROG1) */ + [0x9d] = 0x97, /* 157 => 151 via 149 (KEY_PROG2) */ + [0x9e] = 0x82, /* 158 => 130 via 150 (KEY_WWW) */ + [0x9f] = 0x6a, /* 159 => 106 via 151 (KEY_MSDOS) */ + [0xa0] = 0x92, /* 160 => 146 via 152 (KEY_SCREENLOCK) */ + [0xa1] = 0x6b, /* 161 => 107 via 153 (KEY_DIRECTION) */ + [0xa2] = 0xa6, /* 162 => 166 via 154 (KEY_CYCLEWINDOWS) */ + [0xa3] = 0xec, /* 163 => 236 via 155 (KEY_MAIL) */ + [0xa4] = 0xe6, /* 164 => 230 via 156 (KEY_BOOKMARKS) */ + [0xa5] = 0xeb, /* 165 => 235 via 157 (KEY_COMPUTER) */ + [0xa6] = 0xea, /* 166 => 234 via 158 (KEY_BACK) */ + [0xa7] = 0xe9, /* 167 => 233 via 159 (KEY_FORWARD) */ + [0xa8] = 0xa3, /* 168 => 163 via 160 (KEY_CLOSECD) */ + [0xa9] = 0x6c, /* 169 => 108 via 161 (KEY_EJECTCD) */ + [0xaa] = 0xfd, /* 170 => 253 via 162 (KEY_EJECTCLOSECD) */ + [0xab] = 0x99, /* 171 => 153 via 163 (KEY_NEXTSONG) */ + [0xac] = 0xa2, /* 172 => 162 via 164 (KEY_PLAYPAUSE) */ + [0xad] = 0x90, /* 173 => 144 via 165 (KEY_PREVIOUSSONG) */ + [0xae] = 0xa4, /* 174 => 164 via 166 (KEY_STOPCD) */ + [0xaf] = 0xb1, /* 175 => 177 via 167 (KEY_RECORD) */ + [0xb0] = 0x98, /* 176 => 152 via 168 (KEY_REWIND) */ + [0xb1] = 0x63, /* 177 => 99 via 169 (KEY_PHONE) */ + [0xb2] = 0x70, /* 178 => 112 via 170 (KEY_ISO) */ + [0xb3] = 0x81, /* 179 => 129 via 171 (KEY_CONFIG) */ + [0xb4] = 0xb2, /* 180 => 178 via 172 (KEY_HOMEPAGE) */ + [0xb5] = 0xe7, /* 181 => 231 via 173 (KEY_REFRESH) */ + [0xb6] = 0x71, /* 182 => 113 via 174 (KEY_EXIT) */ + [0xb7] = 0x72, /* 183 => 114 via 175 (KEY_MOVE) */ + [0xb8] = 0x88, /* 184 => 136 via 176 (KEY_EDIT) */ + [0xb9] = 0x75, /* 185 => 117 via 177 (KEY_SCROLLUP) */ + [0xba] = 0x8f, /* 186 => 143 via 178 (KEY_SCROLLDOWN) */ + [0xbb] = 0xf6, /* 187 => 246 via 179 (KEY_KPLEFTPAREN) */ + [0xbc] = 0xfb, /* 188 => 251 via 180 (KEY_KPRIGHTPAREN) */ + [0xbd] = 0x89, /* 189 => 137 via 181 (KEY_NEW) */ + [0xbe] = 0x8a, /* 190 => 138 via 182 (KEY_REDO) */ + [0xbf] = 0x5d, /* 191 => 93 via 183 (KEY_F13) */ + [0xc0] = 0x5e, /* 192 => 94 via 184 (KEY_F14) */ + [0xc1] = 0x5f, /* 193 => 95 via 185 (KEY_F15) */ + [0xc2] = 0x55, /* 194 => 85 via 186 (KEY_F16) */ + [0xc3] = 0x83, /* 195 => 131 via 187 (KEY_F17) */ + [0xc4] = 0xf7, /* 196 => 247 via 188 (KEY_F18) */ + [0xc5] = 0x84, /* 197 => 132 via 189 (KEY_F19) */ + [0xc6] = 0x5a, /* 198 => 90 via 190 (KEY_F20) */ + [0xc7] = 0x74, /* 199 => 116 via 191 (KEY_F21) */ + [0xc8] = 0xf9, /* 200 => 249 via 192 (KEY_F22) */ + [0xc9] = 0x6d, /* 201 => 109 via 193 (KEY_F23) */ + [0xca] = 0x6f, /* 202 => 111 via 194 (KEY_F24) */ + [0xcb] = 0x95, /* 203 => 149 via 195 */ + [0xcc] = 0x96, /* 204 => 150 via 196 */ + [0xcd] = 0x9a, /* 205 => 154 via 197 */ + [0xce] = 0x9b, /* 206 => 155 via 198 */ + [0xcf] = 0xa7, /* 207 => 167 via 199 */ + [0xd0] = 0xa8, /* 208 => 168 via 200 (KEY_PLAYCD) */ + [0xd1] = 0xa9, /* 209 => 169 via 201 (KEY_PAUSECD) */ + [0xd2] = 0xab, /* 210 => 171 via 202 (KEY_PROG3) */ + [0xd3] = 0xac, /* 211 => 172 via 203 (KEY_PROG4) */ + [0xd4] = 0xad, /* 212 => 173 via 204 (KEY_DASHBOARD) */ + [0xd5] = 0xa5, /* 213 => 165 via 205 (KEY_SUSPEND) */ + [0xd6] = 0xaf, /* 214 => 175 via 206 (KEY_CLOSE) */ + [0xd7] = 0xb3, /* 215 => 179 via 207 (KEY_PLAY) */ + [0xd8] = 0xb4, /* 216 => 180 via 208 (KEY_FASTFORWARD) */ + [0xd9] = 0xb6, /* 217 => 182 via 209 (KEY_BASSBOOST) */ + [0xda] = 0xb9, /* 218 => 185 via 210 (KEY_PRINT) */ + [0xdb] = 0xba, /* 219 => 186 via 211 (KEY_HP) */ + [0xdc] = 0xbb, /* 220 => 187 via 212 (KEY_CAMERA) */ + [0xdd] = 0xbd, /* 221 => 189 via 213 (KEY_SOUND) */ + [0xde] = 0xbe, /* 222 => 190 via 214 (KEY_QUESTION) */ + [0xdf] = 0xbf, /* 223 => 191 via 215 (KEY_EMAIL) */ + [0xe0] = 0xc0, /* 224 => 192 via 216 (KEY_CHAT) */ + [0xe1] = 0xe5, /* 225 => 229 via 217 (KEY_SEARCH) */ + [0xe2] = 0xc2, /* 226 => 194 via 218 (KEY_CONNECT) */ + [0xe3] = 0xc3, /* 227 => 195 via 219 (KEY_FINANCE) */ + [0xe4] = 0xc4, /* 228 => 196 via 220 (KEY_SPORT) */ + [0xe5] = 0xc5, /* 229 => 197 via 221 (KEY_SHOP) */ + [0xe6] = 0x94, /* 230 => 148 via 222 (KEY_ALTERASE) */ + [0xe7] = 0xca, /* 231 => 202 via 223 (KEY_CANCEL) */ + [0xe8] = 0xcc, /* 232 => 204 via 224 (KEY_BRIGHTNESSDOWN) */ + [0xe9] = 0xd4, /* 233 => 212 via 225 (KEY_BRIGHTNESSUP) */ + [0xea] = 0xed, /* 234 => 237 via 226 (KEY_MEDIA) */ + [0xeb] = 0xd6, /* 235 => 214 via 227 (KEY_SWITCHVIDEOMODE) */ + [0xec] = 0xd7, /* 236 => 215 via 228 (KEY_KBDILLUMTOGGLE) */ + [0xed] = 0xd8, /* 237 => 216 via 229 (KEY_KBDILLUMDOWN) */ + [0xee] = 0xd9, /* 238 => 217 via 230 (KEY_KBDILLUMUP) */ + [0xef] = 0xda, /* 239 => 218 via 231 (KEY_SEND) */ + [0xf0] = 0xe4, /* 240 => 228 via 232 (KEY_REPLY) */ + [0xf1] = 0x8e, /* 241 => 142 via 233 (KEY_FORWARDMAIL) */ + [0xf2] = 0xd5, /* 242 => 213 via 234 (KEY_SAVE) */ + [0xf3] = 0xf0, /* 243 => 240 via 235 (KEY_DOCUMENTS) */ + [0xf4] = 0xf1, /* 244 => 241 via 236 (KEY_BATTERY) */ + [0xf5] = 0xf2, /* 245 => 242 via 237 (KEY_BLUETOOTH) */ + [0xf6] = 0xf3, /* 246 => 243 via 238 (KEY_WLAN) */ + [0xf7] = 0xf4, /* 247 => 244 via 239 (KEY_UWB) */ +}; diff --git a/ui/sdl_keymap_xorgkbd2rfb.c b/ui/sdl_keymap_xorgkbd2rfb.c new file mode 100644 index 0000000..4a741ae --- /dev/null +++ b/ui/sdl_keymap_xorgkbd2rfb.c @@ -0,0 +1,112 @@ +static const guint16 keymap_xorgkbd2rfb[] = { + [0x9] = 0x1, /* 9 => 1 via 1 (KEY_ESC) */ + [0xa] = 0x2, /* 10 => 2 via 2 (KEY_1) */ + [0xb] = 0x3, /* 11 => 3 via 3 (KEY_2) */ + [0xc] = 0x4, /* 12 => 4 via 4 (KEY_3) */ + [0xd] = 0x5, /* 13 => 5 via 5 (KEY_4) */ + [0xe] = 0x6, /* 14 => 6 via 6 (KEY_5) */ + [0xf] = 0x7, /* 15 => 7 via 7 (KEY_6) */ + [0x10] = 0x8, /* 16 => 8 via 8 (KEY_7) */ + [0x11] = 0x9, /* 17 => 9 via 9 (KEY_8) */ + [0x12] = 0xa, /* 18 => 10 via 10 (KEY_9) */ + [0x13] = 0xb, /* 19 => 11 via 11 (KEY_0) */ + [0x14] = 0xc, /* 20 => 12 via 12 (KEY_MINUS) */ + [0x15] = 0xd, /* 21 => 13 via 13 (KEY_EQUAL) */ + [0x16] = 0xe, /* 22 => 14 via 14 (KEY_BACKSPACE) */ + [0x17] = 0xf, /* 23 => 15 via 15 (KEY_TAB) */ + [0x18] = 0x10, /* 24 => 16 via 16 (KEY_Q) */ + [0x19] = 0x11, /* 25 => 17 via 17 (KEY_W) */ + [0x1a] = 0x12, /* 26 => 18 via 18 (KEY_E) */ + [0x1b] = 0x13, /* 27 => 19 via 19 (KEY_R) */ + [0x1c] = 0x14, /* 28 => 20 via 20 (KEY_T) */ + [0x1d] = 0x15, /* 29 => 21 via 21 (KEY_Y) */ + [0x1e] = 0x16, /* 30 => 22 via 22 (KEY_U) */ + [0x1f] = 0x17, /* 31 => 23 via 23 (KEY_I) */ + [0x20] = 0x18, /* 32 => 24 via 24 (KEY_O) */ + [0x21] = 0x19, /* 33 => 25 via 25 (KEY_P) */ + [0x22] = 0x1a, /* 34 => 26 via 26 (KEY_LEFTBRACE) */ + [0x23] = 0x1b, /* 35 => 27 via 27 (KEY_RIGHTBRACE) */ + [0x24] = 0x1c, /* 36 => 28 via 28 (KEY_ENTER) */ + [0x25] = 0x1d, /* 37 => 29 via 29 (KEY_LEFTCTRL) */ + [0x26] = 0x1e, /* 38 => 30 via 30 (KEY_A) */ + [0x27] = 0x1f, /* 39 => 31 via 31 (KEY_S) */ + [0x28] = 0x20, /* 40 => 32 via 32 (KEY_D) */ + [0x29] = 0x21, /* 41 => 33 via 33 (KEY_F) */ + [0x2a] = 0x22, /* 42 => 34 via 34 (KEY_G) */ + [0x2b] = 0x23, /* 43 => 35 via 35 (KEY_H) */ + [0x2c] = 0x24, /* 44 => 36 via 36 (KEY_J) */ + [0x2d] = 0x25, /* 45 => 37 via 37 (KEY_K) */ + [0x2e] = 0x26, /* 46 => 38 via 38 (KEY_L) */ + [0x2f] = 0x27, /* 47 => 39 via 39 (KEY_SEMICOLON) */ + [0x30] = 0x28, /* 48 => 40 via 40 (KEY_APOSTROPHE) */ + [0x31] = 0x29, /* 49 => 41 via 41 (KEY_GRAVE) */ + [0x32] = 0x2a, /* 50 => 42 via 42 (KEY_LEFTSHIFT) */ + [0x33] = 0x2b, /* 51 => 43 via 43 (KEY_BACKSLASH) */ + [0x34] = 0x2c, /* 52 => 44 via 44 (KEY_Z) */ + [0x35] = 0x2d, /* 53 => 45 via 45 (KEY_X) */ + [0x36] = 0x2e, /* 54 => 46 via 46 (KEY_C) */ + [0x37] = 0x2f, /* 55 => 47 via 47 (KEY_V) */ + [0x38] = 0x30, /* 56 => 48 via 48 (KEY_B) */ + [0x39] = 0x31, /* 57 => 49 via 49 (KEY_N) */ + [0x3a] = 0x32, /* 58 => 50 via 50 (KEY_M) */ + [0x3b] = 0x33, /* 59 => 51 via 51 (KEY_COMMA) */ + [0x3c] = 0x34, /* 60 => 52 via 52 (KEY_DOT) */ + [0x3d] = 0x35, /* 61 => 53 via 53 (KEY_SLASH) */ + [0x3e] = 0x36, /* 62 => 54 via 54 (KEY_RIGHTSHIFT) */ + [0x3f] = 0x37, /* 63 => 55 via 55 (KEY_KPASTERISK) */ + [0x40] = 0x38, /* 64 => 56 via 56 (KEY_LEFTALT) */ + [0x41] = 0x39, /* 65 => 57 via 57 (KEY_SPACE) */ + [0x42] = 0x3a, /* 66 => 58 via 58 (KEY_CAPSLOCK) */ + [0x43] = 0x3b, /* 67 => 59 via 59 (KEY_F1) */ + [0x44] = 0x3c, /* 68 => 60 via 60 (KEY_F2) */ + [0x45] = 0x3d, /* 69 => 61 via 61 (KEY_F3) */ + [0x46] = 0x3e, /* 70 => 62 via 62 (KEY_F4) */ + [0x47] = 0x3f, /* 71 => 63 via 63 (KEY_F5) */ + [0x48] = 0x40, /* 72 => 64 via 64 (KEY_F6) */ + [0x49] = 0x41, /* 73 => 65 via 65 (KEY_F7) */ + [0x4a] = 0x42, /* 74 => 66 via 66 (KEY_F8) */ + [0x4b] = 0x43, /* 75 => 67 via 67 (KEY_F9) */ + [0x4c] = 0x44, /* 76 => 68 via 68 (KEY_F10) */ + [0x4d] = 0x45, /* 77 => 69 via 69 (KEY_NUMLOCK) */ + [0x4e] = 0x46, /* 78 => 70 via 70 (KEY_SCROLLLOCK) */ + [0x4f] = 0x47, /* 79 => 71 via 71 (KEY_KP7) */ + [0x50] = 0x48, /* 80 => 72 via 72 (KEY_KP8) */ + [0x51] = 0x49, /* 81 => 73 via 73 (KEY_KP9) */ + [0x52] = 0x4a, /* 82 => 74 via 74 (KEY_KPMINUS) */ + [0x53] = 0x4b, /* 83 => 75 via 75 (KEY_KP4) */ + [0x54] = 0x4c, /* 84 => 76 via 76 (KEY_KP5) */ + [0x55] = 0x4d, /* 85 => 77 via 77 (KEY_KP6) */ + [0x56] = 0x4e, /* 86 => 78 via 78 (KEY_KPPLUS) */ + [0x57] = 0x4f, /* 87 => 79 via 79 (KEY_KP1) */ + [0x58] = 0x50, /* 88 => 80 via 80 (KEY_KP2) */ + [0x59] = 0x51, /* 89 => 81 via 81 (KEY_KP3) */ + [0x5a] = 0x52, /* 90 => 82 via 82 (KEY_KP0) */ + [0x5b] = 0x53, /* 91 => 83 via 83 (KEY_KPDOT) */ + [0x61] = 0xc7, /* 97 => 199 via 102 (KEY_HOME) */ + [0x62] = 0xc8, /* 98 => 200 via 103 (KEY_UP) */ + [0x63] = 0xc9, /* 99 => 201 via 104 (KEY_PAGEUP) */ + [0x64] = 0xcb, /* 100 => 203 via 105 (KEY_LEFT) */ + [0x66] = 0xcd, /* 102 => 205 via 106 (KEY_RIGHT) */ + [0x67] = 0xcf, /* 103 => 207 via 107 (KEY_END) */ + [0x68] = 0xd0, /* 104 => 208 via 108 (KEY_DOWN) */ + [0x69] = 0xd1, /* 105 => 209 via 109 (KEY_PAGEDOWN) */ + [0x6a] = 0xd2, /* 106 => 210 via 110 (KEY_INSERT) */ + [0x6b] = 0xd3, /* 107 => 211 via 111 (KEY_DELETE) */ + [0x6c] = 0x9c, /* 108 => 156 via 96 (KEY_KPENTER) */ + [0x6d] = 0x9d, /* 109 => 157 via 97 (KEY_RIGHTCTRL) */ + [0x6e] = 0xc6, /* 110 => 198 via 119 (KEY_PAUSE) */ + [0x6f] = 0x54, /* 111 => 84 via 99 (KEY_SYSRQ) */ + [0x70] = 0xb5, /* 112 => 181 via 98 (KEY_KPSLASH) */ + [0x71] = 0xb8, /* 113 => 184 via 100 (KEY_RIGHTALT) */ + [0x73] = 0xdb, /* 115 => 219 via 125 (KEY_LEFTMETA) */ + [0x74] = 0xdc, /* 116 => 220 via 126 (KEY_RIGHTMETA) */ + [0x75] = 0xdd, /* 117 => 221 via 127 (KEY_COMPOSE) */ + [0x76] = 0x5d, /* 118 => 93 via 183 (KEY_F13) */ + [0x77] = 0x5e, /* 119 => 94 via 184 (KEY_F14) */ + [0x78] = 0x5f, /* 120 => 95 via 185 (KEY_F15) */ + [0x79] = 0x55, /* 121 => 85 via 186 (KEY_F16) */ + [0x7a] = 0x83, /* 122 => 131 via 187 (KEY_F17) */ + [0x7e] = 0x59, /* 126 => 89 via 117 (KEY_KPEQUAL) */ + [0x85] = 0x7d, /* 133 => 125 via 124 (KEY_YEN) */ + [0xd0] = 0x70, /* 208 => 112 via 93 (KEY_KATAKANAHIRAGANA) */ +}; diff --git a/ui/sdl_keymap_xorgxquartz2rfb.c b/ui/sdl_keymap_xorgxquartz2rfb.c new file mode 100644 index 0000000..992ff6b --- /dev/null +++ b/ui/sdl_keymap_xorgxquartz2rfb.c @@ -0,0 +1,117 @@ +static const guint16 keymap_xorgxquartz2rfb[] = { + [0x8] = 0x1e, /* 8 => 30 via 30 (KEY_A) */ + [0x9] = 0x1f, /* 9 => 31 via 31 (KEY_S) */ + [0xa] = 0x20, /* 10 => 32 via 32 (KEY_D) */ + [0xb] = 0x21, /* 11 => 33 via 33 (KEY_F) */ + [0xc] = 0x23, /* 12 => 35 via 35 (KEY_H) */ + [0xd] = 0x22, /* 13 => 34 via 34 (KEY_G) */ + [0xe] = 0x2c, /* 14 => 44 via 44 (KEY_Z) */ + [0xf] = 0x2d, /* 15 => 45 via 45 (KEY_X) */ + [0x10] = 0x2e, /* 16 => 46 via 46 (KEY_C) */ + [0x11] = 0x2f, /* 17 => 47 via 47 (KEY_V) */ + [0x12] = 0x70, /* 18 => 112 via 170 (KEY_ISO) */ + [0x13] = 0x30, /* 19 => 48 via 48 (KEY_B) */ + [0x14] = 0x10, /* 20 => 16 via 16 (KEY_Q) */ + [0x15] = 0x11, /* 21 => 17 via 17 (KEY_W) */ + [0x16] = 0x12, /* 22 => 18 via 18 (KEY_E) */ + [0x17] = 0x13, /* 23 => 19 via 19 (KEY_R) */ + [0x18] = 0x15, /* 24 => 21 via 21 (KEY_Y) */ + [0x19] = 0x14, /* 25 => 20 via 20 (KEY_T) */ + [0x1a] = 0x2, /* 26 => 2 via 2 (KEY_1) */ + [0x1b] = 0x3, /* 27 => 3 via 3 (KEY_2) */ + [0x1c] = 0x4, /* 28 => 4 via 4 (KEY_3) */ + [0x1d] = 0x5, /* 29 => 5 via 5 (KEY_4) */ + [0x1e] = 0x7, /* 30 => 7 via 7 (KEY_6) */ + [0x1f] = 0x6, /* 31 => 6 via 6 (KEY_5) */ + [0x20] = 0xd, /* 32 => 13 via 13 (KEY_EQUAL) */ + [0x21] = 0xa, /* 33 => 10 via 10 (KEY_9) */ + [0x22] = 0x8, /* 34 => 8 via 8 (KEY_7) */ + [0x23] = 0xc, /* 35 => 12 via 12 (KEY_MINUS) */ + [0x24] = 0x9, /* 36 => 9 via 9 (KEY_8) */ + [0x25] = 0xb, /* 37 => 11 via 11 (KEY_0) */ + [0x26] = 0x1b, /* 38 => 27 via 27 (KEY_RIGHTBRACE) */ + [0x27] = 0x18, /* 39 => 24 via 24 (KEY_O) */ + [0x28] = 0x16, /* 40 => 22 via 22 (KEY_U) */ + [0x29] = 0x1a, /* 41 => 26 via 26 (KEY_LEFTBRACE) */ + [0x2a] = 0x17, /* 42 => 23 via 23 (KEY_I) */ + [0x2b] = 0x19, /* 43 => 25 via 25 (KEY_P) */ + [0x2c] = 0x1c, /* 44 => 28 via 28 (KEY_ENTER) */ + [0x2d] = 0x26, /* 45 => 38 via 38 (KEY_L) */ + [0x2e] = 0x24, /* 46 => 36 via 36 (KEY_J) */ + [0x2f] = 0x28, /* 47 => 40 via 40 (KEY_APOSTROPHE) */ + [0x30] = 0x25, /* 48 => 37 via 37 (KEY_K) */ + [0x31] = 0x27, /* 49 => 39 via 39 (KEY_SEMICOLON) */ + [0x32] = 0x2b, /* 50 => 43 via 43 (KEY_BACKSLASH) */ + [0x33] = 0x33, /* 51 => 51 via 51 (KEY_COMMA) */ + [0x34] = 0x35, /* 52 => 53 via 53 (KEY_SLASH) */ + [0x35] = 0x31, /* 53 => 49 via 49 (KEY_N) */ + [0x36] = 0x32, /* 54 => 50 via 50 (KEY_M) */ + [0x37] = 0x34, /* 55 => 52 via 52 (KEY_DOT) */ + [0x38] = 0xf, /* 56 => 15 via 15 (KEY_TAB) */ + [0x39] = 0x39, /* 57 => 57 via 57 (KEY_SPACE) */ + [0x3a] = 0x29, /* 58 => 41 via 41 (KEY_GRAVE) */ + [0x3b] = 0xe, /* 59 => 14 via 14 (KEY_BACKSPACE) */ + [0x3d] = 0x1, /* 61 => 1 via 1 (KEY_ESC) */ + [0x3f] = 0xdb, /* 63 => 219 via 125 (KEY_LEFTMETA) */ + [0x40] = 0x2a, /* 64 => 42 via 42 (KEY_LEFTSHIFT) */ + [0x41] = 0x3a, /* 65 => 58 via 58 (KEY_CAPSLOCK) */ + [0x42] = 0x38, /* 66 => 56 via 56 (KEY_LEFTALT) */ + [0x43] = 0x1d, /* 67 => 29 via 29 (KEY_LEFTCTRL) */ + [0x44] = 0x36, /* 68 => 54 via 54 (KEY_RIGHTSHIFT) */ + [0x45] = 0xb8, /* 69 => 184 via 100 (KEY_RIGHTALT) */ + [0x46] = 0x9d, /* 70 => 157 via 97 (KEY_RIGHTCTRL) */ + [0x47] = 0xdd, /* 71 => 221 via 127 (KEY_COMPOSE) */ + [0x48] = 0x83, /* 72 => 131 via 187 (KEY_F17) */ + [0x49] = 0x53, /* 73 => 83 via 83 (KEY_KPDOT) */ + [0x4b] = 0x37, /* 75 => 55 via 55 (KEY_KPASTERISK) */ + [0x4d] = 0x4e, /* 77 => 78 via 78 (KEY_KPPLUS) */ + [0x4f] = 0x7e, /* 79 => 126 via 121 (KEY_KPCOMMA) */ + [0x50] = 0xb0, /* 80 => 176 via 115 (KEY_VOLUMEUP) */ + [0x51] = 0xae, /* 81 => 174 via 114 (KEY_VOLUMEDOWN) */ + [0x52] = 0xa0, /* 82 => 160 via 113 (KEY_MUTE) */ + [0x53] = 0xb5, /* 83 => 181 via 98 (KEY_KPSLASH) */ + [0x54] = 0x9c, /* 84 => 156 via 96 (KEY_KPENTER) */ + [0x56] = 0x4a, /* 86 => 74 via 74 (KEY_KPMINUS) */ + [0x57] = 0xf7, /* 87 => 247 via 188 (KEY_F18) */ + [0x58] = 0x84, /* 88 => 132 via 189 (KEY_F19) */ + [0x59] = 0x59, /* 89 => 89 via 117 (KEY_KPEQUAL) */ + [0x5a] = 0x52, /* 90 => 82 via 82 (KEY_KP0) */ + [0x5b] = 0x4f, /* 91 => 79 via 79 (KEY_KP1) */ + [0x5c] = 0x50, /* 92 => 80 via 80 (KEY_KP2) */ + [0x5d] = 0x51, /* 93 => 81 via 81 (KEY_KP3) */ + [0x5e] = 0x4b, /* 94 => 75 via 75 (KEY_KP4) */ + [0x5f] = 0x4c, /* 95 => 76 via 76 (KEY_KP5) */ + [0x60] = 0x4d, /* 96 => 77 via 77 (KEY_KP6) */ + [0x61] = 0x47, /* 97 => 71 via 71 (KEY_KP7) */ + [0x62] = 0x5a, /* 98 => 90 via 190 (KEY_F20) */ + [0x63] = 0x48, /* 99 => 72 via 72 (KEY_KP8) */ + [0x64] = 0x49, /* 100 => 73 via 73 (KEY_KP9) */ + [0x65] = 0x7d, /* 101 => 125 via 124 (KEY_YEN) */ + [0x67] = 0x5c, /* 103 => 92 via 95 (KEY_KPJPCOMMA) */ + [0x68] = 0x3f, /* 104 => 63 via 63 (KEY_F5) */ + [0x69] = 0x40, /* 105 => 64 via 64 (KEY_F6) */ + [0x6a] = 0x41, /* 106 => 65 via 65 (KEY_F7) */ + [0x6b] = 0x3d, /* 107 => 61 via 61 (KEY_F3) */ + [0x6c] = 0x42, /* 108 => 66 via 66 (KEY_F8) */ + [0x6d] = 0x43, /* 109 => 67 via 67 (KEY_F9) */ + [0x6f] = 0x57, /* 111 => 87 via 87 (KEY_F11) */ + [0x70] = 0x78, /* 112 => 120 via 90 (KEY_KATAKANA) */ + [0x71] = 0x5d, /* 113 => 93 via 183 (KEY_F13) */ + [0x72] = 0x55, /* 114 => 85 via 186 (KEY_F16) */ + [0x73] = 0x5e, /* 115 => 94 via 184 (KEY_F14) */ + [0x75] = 0x44, /* 117 => 68 via 68 (KEY_F10) */ + [0x77] = 0x58, /* 119 => 88 via 88 (KEY_F12) */ + [0x79] = 0x5f, /* 121 => 95 via 185 (KEY_F15) */ + [0x7b] = 0xc7, /* 123 => 199 via 102 (KEY_HOME) */ + [0x7c] = 0xc9, /* 124 => 201 via 104 (KEY_PAGEUP) */ + [0x7d] = 0xd3, /* 125 => 211 via 111 (KEY_DELETE) */ + [0x7e] = 0x3e, /* 126 => 62 via 62 (KEY_F4) */ + [0x7f] = 0xcf, /* 127 => 207 via 107 (KEY_END) */ + [0x80] = 0x3c, /* 128 => 60 via 60 (KEY_F2) */ + [0x81] = 0xd1, /* 129 => 209 via 109 (KEY_PAGEDOWN) */ + [0x82] = 0x3b, /* 130 => 59 via 59 (KEY_F1) */ + [0x83] = 0xcb, /* 131 => 203 via 105 (KEY_LEFT) */ + [0x84] = 0xcd, /* 132 => 205 via 106 (KEY_RIGHT) */ + [0x85] = 0xd0, /* 133 => 208 via 108 (KEY_DOWN) */ + [0x86] = 0xc8, /* 134 => 200 via 103 (KEY_UP) */ +}; diff --git a/ui/sdl_keymap_xorgxwin2rfb.c b/ui/sdl_keymap_xorgxwin2rfb.c new file mode 100644 index 0000000..f1c1762 --- /dev/null +++ b/ui/sdl_keymap_xorgxwin2rfb.c @@ -0,0 +1,112 @@ +static const guint16 keymap_xorgxwin2rfb[] = { + [0x9] = 0x1, /* 9 => 1 via 1 (KEY_ESC) */ + [0xa] = 0x2, /* 10 => 2 via 2 (KEY_1) */ + [0xb] = 0x3, /* 11 => 3 via 3 (KEY_2) */ + [0xc] = 0x4, /* 12 => 4 via 4 (KEY_3) */ + [0xd] = 0x5, /* 13 => 5 via 5 (KEY_4) */ + [0xe] = 0x6, /* 14 => 6 via 6 (KEY_5) */ + [0xf] = 0x7, /* 15 => 7 via 7 (KEY_6) */ + [0x10] = 0x8, /* 16 => 8 via 8 (KEY_7) */ + [0x11] = 0x9, /* 17 => 9 via 9 (KEY_8) */ + [0x12] = 0xa, /* 18 => 10 via 10 (KEY_9) */ + [0x13] = 0xb, /* 19 => 11 via 11 (KEY_0) */ + [0x14] = 0xc, /* 20 => 12 via 12 (KEY_MINUS) */ + [0x15] = 0xd, /* 21 => 13 via 13 (KEY_EQUAL) */ + [0x16] = 0xe, /* 22 => 14 via 14 (KEY_BACKSPACE) */ + [0x17] = 0xf, /* 23 => 15 via 15 (KEY_TAB) */ + [0x18] = 0x10, /* 24 => 16 via 16 (KEY_Q) */ + [0x19] = 0x11, /* 25 => 17 via 17 (KEY_W) */ + [0x1a] = 0x12, /* 26 => 18 via 18 (KEY_E) */ + [0x1b] = 0x13, /* 27 => 19 via 19 (KEY_R) */ + [0x1c] = 0x14, /* 28 => 20 via 20 (KEY_T) */ + [0x1d] = 0x15, /* 29 => 21 via 21 (KEY_Y) */ + [0x1e] = 0x16, /* 30 => 22 via 22 (KEY_U) */ + [0x1f] = 0x17, /* 31 => 23 via 23 (KEY_I) */ + [0x20] = 0x18, /* 32 => 24 via 24 (KEY_O) */ + [0x21] = 0x19, /* 33 => 25 via 25 (KEY_P) */ + [0x22] = 0x1a, /* 34 => 26 via 26 (KEY_LEFTBRACE) */ + [0x23] = 0x1b, /* 35 => 27 via 27 (KEY_RIGHTBRACE) */ + [0x24] = 0x1c, /* 36 => 28 via 28 (KEY_ENTER) */ + [0x25] = 0x1d, /* 37 => 29 via 29 (KEY_LEFTCTRL) */ + [0x26] = 0x1e, /* 38 => 30 via 30 (KEY_A) */ + [0x27] = 0x1f, /* 39 => 31 via 31 (KEY_S) */ + [0x28] = 0x20, /* 40 => 32 via 32 (KEY_D) */ + [0x29] = 0x21, /* 41 => 33 via 33 (KEY_F) */ + [0x2a] = 0x22, /* 42 => 34 via 34 (KEY_G) */ + [0x2b] = 0x23, /* 43 => 35 via 35 (KEY_H) */ + [0x2c] = 0x24, /* 44 => 36 via 36 (KEY_J) */ + [0x2d] = 0x25, /* 45 => 37 via 37 (KEY_K) */ + [0x2e] = 0x26, /* 46 => 38 via 38 (KEY_L) */ + [0x2f] = 0x27, /* 47 => 39 via 39 (KEY_SEMICOLON) */ + [0x30] = 0x28, /* 48 => 40 via 40 (KEY_APOSTROPHE) */ + [0x31] = 0x29, /* 49 => 41 via 41 (KEY_GRAVE) */ + [0x32] = 0x2a, /* 50 => 42 via 42 (KEY_LEFTSHIFT) */ + [0x33] = 0x2b, /* 51 => 43 via 43 (KEY_BACKSLASH) */ + [0x34] = 0x2c, /* 52 => 44 via 44 (KEY_Z) */ + [0x35] = 0x2d, /* 53 => 45 via 45 (KEY_X) */ + [0x36] = 0x2e, /* 54 => 46 via 46 (KEY_C) */ + [0x37] = 0x2f, /* 55 => 47 via 47 (KEY_V) */ + [0x38] = 0x30, /* 56 => 48 via 48 (KEY_B) */ + [0x39] = 0x31, /* 57 => 49 via 49 (KEY_N) */ + [0x3a] = 0x32, /* 58 => 50 via 50 (KEY_M) */ + [0x3b] = 0x33, /* 59 => 51 via 51 (KEY_COMMA) */ + [0x3c] = 0x34, /* 60 => 52 via 52 (KEY_DOT) */ + [0x3d] = 0x35, /* 61 => 53 via 53 (KEY_SLASH) */ + [0x3e] = 0x36, /* 62 => 54 via 54 (KEY_RIGHTSHIFT) */ + [0x3f] = 0x37, /* 63 => 55 via 55 (KEY_KPASTERISK) */ + [0x40] = 0x38, /* 64 => 56 via 56 (KEY_LEFTALT) */ + [0x41] = 0x39, /* 65 => 57 via 57 (KEY_SPACE) */ + [0x42] = 0x3a, /* 66 => 58 via 58 (KEY_CAPSLOCK) */ + [0x43] = 0x3b, /* 67 => 59 via 59 (KEY_F1) */ + [0x44] = 0x3c, /* 68 => 60 via 60 (KEY_F2) */ + [0x45] = 0x3d, /* 69 => 61 via 61 (KEY_F3) */ + [0x46] = 0x3e, /* 70 => 62 via 62 (KEY_F4) */ + [0x47] = 0x3f, /* 71 => 63 via 63 (KEY_F5) */ + [0x48] = 0x40, /* 72 => 64 via 64 (KEY_F6) */ + [0x49] = 0x41, /* 73 => 65 via 65 (KEY_F7) */ + [0x4a] = 0x42, /* 74 => 66 via 66 (KEY_F8) */ + [0x4b] = 0x43, /* 75 => 67 via 67 (KEY_F9) */ + [0x4c] = 0x44, /* 76 => 68 via 68 (KEY_F10) */ + [0x4d] = 0x45, /* 77 => 69 via 69 (KEY_NUMLOCK) */ + [0x4e] = 0x46, /* 78 => 70 via 70 (KEY_SCROLLLOCK) */ + [0x4f] = 0x47, /* 79 => 71 via 71 (KEY_KP7) */ + [0x50] = 0x48, /* 80 => 72 via 72 (KEY_KP8) */ + [0x51] = 0x49, /* 81 => 73 via 73 (KEY_KP9) */ + [0x52] = 0x4a, /* 82 => 74 via 74 (KEY_KPMINUS) */ + [0x53] = 0x4b, /* 83 => 75 via 75 (KEY_KP4) */ + [0x54] = 0x4c, /* 84 => 76 via 76 (KEY_KP5) */ + [0x55] = 0x4d, /* 85 => 77 via 77 (KEY_KP6) */ + [0x56] = 0x4e, /* 86 => 78 via 78 (KEY_KPPLUS) */ + [0x57] = 0x4f, /* 87 => 79 via 79 (KEY_KP1) */ + [0x58] = 0x50, /* 88 => 80 via 80 (KEY_KP2) */ + [0x59] = 0x51, /* 89 => 81 via 81 (KEY_KP3) */ + [0x5a] = 0x52, /* 90 => 82 via 82 (KEY_KP0) */ + [0x5b] = 0x53, /* 91 => 83 via 83 (KEY_KPDOT) */ + [0x61] = 0xc7, /* 97 => 199 via 102 (KEY_HOME) */ + [0x62] = 0xc8, /* 98 => 200 via 103 (KEY_UP) */ + [0x63] = 0xc9, /* 99 => 201 via 104 (KEY_PAGEUP) */ + [0x64] = 0xcb, /* 100 => 203 via 105 (KEY_LEFT) */ + [0x66] = 0xcd, /* 102 => 205 via 106 (KEY_RIGHT) */ + [0x67] = 0xcf, /* 103 => 207 via 107 (KEY_END) */ + [0x68] = 0xd0, /* 104 => 208 via 108 (KEY_DOWN) */ + [0x69] = 0xd1, /* 105 => 209 via 109 (KEY_PAGEDOWN) */ + [0x6a] = 0xd2, /* 106 => 210 via 110 (KEY_INSERT) */ + [0x6b] = 0xd3, /* 107 => 211 via 111 (KEY_DELETE) */ + [0x6c] = 0x9c, /* 108 => 156 via 96 (KEY_KPENTER) */ + [0x6d] = 0x9d, /* 109 => 157 via 97 (KEY_RIGHTCTRL) */ + [0x6e] = 0xc6, /* 110 => 198 via 119 (KEY_PAUSE) */ + [0x6f] = 0x54, /* 111 => 84 via 99 (KEY_SYSRQ) */ + [0x70] = 0xb5, /* 112 => 181 via 98 (KEY_KPSLASH) */ + [0x71] = 0xb8, /* 113 => 184 via 100 (KEY_RIGHTALT) */ + [0x73] = 0xdb, /* 115 => 219 via 125 (KEY_LEFTMETA) */ + [0x74] = 0xdc, /* 116 => 220 via 126 (KEY_RIGHTMETA) */ + [0x75] = 0xdd, /* 117 => 221 via 127 (KEY_COMPOSE) */ + [0x76] = 0x5d, /* 118 => 93 via 183 (KEY_F13) */ + [0x77] = 0x5e, /* 119 => 94 via 184 (KEY_F14) */ + [0x78] = 0x5f, /* 120 => 95 via 185 (KEY_F15) */ + [0x79] = 0x55, /* 121 => 85 via 186 (KEY_F16) */ + [0x7a] = 0x83, /* 122 => 131 via 187 (KEY_F17) */ + [0x7e] = 0x59, /* 126 => 89 via 117 (KEY_KPEQUAL) */ + [0x85] = 0x7d, /* 133 => 125 via 124 (KEY_YEN) */ + [0xd0] = 0x70, /* 208 => 112 via 93 (KEY_KATAKANAHIRAGANA) */ +}; -- 1.7.7.5