Atlas - scancodes_xfree86.h
Home / ext / SDL / src / events Lines: 1 | Size: 26709 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)][FILE BEGIN]1/* 2 Simple DirectMedia Layer 3 Copyright (C) 1997-2025 Sam Lantinga <[email protected]> 4 5 This software is provided 'as-is', without any express or implied 6 warranty. In no event will the authors be held liable for any damages 7 arising from the use of this software. 8 9 Permission is granted to anyone to use this software for any purpose, 10 including commercial applications, and to alter it and redistribute it 11 freely, subject to the following restrictions: 12 13 1. The origin of this software must not be misrepresented; you must not 14 claim that you wrote the original software. If you use this software 15 in a product, an acknowledgment in the product documentation would be 16 appreciated but is not required. 17 2. Altered source versions must be plainly marked as such, and must not be 18 misrepresented as being the original software. 19 3. This notice may not be removed or altered from any source distribution. 20*/ 21#include "SDL_internal.h" 22 23#ifndef scancodes_xfree86_h_ 24#define scancodes_xfree86_h_ 25 26/* XFree86 key code to SDL scancode mapping table 27 Sources: 28 - atKeyNames.h from XFree86 source code 29*/ 30/* *INDENT-OFF* */ // clang-format off 31static const SDL_Scancode xfree86_scancode_table[] = { 32 /* 0 */ SDL_SCANCODE_UNKNOWN, 33 /* 1 */ SDL_SCANCODE_ESCAPE, 34 /* 2 */ SDL_SCANCODE_1, 35 /* 3 */ SDL_SCANCODE_2, 36 /* 4 */ SDL_SCANCODE_3, 37 /* 5 */ SDL_SCANCODE_4, 38 /* 6 */ SDL_SCANCODE_5, 39 /* 7 */ SDL_SCANCODE_6, 40 /* 8 */ SDL_SCANCODE_7, 41 /* 9 */ SDL_SCANCODE_8, 42 /* 10 */ SDL_SCANCODE_9, 43 /* 11 */ SDL_SCANCODE_0, 44 /* 12 */ SDL_SCANCODE_MINUS, 45 /* 13 */ SDL_SCANCODE_EQUALS, 46 /* 14 */ SDL_SCANCODE_BACKSPACE, 47 /* 15 */ SDL_SCANCODE_TAB, 48 /* 16 */ SDL_SCANCODE_Q, 49 /* 17 */ SDL_SCANCODE_W, 50 /* 18 */ SDL_SCANCODE_E, 51 /* 19 */ SDL_SCANCODE_R, 52 /* 20 */ SDL_SCANCODE_T, 53 /* 21 */ SDL_SCANCODE_Y, 54 /* 22 */ SDL_SCANCODE_U, 55 /* 23 */ SDL_SCANCODE_I, 56 /* 24 */ SDL_SCANCODE_O, 57 /* 25 */ SDL_SCANCODE_P, 58 /* 26 */ SDL_SCANCODE_LEFTBRACKET, 59 /* 27 */ SDL_SCANCODE_RIGHTBRACKET, 60 /* 28 */ SDL_SCANCODE_RETURN, 61 /* 29 */ SDL_SCANCODE_LCTRL, 62 /* 30 */ SDL_SCANCODE_A, 63 /* 31 */ SDL_SCANCODE_S, 64 /* 32 */ SDL_SCANCODE_D, 65 /* 33 */ SDL_SCANCODE_F, 66 /* 34 */ SDL_SCANCODE_G, 67 /* 35 */ SDL_SCANCODE_H, 68 /* 36 */ SDL_SCANCODE_J, 69 /* 37 */ SDL_SCANCODE_K, 70 /* 38 */ SDL_SCANCODE_L, 71 /* 39 */ SDL_SCANCODE_SEMICOLON, 72 /* 40 */ SDL_SCANCODE_APOSTROPHE, 73 /* 41 */ SDL_SCANCODE_GRAVE, 74 /* 42 */ SDL_SCANCODE_LSHIFT, 75 /* 43 */ SDL_SCANCODE_BACKSLASH, 76 /* 44 */ SDL_SCANCODE_Z, 77 /* 45 */ SDL_SCANCODE_X, 78 /* 46 */ SDL_SCANCODE_C, 79 /* 47 */ SDL_SCANCODE_V, 80 /* 48 */ SDL_SCANCODE_B, 81 /* 49 */ SDL_SCANCODE_N, 82 /* 50 */ SDL_SCANCODE_M, 83 /* 51 */ SDL_SCANCODE_COMMA, 84 /* 52 */ SDL_SCANCODE_PERIOD, 85 /* 53 */ SDL_SCANCODE_SLASH, 86 /* 54 */ SDL_SCANCODE_RSHIFT, 87 /* 55 */ SDL_SCANCODE_KP_MULTIPLY, 88 /* 56 */ SDL_SCANCODE_LALT, 89 /* 57 */ SDL_SCANCODE_SPACE, 90 /* 58 */ SDL_SCANCODE_CAPSLOCK, 91 /* 59 */ SDL_SCANCODE_F1, 92 /* 60 */ SDL_SCANCODE_F2, 93 /* 61 */ SDL_SCANCODE_F3, 94 /* 62 */ SDL_SCANCODE_F4, 95 /* 63 */ SDL_SCANCODE_F5, 96 /* 64 */ SDL_SCANCODE_F6, 97 /* 65 */ SDL_SCANCODE_F7, 98 /* 66 */ SDL_SCANCODE_F8, 99 /* 67 */ SDL_SCANCODE_F9, 100 /* 68 */ SDL_SCANCODE_F10, 101 /* 69 */ SDL_SCANCODE_NUMLOCKCLEAR, 102 /* 70 */ SDL_SCANCODE_SCROLLLOCK, 103 /* 71 */ SDL_SCANCODE_KP_7, 104 /* 72 */ SDL_SCANCODE_KP_8, 105 /* 73 */ SDL_SCANCODE_KP_9, 106 /* 74 */ SDL_SCANCODE_KP_MINUS, 107 /* 75 */ SDL_SCANCODE_KP_4, 108 /* 76 */ SDL_SCANCODE_KP_5, 109 /* 77 */ SDL_SCANCODE_KP_6, 110 /* 78 */ SDL_SCANCODE_KP_PLUS, 111 /* 79 */ SDL_SCANCODE_KP_1, 112 /* 80 */ SDL_SCANCODE_KP_2, 113 /* 81 */ SDL_SCANCODE_KP_3, 114 /* 82 */ SDL_SCANCODE_KP_0, 115 /* 83 */ SDL_SCANCODE_KP_PERIOD, 116 /* 84 */ SDL_SCANCODE_SYSREQ, 117 /* 85 */ SDL_SCANCODE_MODE, 118 /* 86 */ SDL_SCANCODE_NONUSBACKSLASH, 119 /* 87 */ SDL_SCANCODE_F11, 120 /* 88 */ SDL_SCANCODE_F12, 121 /* 89 */ SDL_SCANCODE_HOME, 122 /* 90 */ SDL_SCANCODE_UP, 123 /* 91 */ SDL_SCANCODE_PAGEUP, 124 /* 92 */ SDL_SCANCODE_LEFT, 125 /* 93 */ SDL_SCANCODE_UNKNOWN, // on PowerBook G4 / KEY_Begin 126 /* 94 */ SDL_SCANCODE_RIGHT, 127 /* 95 */ SDL_SCANCODE_END, 128 /* 96 */ SDL_SCANCODE_DOWN, 129 /* 97 */ SDL_SCANCODE_PAGEDOWN, 130 /* 98 */ SDL_SCANCODE_INSERT, 131 /* 99 */ SDL_SCANCODE_DELETE, 132 /* 100 */ SDL_SCANCODE_KP_ENTER, 133 /* 101 */ SDL_SCANCODE_RCTRL, 134 /* 102 */ SDL_SCANCODE_PAUSE, 135 /* 103 */ SDL_SCANCODE_PRINTSCREEN, 136 /* 104 */ SDL_SCANCODE_KP_DIVIDE, 137 /* 105 */ SDL_SCANCODE_RALT, 138 /* 106 */ SDL_SCANCODE_UNKNOWN, // BREAK 139 /* 107 */ SDL_SCANCODE_LGUI, 140 /* 108 */ SDL_SCANCODE_RGUI, 141 /* 109 */ SDL_SCANCODE_APPLICATION, 142 /* 110 */ SDL_SCANCODE_F13, 143 /* 111 */ SDL_SCANCODE_F14, 144 /* 112 */ SDL_SCANCODE_F15, 145 /* 113 */ SDL_SCANCODE_F16, 146 /* 114 */ SDL_SCANCODE_F17, 147 /* 115 */ SDL_SCANCODE_INTERNATIONAL1, // \_ 148 /* 116 */ SDL_SCANCODE_UNKNOWN, /* is translated to XK_ISO_Level3_Shift by my X server, but I have no keyboard that generates this code, so I don't know what the correct SDL_SCANCODE_* for it is */ 149 /* 117 */ SDL_SCANCODE_UNKNOWN, 150 /* 118 */ SDL_SCANCODE_KP_EQUALS, 151 /* 119 */ SDL_SCANCODE_UNKNOWN, 152 /* 120 */ SDL_SCANCODE_UNKNOWN, 153 /* 121 */ SDL_SCANCODE_INTERNATIONAL4, // Henkan_Mode 154 /* 122 */ SDL_SCANCODE_UNKNOWN, 155 /* 123 */ SDL_SCANCODE_INTERNATIONAL5, // Muhenkan 156 /* 124 */ SDL_SCANCODE_UNKNOWN, 157 /* 125 */ SDL_SCANCODE_INTERNATIONAL3, // Yen 158 /* 126 */ SDL_SCANCODE_UNKNOWN, 159 /* 127 */ SDL_SCANCODE_UNKNOWN, 160 /* 128 */ SDL_SCANCODE_UNKNOWN, 161 /* 129 */ SDL_SCANCODE_UNKNOWN, 162 /* 130 */ SDL_SCANCODE_UNKNOWN, 163 /* 131 */ SDL_SCANCODE_UNKNOWN, 164 /* 132 */ SDL_SCANCODE_POWER, 165 /* 133 */ SDL_SCANCODE_MUTE, 166 /* 134 */ SDL_SCANCODE_VOLUMEDOWN, 167 /* 135 */ SDL_SCANCODE_VOLUMEUP, 168 /* 136 */ SDL_SCANCODE_HELP, 169 /* 137 */ SDL_SCANCODE_STOP, 170 /* 138 */ SDL_SCANCODE_AGAIN, 171 /* 139 */ SDL_SCANCODE_UNKNOWN, // PROPS 172 /* 140 */ SDL_SCANCODE_UNDO, 173 /* 141 */ SDL_SCANCODE_UNKNOWN, // FRONT 174 /* 142 */ SDL_SCANCODE_COPY, 175 /* 143 */ SDL_SCANCODE_UNKNOWN, // OPEN 176 /* 144 */ SDL_SCANCODE_PASTE, 177 /* 145 */ SDL_SCANCODE_FIND, 178 /* 146 */ SDL_SCANCODE_CUT, 179}; 180 181// This is largely identical to the Linux keycode mapping 182static const SDL_Scancode xfree86_scancode_table2[] = { 183 /* 0, 0x000 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 184 /* 1, 0x001 */ SDL_SCANCODE_ESCAPE, // Escape 185 /* 2, 0x002 */ SDL_SCANCODE_1, // 1 186 /* 3, 0x003 */ SDL_SCANCODE_2, // 2 187 /* 4, 0x004 */ SDL_SCANCODE_3, // 3 188 /* 5, 0x005 */ SDL_SCANCODE_4, // 4 189 /* 6, 0x006 */ SDL_SCANCODE_5, // 5 190 /* 7, 0x007 */ SDL_SCANCODE_6, // 6 191 /* 8, 0x008 */ SDL_SCANCODE_7, // 7 192 /* 9, 0x009 */ SDL_SCANCODE_8, // 8 193 /* 10, 0x00a */ SDL_SCANCODE_9, // 9 194 /* 11, 0x00b */ SDL_SCANCODE_0, // 0 195 /* 12, 0x00c */ SDL_SCANCODE_MINUS, // minus 196 /* 13, 0x00d */ SDL_SCANCODE_EQUALS, // equal 197 /* 14, 0x00e */ SDL_SCANCODE_BACKSPACE, // BackSpace 198 /* 15, 0x00f */ SDL_SCANCODE_TAB, // Tab 199 /* 16, 0x010 */ SDL_SCANCODE_Q, // q 200 /* 17, 0x011 */ SDL_SCANCODE_W, // w 201 /* 18, 0x012 */ SDL_SCANCODE_E, // e 202 /* 19, 0x013 */ SDL_SCANCODE_R, // r 203 /* 20, 0x014 */ SDL_SCANCODE_T, // t 204 /* 21, 0x015 */ SDL_SCANCODE_Y, // y 205 /* 22, 0x016 */ SDL_SCANCODE_U, // u 206 /* 23, 0x017 */ SDL_SCANCODE_I, // i 207 /* 24, 0x018 */ SDL_SCANCODE_O, // o 208 /* 25, 0x019 */ SDL_SCANCODE_P, // p 209 /* 26, 0x01a */ SDL_SCANCODE_LEFTBRACKET, // bracketleft 210 /* 27, 0x01b */ SDL_SCANCODE_RIGHTBRACKET, // bracketright 211 /* 28, 0x01c */ SDL_SCANCODE_RETURN, // Return 212 /* 29, 0x01d */ SDL_SCANCODE_LCTRL, // Control_L 213 /* 30, 0x01e */ SDL_SCANCODE_A, // a 214 /* 31, 0x01f */ SDL_SCANCODE_S, // s 215 /* 32, 0x020 */ SDL_SCANCODE_D, // d 216 /* 33, 0x021 */ SDL_SCANCODE_F, // f 217 /* 34, 0x022 */ SDL_SCANCODE_G, // g 218 /* 35, 0x023 */ SDL_SCANCODE_H, // h 219 /* 36, 0x024 */ SDL_SCANCODE_J, // j 220 /* 37, 0x025 */ SDL_SCANCODE_K, // k 221 /* 38, 0x026 */ SDL_SCANCODE_L, // l 222 /* 39, 0x027 */ SDL_SCANCODE_SEMICOLON, // semicolon 223 /* 40, 0x028 */ SDL_SCANCODE_APOSTROPHE, // apostrophe 224 /* 41, 0x029 */ SDL_SCANCODE_GRAVE, // grave 225 /* 42, 0x02a */ SDL_SCANCODE_LSHIFT, // Shift_L 226 /* 43, 0x02b */ SDL_SCANCODE_BACKSLASH, // backslash 227 /* 44, 0x02c */ SDL_SCANCODE_Z, // z 228 /* 45, 0x02d */ SDL_SCANCODE_X, // x 229 /* 46, 0x02e */ SDL_SCANCODE_C, // c 230 /* 47, 0x02f */ SDL_SCANCODE_V, // v 231 /* 48, 0x030 */ SDL_SCANCODE_B, // b 232 /* 49, 0x031 */ SDL_SCANCODE_N, // n 233 /* 50, 0x032 */ SDL_SCANCODE_M, // m 234 /* 51, 0x033 */ SDL_SCANCODE_COMMA, // comma 235 /* 52, 0x034 */ SDL_SCANCODE_PERIOD, // period 236 /* 53, 0x035 */ SDL_SCANCODE_SLASH, // slash 237 /* 54, 0x036 */ SDL_SCANCODE_RSHIFT, // Shift_R 238 /* 55, 0x037 */ SDL_SCANCODE_KP_MULTIPLY, // KP_Multiply 239 /* 56, 0x038 */ SDL_SCANCODE_LALT, // Alt_L 240 /* 57, 0x039 */ SDL_SCANCODE_SPACE, // space 241 /* 58, 0x03a */ SDL_SCANCODE_CAPSLOCK, // Caps_Lock 242 /* 59, 0x03b */ SDL_SCANCODE_F1, // F1 243 /* 60, 0x03c */ SDL_SCANCODE_F2, // F2 244 /* 61, 0x03d */ SDL_SCANCODE_F3, // F3 245 /* 62, 0x03e */ SDL_SCANCODE_F4, // F4 246 /* 63, 0x03f */ SDL_SCANCODE_F5, // F5 247 /* 64, 0x040 */ SDL_SCANCODE_F6, // F6 248 /* 65, 0x041 */ SDL_SCANCODE_F7, // F7 249 /* 66, 0x042 */ SDL_SCANCODE_F8, // F8 250 /* 67, 0x043 */ SDL_SCANCODE_F9, // F9 251 /* 68, 0x044 */ SDL_SCANCODE_F10, // F10 252 /* 69, 0x045 */ SDL_SCANCODE_NUMLOCKCLEAR, // Num_Lock 253 /* 70, 0x046 */ SDL_SCANCODE_SCROLLLOCK, // Scroll_Lock 254 /* 71, 0x047 */ SDL_SCANCODE_KP_7, // KP_Home 255 /* 72, 0x048 */ SDL_SCANCODE_KP_8, // KP_Up 256 /* 73, 0x049 */ SDL_SCANCODE_KP_9, // KP_Prior 257 /* 74, 0x04a */ SDL_SCANCODE_KP_MINUS, // KP_Subtract 258 /* 75, 0x04b */ SDL_SCANCODE_KP_4, // KP_Left 259 /* 76, 0x04c */ SDL_SCANCODE_KP_5, // KP_Begin 260 /* 77, 0x04d */ SDL_SCANCODE_KP_6, // KP_Right 261 /* 78, 0x04e */ SDL_SCANCODE_KP_PLUS, // KP_Add 262 /* 79, 0x04f */ SDL_SCANCODE_KP_1, // KP_End 263 /* 80, 0x050 */ SDL_SCANCODE_KP_2, // KP_Down 264 /* 81, 0x051 */ SDL_SCANCODE_KP_3, // KP_Next 265 /* 82, 0x052 */ SDL_SCANCODE_KP_0, // KP_Insert 266 /* 83, 0x053 */ SDL_SCANCODE_KP_PERIOD, // KP_Delete 267 /* 84, 0x054 */ SDL_SCANCODE_RALT, // ISO_Level3_Shift 268 /* 85, 0x055 */ SDL_SCANCODE_MODE, // ???? 269 /* 86, 0x056 */ SDL_SCANCODE_NONUSBACKSLASH, // less 270 /* 87, 0x057 */ SDL_SCANCODE_F11, // F11 271 /* 88, 0x058 */ SDL_SCANCODE_F12, // F12 272 /* 89, 0x059 */ SDL_SCANCODE_INTERNATIONAL1, // \_ 273 /* 90, 0x05a */ SDL_SCANCODE_LANG3, // Katakana 274 /* 91, 0x05b */ SDL_SCANCODE_LANG4, // Hiragana 275 /* 92, 0x05c */ SDL_SCANCODE_INTERNATIONAL4, // Henkan_Mode 276 /* 93, 0x05d */ SDL_SCANCODE_INTERNATIONAL2, // Hiragana_Katakana 277 /* 94, 0x05e */ SDL_SCANCODE_INTERNATIONAL5, // Muhenkan 278 /* 95, 0x05f */ SDL_SCANCODE_UNKNOWN, // NoSymbol 279 /* 96, 0x060 */ SDL_SCANCODE_KP_ENTER, // KP_Enter 280 /* 97, 0x061 */ SDL_SCANCODE_RCTRL, // Control_R 281 /* 98, 0x062 */ SDL_SCANCODE_KP_DIVIDE, // KP_Divide 282 /* 99, 0x063 */ SDL_SCANCODE_PRINTSCREEN, // Print 283 /* 100, 0x064 */ SDL_SCANCODE_RALT, // ISO_Level3_Shift, ALTGR, RALT 284 /* 101, 0x065 */ SDL_SCANCODE_UNKNOWN, // Linefeed 285 /* 102, 0x066 */ SDL_SCANCODE_HOME, // Home 286 /* 103, 0x067 */ SDL_SCANCODE_UP, // Up 287 /* 104, 0x068 */ SDL_SCANCODE_PAGEUP, // Prior 288 /* 105, 0x069 */ SDL_SCANCODE_LEFT, // Left 289 /* 106, 0x06a */ SDL_SCANCODE_RIGHT, // Right 290 /* 107, 0x06b */ SDL_SCANCODE_END, // End 291 /* 108, 0x06c */ SDL_SCANCODE_DOWN, // Down 292 /* 109, 0x06d */ SDL_SCANCODE_PAGEDOWN, // Next 293 /* 110, 0x06e */ SDL_SCANCODE_INSERT, // Insert 294 /* 111, 0x06f */ SDL_SCANCODE_DELETE, // Delete 295 /* 112, 0x070 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 296 /* 113, 0x071 */ SDL_SCANCODE_MUTE, // XF86AudioMute 297 /* 114, 0x072 */ SDL_SCANCODE_VOLUMEDOWN, // XF86AudioLowerVolume 298 /* 115, 0x073 */ SDL_SCANCODE_VOLUMEUP, // XF86AudioRaiseVolume 299 /* 116, 0x074 */ SDL_SCANCODE_POWER, // XF86PowerOff 300 /* 117, 0x075 */ SDL_SCANCODE_KP_EQUALS, // KP_Equal 301 /* 118, 0x076 */ SDL_SCANCODE_KP_PLUSMINUS, // plusminus 302 /* 119, 0x077 */ SDL_SCANCODE_PAUSE, // Pause 303 /* 120, 0x078 */ SDL_SCANCODE_UNKNOWN, // XF86LaunchA 304 /* 121, 0x079 */ SDL_SCANCODE_KP_PERIOD, // KP_Decimal 305 /* 122, 0x07a */ SDL_SCANCODE_LANG1, // Hangul 306 /* 123, 0x07b */ SDL_SCANCODE_LANG2, // Hangul_Hanja 307 /* 124, 0x07c */ SDL_SCANCODE_INTERNATIONAL3, // Yen 308 /* 125, 0x07d */ SDL_SCANCODE_LGUI, // Super_L 309 /* 126, 0x07e */ SDL_SCANCODE_RGUI, // Super_R 310 /* 127, 0x07f */ SDL_SCANCODE_APPLICATION, // Menu 311 /* 128, 0x080 */ SDL_SCANCODE_CANCEL, // Cancel 312 /* 129, 0x081 */ SDL_SCANCODE_AGAIN, // Redo 313 /* 130, 0x082 */ SDL_SCANCODE_UNKNOWN, // SunProps 314 /* 131, 0x083 */ SDL_SCANCODE_UNDO, // Undo 315 /* 132, 0x084 */ SDL_SCANCODE_UNKNOWN, // SunFront 316 /* 133, 0x085 */ SDL_SCANCODE_COPY, // XF86Copy 317 /* 134, 0x086 */ SDL_SCANCODE_UNKNOWN, // SunOpen, XF86Open 318 /* 135, 0x087 */ SDL_SCANCODE_PASTE, // XF86Paste 319 /* 136, 0x088 */ SDL_SCANCODE_FIND, // Find 320 /* 137, 0x089 */ SDL_SCANCODE_CUT, // XF86Cut 321 /* 138, 0x08a */ SDL_SCANCODE_HELP, // Help 322 /* 139, 0x08b */ SDL_SCANCODE_MENU, // XF86MenuKB 323 /* 140, 0x08c */ SDL_SCANCODE_UNKNOWN, // XF86Calculator 324 /* 141, 0x08d */ SDL_SCANCODE_UNKNOWN, // NoSymbol 325 /* 142, 0x08e */ SDL_SCANCODE_SLEEP, // XF86Sleep 326 /* 143, 0x08f */ SDL_SCANCODE_UNKNOWN, // XF86WakeUp 327 /* 144, 0x090 */ SDL_SCANCODE_UNKNOWN, // XF86Explorer 328 /* 145, 0x091 */ SDL_SCANCODE_UNKNOWN, // XF86Send 329 /* 146, 0x092 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 330 /* 147, 0x093 */ SDL_SCANCODE_UNKNOWN, // XF86Xfer 331 /* 148, 0x094 */ SDL_SCANCODE_UNKNOWN, // XF86Launch1 332 /* 149, 0x095 */ SDL_SCANCODE_UNKNOWN, // XF86Launch2 333 /* 150, 0x096 */ SDL_SCANCODE_UNKNOWN, // XF86WWW 334 /* 151, 0x097 */ SDL_SCANCODE_UNKNOWN, // XF86DOS 335 /* 152, 0x098 */ SDL_SCANCODE_UNKNOWN, // XF86ScreenSaver 336 /* 153, 0x099 */ SDL_SCANCODE_UNKNOWN, // XF86RotateWindows 337 /* 154, 0x09a */ SDL_SCANCODE_UNKNOWN, // XF86TaskPane 338 /* 155, 0x09b */ SDL_SCANCODE_UNKNOWN, // XF86Mail 339 /* 156, 0x09c */ SDL_SCANCODE_AC_BOOKMARKS, // XF86Favorites 340 /* 157, 0x09d */ SDL_SCANCODE_UNKNOWN, // XF86MyComputer 341 /* 158, 0x09e */ SDL_SCANCODE_AC_BACK, // XF86Back 342 /* 159, 0x09f */ SDL_SCANCODE_AC_FORWARD, // XF86Forward 343 /* 160, 0x0a0 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 344 /* 161, 0x0a1 */ SDL_SCANCODE_MEDIA_EJECT, // XF86Eject 345 /* 162, 0x0a2 */ SDL_SCANCODE_MEDIA_EJECT, // XF86Eject 346 /* 163, 0x0a3 */ SDL_SCANCODE_MEDIA_NEXT_TRACK, // XF86AudioNext 347 /* 164, 0x0a4 */ SDL_SCANCODE_MEDIA_PLAY_PAUSE, // XF86AudioPlay 348 /* 165, 0x0a5 */ SDL_SCANCODE_MEDIA_PREVIOUS_TRACK, // XF86AudioPrev 349 /* 166, 0x0a6 */ SDL_SCANCODE_MEDIA_STOP, // XF86AudioStop 350 /* 167, 0x0a7 */ SDL_SCANCODE_MEDIA_RECORD, // XF86AudioRecord 351 /* 168, 0x0a8 */ SDL_SCANCODE_MEDIA_REWIND, // XF86AudioRewind 352 /* 169, 0x0a9 */ SDL_SCANCODE_UNKNOWN, // XF86Phone 353 /* 170, 0x0aa */ SDL_SCANCODE_UNKNOWN, // NoSymbol 354 /* 171, 0x0ab */ SDL_SCANCODE_F13, // XF86Tools 355 /* 172, 0x0ac */ SDL_SCANCODE_AC_HOME, // XF86HomePage 356 /* 173, 0x0ad */ SDL_SCANCODE_AC_REFRESH, // XF86Reload 357 /* 174, 0x0ae */ SDL_SCANCODE_UNKNOWN, // XF86Close 358 /* 175, 0x0af */ SDL_SCANCODE_UNKNOWN, // NoSymbol 359 /* 176, 0x0b0 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 360 /* 177, 0x0b1 */ SDL_SCANCODE_UNKNOWN, // XF86ScrollUp 361 /* 178, 0x0b2 */ SDL_SCANCODE_UNKNOWN, // XF86ScrollDown 362 /* 179, 0x0b3 */ SDL_SCANCODE_KP_LEFTPAREN, // parenleft 363 /* 180, 0x0b4 */ SDL_SCANCODE_KP_RIGHTPAREN, // parenright 364 /* 181, 0x0b5 */ SDL_SCANCODE_AC_NEW, // XF86New 365 /* 182, 0x0b6 */ SDL_SCANCODE_AGAIN, // Redo 366 /* 183, 0x0b7 */ SDL_SCANCODE_F13, // XF86Tools 367 /* 184, 0x0b8 */ SDL_SCANCODE_F14, // XF86Launch5 368 /* 185, 0x0b9 */ SDL_SCANCODE_F15, // XF86Launch6 369 /* 186, 0x0ba */ SDL_SCANCODE_F16, // XF86Launch7 370 /* 187, 0x0bb */ SDL_SCANCODE_F17, // XF86Launch8 371 /* 188, 0x0bc */ SDL_SCANCODE_F18, // XF86Launch9 372 /* 189, 0x0bd */ SDL_SCANCODE_F19, // NoSymbol 373 /* 190, 0x0be */ SDL_SCANCODE_F20, // XF86AudioMicMute 374 /* 191, 0x0bf */ SDL_SCANCODE_F21, // XF86TouchpadToggle 375 /* 192, 0x0c0 */ SDL_SCANCODE_F22, // XF86TouchpadOn 376 /* 193, 0x0c1 */ SDL_SCANCODE_F23, // XF86TouchpadOff 377 /* 194, 0x0c2 */ SDL_SCANCODE_F24, // NoSymbol 378 /* 195, 0x0c3 */ SDL_SCANCODE_MODE, // Mode_switch 379 /* 196, 0x0c4 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 380 /* 197, 0x0c5 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 381 /* 198, 0x0c6 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 382 /* 199, 0x0c7 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 383 /* 200, 0x0c8 */ SDL_SCANCODE_MEDIA_PLAY, // XF86AudioPlay 384 /* 201, 0x0c9 */ SDL_SCANCODE_MEDIA_PAUSE, // XF86AudioPause 385 /* 202, 0x0ca */ SDL_SCANCODE_UNKNOWN, // XF86Launch3 386 /* 203, 0x0cb */ SDL_SCANCODE_UNKNOWN, // XF86Launch4 387 /* 204, 0x0cc */ SDL_SCANCODE_UNKNOWN, // XF86LaunchB 388 /* 205, 0x0cd */ SDL_SCANCODE_UNKNOWN, // XF86Suspend 389 /* 206, 0x0ce */ SDL_SCANCODE_AC_CLOSE, // XF86Close 390 /* 207, 0x0cf */ SDL_SCANCODE_MEDIA_PLAY, // XF86AudioPlay 391 /* 208, 0x0d0 */ SDL_SCANCODE_MEDIA_FAST_FORWARD, // XF86AudioForward 392 /* 209, 0x0d1 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 393 /* 210, 0x0d2 */ SDL_SCANCODE_PRINTSCREEN, // Print 394 /* 211, 0x0d3 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 395 /* 212, 0x0d4 */ SDL_SCANCODE_UNKNOWN, // XF86WebCam 396 /* 213, 0x0d5 */ SDL_SCANCODE_UNKNOWN, // XF86AudioPreset 397 /* 214, 0x0d6 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 398 /* 215, 0x0d7 */ SDL_SCANCODE_UNKNOWN, // XF86Mail 399 /* 216, 0x0d8 */ SDL_SCANCODE_UNKNOWN, // XF86Messenger 400 /* 217, 0x0d9 */ SDL_SCANCODE_AC_SEARCH, // XF86Search 401 /* 218, 0x0da */ SDL_SCANCODE_UNKNOWN, // XF86Go 402 /* 219, 0x0db */ SDL_SCANCODE_UNKNOWN, // XF86Finance 403 /* 220, 0x0dc */ SDL_SCANCODE_UNKNOWN, // XF86Game 404 /* 221, 0x0dd */ SDL_SCANCODE_UNKNOWN, // XF86Shop 405 /* 222, 0x0de */ SDL_SCANCODE_UNKNOWN, // NoSymbol 406 /* 223, 0x0df */ SDL_SCANCODE_CANCEL, // Cancel 407 /* 224, 0x0e0 */ SDL_SCANCODE_UNKNOWN, // XF86MonBrightnessDown 408 /* 225, 0x0e1 */ SDL_SCANCODE_UNKNOWN, // XF86MonBrightnessUp 409 /* 226, 0x0e2 */ SDL_SCANCODE_MEDIA_SELECT, // XF86AudioMedia 410 /* 227, 0x0e3 */ SDL_SCANCODE_UNKNOWN, // XF86Display 411 /* 228, 0x0e4 */ SDL_SCANCODE_UNKNOWN, // XF86KbdLightOnOff 412 /* 229, 0x0e5 */ SDL_SCANCODE_UNKNOWN, // XF86KbdBrightnessDown 413 /* 230, 0x0e6 */ SDL_SCANCODE_UNKNOWN, // XF86KbdBrightnessUp 414 /* 231, 0x0e7 */ SDL_SCANCODE_UNKNOWN, // XF86Send 415 /* 232, 0x0e8 */ SDL_SCANCODE_UNKNOWN, // XF86Reply 416 /* 233, 0x0e9 */ SDL_SCANCODE_UNKNOWN, // XF86MailForward 417 /* 234, 0x0ea */ SDL_SCANCODE_UNKNOWN, // XF86Save 418 /* 235, 0x0eb */ SDL_SCANCODE_UNKNOWN, // XF86Documents 419 /* 236, 0x0ec */ SDL_SCANCODE_UNKNOWN, // XF86Battery 420 /* 237, 0x0ed */ SDL_SCANCODE_UNKNOWN, // XF86Bluetooth 421 /* 238, 0x0ee */ SDL_SCANCODE_UNKNOWN, // XF86WLAN 422 /* 239, 0x0ef */ SDL_SCANCODE_UNKNOWN, // XF86UWB 423 /* 240, 0x0f0 */ SDL_SCANCODE_UNKNOWN, // NoSymbol 424 /* 241, 0x0f1 */ SDL_SCANCODE_UNKNOWN, // XF86Next_VMode 425 /* 242, 0x0f2 */ SDL_SCANCODE_UNKNOWN, // XF86Prev_VMode 426 /* 243, 0x0f3 */ SDL_SCANCODE_UNKNOWN, // XF86MonBrightnessCycle 427 /* 244, 0x0f4 */ SDL_SCANCODE_UNKNOWN, // XF86BrightnessAuto 428 /* 245, 0x0f5 */ SDL_SCANCODE_UNKNOWN, // XF86DisplayOff 429 /* 246, 0x0f6 */ SDL_SCANCODE_UNKNOWN, // XF86WWAN 430 /* 247, 0x0f7 */ SDL_SCANCODE_UNKNOWN, // XF86RFKill 431}; 432 433// Xvnc / Xtightvnc scancodes from xmodmap -pk 434static const SDL_Scancode xvnc_scancode_table[] = { 435 /* 0 */ SDL_SCANCODE_LCTRL, 436 /* 1 */ SDL_SCANCODE_RCTRL, 437 /* 2 */ SDL_SCANCODE_LSHIFT, 438 /* 3 */ SDL_SCANCODE_RSHIFT, 439 /* 4 */ SDL_SCANCODE_UNKNOWN, // Meta_L 440 /* 5 */ SDL_SCANCODE_UNKNOWN, // Meta_R 441 /* 6 */ SDL_SCANCODE_LALT, 442 /* 7 */ SDL_SCANCODE_RALT, 443 /* 8 */ SDL_SCANCODE_SPACE, 444 /* 9 */ SDL_SCANCODE_0, 445 /* 10 */ SDL_SCANCODE_1, 446 /* 11 */ SDL_SCANCODE_2, 447 /* 12 */ SDL_SCANCODE_3, 448 /* 13 */ SDL_SCANCODE_4, 449 /* 14 */ SDL_SCANCODE_5, 450 /* 15 */ SDL_SCANCODE_6, 451 /* 16 */ SDL_SCANCODE_7, 452 /* 17 */ SDL_SCANCODE_8, 453 /* 18 */ SDL_SCANCODE_9, 454 /* 19 */ SDL_SCANCODE_MINUS, 455 /* 20 */ SDL_SCANCODE_EQUALS, 456 /* 21 */ SDL_SCANCODE_LEFTBRACKET, 457 /* 22 */ SDL_SCANCODE_RIGHTBRACKET, 458 /* 23 */ SDL_SCANCODE_SEMICOLON, 459 /* 24 */ SDL_SCANCODE_APOSTROPHE, 460 /* 25 */ SDL_SCANCODE_GRAVE, 461 /* 26 */ SDL_SCANCODE_COMMA, 462 /* 27 */ SDL_SCANCODE_PERIOD, 463 /* 28 */ SDL_SCANCODE_SLASH, 464 /* 29 */ SDL_SCANCODE_BACKSLASH, 465 /* 30 */ SDL_SCANCODE_A, 466 /* 31 */ SDL_SCANCODE_B, 467 /* 32 */ SDL_SCANCODE_C, 468 /* 33 */ SDL_SCANCODE_D, 469 /* 34 */ SDL_SCANCODE_E, 470 /* 35 */ SDL_SCANCODE_F, 471 /* 36 */ SDL_SCANCODE_G, 472 /* 37 */ SDL_SCANCODE_H, 473 /* 38 */ SDL_SCANCODE_I, 474 /* 39 */ SDL_SCANCODE_J, 475 /* 40 */ SDL_SCANCODE_K, 476 /* 41 */ SDL_SCANCODE_L, 477 /* 42 */ SDL_SCANCODE_M, 478 /* 43 */ SDL_SCANCODE_N, 479 /* 44 */ SDL_SCANCODE_O, 480 /* 45 */ SDL_SCANCODE_P, 481 /* 46 */ SDL_SCANCODE_Q, 482 /* 47 */ SDL_SCANCODE_R, 483 /* 48 */ SDL_SCANCODE_S, 484 /* 49 */ SDL_SCANCODE_T, 485 /* 50 */ SDL_SCANCODE_U, 486 /* 51 */ SDL_SCANCODE_V, 487 /* 52 */ SDL_SCANCODE_W, 488 /* 53 */ SDL_SCANCODE_X, 489 /* 54 */ SDL_SCANCODE_Y, 490 /* 55 */ SDL_SCANCODE_Z, 491 /* 56 */ SDL_SCANCODE_BACKSPACE, 492 /* 57 */ SDL_SCANCODE_RETURN, 493 /* 58 */ SDL_SCANCODE_TAB, 494 /* 59 */ SDL_SCANCODE_ESCAPE, 495 /* 60 */ SDL_SCANCODE_DELETE, 496 /* 61 */ SDL_SCANCODE_HOME, 497 /* 62 */ SDL_SCANCODE_END, 498 /* 63 */ SDL_SCANCODE_PAGEUP, 499 /* 64 */ SDL_SCANCODE_PAGEDOWN, 500 /* 65 */ SDL_SCANCODE_UP, 501 /* 66 */ SDL_SCANCODE_DOWN, 502 /* 67 */ SDL_SCANCODE_LEFT, 503 /* 68 */ SDL_SCANCODE_RIGHT, 504 /* 69 */ SDL_SCANCODE_F1, 505 /* 70 */ SDL_SCANCODE_F2, 506 /* 71 */ SDL_SCANCODE_F3, 507 /* 72 */ SDL_SCANCODE_F4, 508 /* 73 */ SDL_SCANCODE_F5, 509 /* 74 */ SDL_SCANCODE_F6, 510 /* 75 */ SDL_SCANCODE_F7, 511 /* 76 */ SDL_SCANCODE_F8, 512 /* 77 */ SDL_SCANCODE_F9, 513 /* 78 */ SDL_SCANCODE_F10, 514 /* 79 */ SDL_SCANCODE_F11, 515 /* 80 */ SDL_SCANCODE_F12, 516}; 517 518#endif // scancodes_xfree86_h_ 519 520/* *INDENT-ON* */ // clang-format on 521[FILE END](C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.