scancodes_linux.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. /*
  2. Simple DirectMedia Layer
  3. Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
  4. This software is provided 'as-is', without any express or implied
  5. warranty. In no event will the authors be held liable for any damages
  6. arising from the use of this software.
  7. Permission is granted to anyone to use this software for any purpose,
  8. including commercial applications, and to alter it and redistribute it
  9. freely, subject to the following restrictions:
  10. 1. The origin of this software must not be misrepresented; you must not
  11. claim that you wrote the original software. If you use this software
  12. in a product, an acknowledgment in the product documentation would be
  13. appreciated but is not required.
  14. 2. Altered source versions must be plainly marked as such, and must not be
  15. misrepresented as being the original software.
  16. 3. This notice may not be removed or altered from any source distribution.
  17. */
  18. #include "../../include/SDL_scancode.h"
  19. /* Linux virtual key code to SDL_Keycode mapping table
  20. Sources:
  21. - Linux kernel source input.h
  22. */
  23. /* *INDENT-OFF* */
  24. static SDL_Scancode const linux_scancode_table[] = {
  25. /* 0 */ SDL_SCANCODE_UNKNOWN,
  26. /* 1 */ SDL_SCANCODE_ESCAPE,
  27. /* 2 */ SDL_SCANCODE_1,
  28. /* 3 */ SDL_SCANCODE_2,
  29. /* 4 */ SDL_SCANCODE_3,
  30. /* 5 */ SDL_SCANCODE_4,
  31. /* 6 */ SDL_SCANCODE_5,
  32. /* 7 */ SDL_SCANCODE_6,
  33. /* 8 */ SDL_SCANCODE_7,
  34. /* 9 */ SDL_SCANCODE_8,
  35. /* 10 */ SDL_SCANCODE_9,
  36. /* 11 */ SDL_SCANCODE_0,
  37. /* 12 */ SDL_SCANCODE_MINUS,
  38. /* 13 */ SDL_SCANCODE_EQUALS,
  39. /* 14 */ SDL_SCANCODE_BACKSPACE,
  40. /* 15 */ SDL_SCANCODE_TAB,
  41. /* 16 */ SDL_SCANCODE_Q,
  42. /* 17 */ SDL_SCANCODE_W,
  43. /* 18 */ SDL_SCANCODE_E,
  44. /* 19 */ SDL_SCANCODE_R,
  45. /* 20 */ SDL_SCANCODE_T,
  46. /* 21 */ SDL_SCANCODE_Y,
  47. /* 22 */ SDL_SCANCODE_U,
  48. /* 23 */ SDL_SCANCODE_I,
  49. /* 24 */ SDL_SCANCODE_O,
  50. /* 25 */ SDL_SCANCODE_P,
  51. /* 26 */ SDL_SCANCODE_LEFTBRACKET,
  52. /* 27 */ SDL_SCANCODE_RIGHTBRACKET,
  53. /* 28 */ SDL_SCANCODE_RETURN,
  54. /* 29 */ SDL_SCANCODE_LCTRL,
  55. /* 30 */ SDL_SCANCODE_A,
  56. /* 31 */ SDL_SCANCODE_S,
  57. /* 32 */ SDL_SCANCODE_D,
  58. /* 33 */ SDL_SCANCODE_F,
  59. /* 34 */ SDL_SCANCODE_G,
  60. /* 35 */ SDL_SCANCODE_H,
  61. /* 36 */ SDL_SCANCODE_J,
  62. /* 37 */ SDL_SCANCODE_K,
  63. /* 38 */ SDL_SCANCODE_L,
  64. /* 39 */ SDL_SCANCODE_SEMICOLON,
  65. /* 40 */ SDL_SCANCODE_APOSTROPHE,
  66. /* 41 */ SDL_SCANCODE_GRAVE,
  67. /* 42 */ SDL_SCANCODE_LSHIFT,
  68. /* 43 */ SDL_SCANCODE_BACKSLASH,
  69. /* 44 */ SDL_SCANCODE_Z,
  70. /* 45 */ SDL_SCANCODE_X,
  71. /* 46 */ SDL_SCANCODE_C,
  72. /* 47 */ SDL_SCANCODE_V,
  73. /* 48 */ SDL_SCANCODE_B,
  74. /* 49 */ SDL_SCANCODE_N,
  75. /* 50 */ SDL_SCANCODE_M,
  76. /* 51 */ SDL_SCANCODE_COMMA,
  77. /* 52 */ SDL_SCANCODE_PERIOD,
  78. /* 53 */ SDL_SCANCODE_SLASH,
  79. /* 54 */ SDL_SCANCODE_RSHIFT,
  80. /* 55 */ SDL_SCANCODE_KP_MULTIPLY,
  81. /* 56 */ SDL_SCANCODE_LALT,
  82. /* 57 */ SDL_SCANCODE_SPACE,
  83. /* 58 */ SDL_SCANCODE_CAPSLOCK,
  84. /* 59 */ SDL_SCANCODE_F1,
  85. /* 60 */ SDL_SCANCODE_F2,
  86. /* 61 */ SDL_SCANCODE_F3,
  87. /* 62 */ SDL_SCANCODE_F4,
  88. /* 63 */ SDL_SCANCODE_F5,
  89. /* 64 */ SDL_SCANCODE_F6,
  90. /* 65 */ SDL_SCANCODE_F7,
  91. /* 66 */ SDL_SCANCODE_F8,
  92. /* 67 */ SDL_SCANCODE_F9,
  93. /* 68 */ SDL_SCANCODE_F10,
  94. /* 69 */ SDL_SCANCODE_NUMLOCKCLEAR,
  95. /* 70 */ SDL_SCANCODE_SCROLLLOCK,
  96. /* 71 */ SDL_SCANCODE_KP_7,
  97. /* 72 */ SDL_SCANCODE_KP_8,
  98. /* 73 */ SDL_SCANCODE_KP_9,
  99. /* 74 */ SDL_SCANCODE_KP_MINUS,
  100. /* 75 */ SDL_SCANCODE_KP_4,
  101. /* 76 */ SDL_SCANCODE_KP_5,
  102. /* 77 */ SDL_SCANCODE_KP_6,
  103. /* 78 */ SDL_SCANCODE_KP_PLUS,
  104. /* 79 */ SDL_SCANCODE_KP_1,
  105. /* 80 */ SDL_SCANCODE_KP_2,
  106. /* 81 */ SDL_SCANCODE_KP_3,
  107. /* 82 */ SDL_SCANCODE_KP_0,
  108. /* 83 */ SDL_SCANCODE_KP_PERIOD,
  109. 0,
  110. /* 85 */ SDL_SCANCODE_LANG5, /* KEY_ZENKAKUHANKAKU */
  111. /* 86 */ SDL_SCANCODE_NONUSBACKSLASH, /* KEY_102ND */
  112. /* 87 */ SDL_SCANCODE_F11,
  113. /* 88 */ SDL_SCANCODE_F12,
  114. /* 89 */ SDL_SCANCODE_INTERNATIONAL1, /* KEY_RO */
  115. /* 90 */ SDL_SCANCODE_LANG3, /* KEY_KATAKANA */
  116. /* 91 */ SDL_SCANCODE_LANG4, /* KEY_HIRAGANA */
  117. /* 92 */ SDL_SCANCODE_INTERNATIONAL4, /* KEY_HENKAN */
  118. /* 93 */ SDL_SCANCODE_INTERNATIONAL2, /* KEY_KATAKANAHIRAGANA */
  119. /* 94 */ SDL_SCANCODE_INTERNATIONAL5, /* KEY_MUHENKAN */
  120. /* 95 */ SDL_SCANCODE_INTERNATIONAL5, /* KEY_KPJPCOMMA */
  121. /* 96 */ SDL_SCANCODE_KP_ENTER,
  122. /* 97 */ SDL_SCANCODE_RCTRL,
  123. /* 98 */ SDL_SCANCODE_KP_DIVIDE,
  124. /* 99 */ SDL_SCANCODE_SYSREQ,
  125. /* 100 */ SDL_SCANCODE_RALT,
  126. /* 101 */ SDL_SCANCODE_UNKNOWN, /* KEY_LINEFEED */
  127. /* 102 */ SDL_SCANCODE_HOME,
  128. /* 103 */ SDL_SCANCODE_UP,
  129. /* 104 */ SDL_SCANCODE_PAGEUP,
  130. /* 105 */ SDL_SCANCODE_LEFT,
  131. /* 106 */ SDL_SCANCODE_RIGHT,
  132. /* 107 */ SDL_SCANCODE_END,
  133. /* 108 */ SDL_SCANCODE_DOWN,
  134. /* 109 */ SDL_SCANCODE_PAGEDOWN,
  135. /* 110 */ SDL_SCANCODE_INSERT,
  136. /* 111 */ SDL_SCANCODE_DELETE,
  137. /* 112 */ SDL_SCANCODE_UNKNOWN, /* KEY_MACRO */
  138. /* 113 */ SDL_SCANCODE_MUTE,
  139. /* 114 */ SDL_SCANCODE_VOLUMEDOWN,
  140. /* 115 */ SDL_SCANCODE_VOLUMEUP,
  141. /* 116 */ SDL_SCANCODE_POWER,
  142. /* 117 */ SDL_SCANCODE_KP_EQUALS,
  143. /* 118 */ SDL_SCANCODE_KP_PLUSMINUS,
  144. /* 119 */ SDL_SCANCODE_PAUSE,
  145. 0,
  146. /* 121 */ SDL_SCANCODE_KP_COMMA,
  147. /* 122 */ SDL_SCANCODE_LANG1, /* KEY_HANGUEL */
  148. /* 123 */ SDL_SCANCODE_LANG2, /* KEY_HANJA */
  149. /* 124 */ SDL_SCANCODE_INTERNATIONAL3, /* KEY_YEN */
  150. /* 125 */ SDL_SCANCODE_LGUI,
  151. /* 126 */ SDL_SCANCODE_RGUI,
  152. /* 127 */ SDL_SCANCODE_APPLICATION, /* KEY_COMPOSE */
  153. /* 128 */ SDL_SCANCODE_STOP,
  154. /* 129 */ SDL_SCANCODE_AGAIN,
  155. /* 130 */ SDL_SCANCODE_UNKNOWN, /* KEY_PROPS */
  156. /* 131 */ SDL_SCANCODE_UNDO,
  157. /* 132 */ SDL_SCANCODE_UNKNOWN, /* KEY_FRONT */
  158. /* 133 */ SDL_SCANCODE_COPY,
  159. /* 134 */ SDL_SCANCODE_UNKNOWN, /* KEY_OPEN */
  160. /* 135 */ SDL_SCANCODE_PASTE,
  161. /* 136 */ SDL_SCANCODE_FIND,
  162. /* 137 */ SDL_SCANCODE_CUT,
  163. /* 138 */ SDL_SCANCODE_HELP,
  164. /* 139 */ SDL_SCANCODE_MENU,
  165. /* 140 */ SDL_SCANCODE_CALCULATOR,
  166. /* 141 */ SDL_SCANCODE_UNKNOWN, /* KEY_SETUP */
  167. /* 142 */ SDL_SCANCODE_SLEEP,
  168. /* 143 */ SDL_SCANCODE_UNKNOWN, /* KEY_WAKEUP */
  169. /* 144 */ SDL_SCANCODE_UNKNOWN, /* KEY_FILE */
  170. /* 145 */ SDL_SCANCODE_UNKNOWN, /* KEY_SENDFILE */
  171. /* 146 */ SDL_SCANCODE_UNKNOWN, /* KEY_DELETEFILE */
  172. /* 147 */ SDL_SCANCODE_UNKNOWN, /* KEY_XFER */
  173. /* 148 */ SDL_SCANCODE_APP1, /* KEY_PROG1 */
  174. /* 149 */ SDL_SCANCODE_APP2, /* KEY_PROG2 */
  175. /* 150 */ SDL_SCANCODE_WWW, /* KEY_WWW */
  176. /* 151 */ SDL_SCANCODE_UNKNOWN, /* KEY_MSDOS */
  177. /* 152 */ SDL_SCANCODE_UNKNOWN, /* KEY_COFFEE */
  178. /* 153 */ SDL_SCANCODE_UNKNOWN, /* KEY_DIRECTION */
  179. /* 154 */ SDL_SCANCODE_UNKNOWN, /* KEY_CYCLEWINDOWS */
  180. /* 155 */ SDL_SCANCODE_MAIL,
  181. /* 156 */ SDL_SCANCODE_AC_BOOKMARKS,
  182. /* 157 */ SDL_SCANCODE_COMPUTER,
  183. /* 158 */ SDL_SCANCODE_AC_BACK,
  184. /* 159 */ SDL_SCANCODE_AC_FORWARD,
  185. /* 160 */ SDL_SCANCODE_UNKNOWN, /* KEY_CLOSECD */
  186. /* 161 */ SDL_SCANCODE_EJECT, /* KEY_EJECTCD */
  187. /* 162 */ SDL_SCANCODE_UNKNOWN, /* KEY_EJECTCLOSECD */
  188. /* 163 */ SDL_SCANCODE_AUDIONEXT, /* KEY_NEXTSONG */
  189. /* 164 */ SDL_SCANCODE_AUDIOPLAY, /* KEY_PLAYPAUSE */
  190. /* 165 */ SDL_SCANCODE_AUDIOPREV, /* KEY_PREVIOUSSONG */
  191. /* 166 */ SDL_SCANCODE_AUDIOSTOP, /* KEY_STOPCD */
  192. /* 167 */ SDL_SCANCODE_UNKNOWN, /* KEY_RECORD */
  193. /* 168 */ SDL_SCANCODE_AUDIOREWIND, /* KEY_REWIND */
  194. /* 169 */ SDL_SCANCODE_UNKNOWN, /* KEY_PHONE */
  195. /* 170 */ SDL_SCANCODE_UNKNOWN, /* KEY_ISO */
  196. /* 171 */ SDL_SCANCODE_UNKNOWN, /* KEY_CONFIG */
  197. /* 172 */ SDL_SCANCODE_AC_HOME,
  198. /* 173 */ SDL_SCANCODE_AC_REFRESH,
  199. /* 174 */ SDL_SCANCODE_UNKNOWN, /* KEY_EXIT */
  200. /* 175 */ SDL_SCANCODE_UNKNOWN, /* KEY_MOVE */
  201. /* 176 */ SDL_SCANCODE_UNKNOWN, /* KEY_EDIT */
  202. /* 177 */ SDL_SCANCODE_UNKNOWN, /* KEY_SCROLLUP */
  203. /* 178 */ SDL_SCANCODE_UNKNOWN, /* KEY_SCROLLDOWN */
  204. /* 179 */ SDL_SCANCODE_KP_LEFTPAREN,
  205. /* 180 */ SDL_SCANCODE_KP_RIGHTPAREN,
  206. /* 181 */ SDL_SCANCODE_UNKNOWN, /* KEY_NEW */
  207. /* 182 */ SDL_SCANCODE_UNKNOWN, /* KEY_REDO */
  208. /* 183 */ SDL_SCANCODE_F13,
  209. /* 184 */ SDL_SCANCODE_F14,
  210. /* 185 */ SDL_SCANCODE_F15,
  211. /* 186 */ SDL_SCANCODE_F16,
  212. /* 187 */ SDL_SCANCODE_F17,
  213. /* 188 */ SDL_SCANCODE_F18,
  214. /* 189 */ SDL_SCANCODE_F19,
  215. /* 190 */ SDL_SCANCODE_F20,
  216. /* 191 */ SDL_SCANCODE_F21,
  217. /* 192 */ SDL_SCANCODE_F22,
  218. /* 193 */ SDL_SCANCODE_F23,
  219. /* 194 */ SDL_SCANCODE_F24,
  220. 0, 0, 0, 0, 0,
  221. /* 200 */ SDL_SCANCODE_UNKNOWN, /* KEY_PLAYCD */
  222. /* 201 */ SDL_SCANCODE_UNKNOWN, /* KEY_PAUSECD */
  223. /* 202 */ SDL_SCANCODE_UNKNOWN, /* KEY_PROG3 */
  224. /* 203 */ SDL_SCANCODE_UNKNOWN, /* KEY_PROG4 */
  225. 0,
  226. /* 205 */ SDL_SCANCODE_UNKNOWN, /* KEY_SUSPEND */
  227. /* 206 */ SDL_SCANCODE_UNKNOWN, /* KEY_CLOSE */
  228. /* 207 */ SDL_SCANCODE_UNKNOWN, /* KEY_PLAY */
  229. /* 208 */ SDL_SCANCODE_AUDIOFASTFORWARD, /* KEY_FASTFORWARD */
  230. /* 209 */ SDL_SCANCODE_UNKNOWN, /* KEY_BASSBOOST */
  231. /* 210 */ SDL_SCANCODE_UNKNOWN, /* KEY_PRINT */
  232. /* 211 */ SDL_SCANCODE_UNKNOWN, /* KEY_HP */
  233. /* 212 */ SDL_SCANCODE_UNKNOWN, /* KEY_CAMERA */
  234. /* 213 */ SDL_SCANCODE_UNKNOWN, /* KEY_SOUND */
  235. /* 214 */ SDL_SCANCODE_UNKNOWN, /* KEY_QUESTION */
  236. /* 215 */ SDL_SCANCODE_UNKNOWN, /* KEY_EMAIL */
  237. /* 216 */ SDL_SCANCODE_UNKNOWN, /* KEY_CHAT */
  238. /* 217 */ SDL_SCANCODE_AC_SEARCH,
  239. /* 218 */ SDL_SCANCODE_UNKNOWN, /* KEY_CONNECT */
  240. /* 219 */ SDL_SCANCODE_UNKNOWN, /* KEY_FINANCE */
  241. /* 220 */ SDL_SCANCODE_UNKNOWN, /* KEY_SPORT */
  242. /* 221 */ SDL_SCANCODE_UNKNOWN, /* KEY_SHOP */
  243. /* 222 */ SDL_SCANCODE_ALTERASE,
  244. /* 223 */ SDL_SCANCODE_CANCEL,
  245. /* 224 */ SDL_SCANCODE_BRIGHTNESSDOWN,
  246. /* 225 */ SDL_SCANCODE_BRIGHTNESSUP,
  247. /* 226 */ SDL_SCANCODE_UNKNOWN, /* KEY_MEDIA */
  248. /* 227 */ SDL_SCANCODE_DISPLAYSWITCH, /* KEY_SWITCHVIDEOMODE */
  249. /* 228 */ SDL_SCANCODE_KBDILLUMTOGGLE,
  250. /* 229 */ SDL_SCANCODE_KBDILLUMDOWN,
  251. /* 230 */ SDL_SCANCODE_KBDILLUMUP,
  252. /* 231 */ SDL_SCANCODE_UNKNOWN, /* KEY_SEND */
  253. /* 232 */ SDL_SCANCODE_UNKNOWN, /* KEY_REPLY */
  254. /* 233 */ SDL_SCANCODE_UNKNOWN, /* KEY_FORWARDMAIL */
  255. /* 234 */ SDL_SCANCODE_UNKNOWN, /* KEY_SAVE */
  256. /* 235 */ SDL_SCANCODE_UNKNOWN, /* KEY_DOCUMENTS */
  257. /* 236 */ SDL_SCANCODE_UNKNOWN, /* KEY_BATTERY */
  258. };
  259. /* *INDENT-ON* */