Kiibohd Controller
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

epsonqx10.h 7.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. /* Copyright (C) 2011 by Jacob Alexander
  2. *
  3. * Permission is hereby granted, free of charge, to any person obtaining a copy
  4. * of this software and associated documentation files (the "Software"), to deal
  5. * in the Software without restriction, including without limitation the rights
  6. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  7. * copies of the Software, and to permit persons to whom the Software is
  8. * furnished to do so, subject to the following conditions:
  9. *
  10. * The above copyright notice and this permission notice shall be included in
  11. * all copies or substantial portions of the Software.
  12. *
  13. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  14. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  15. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  16. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  17. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  18. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  19. * THE SOFTWARE.
  20. */
  21. #ifndef __EPSONQX10_H
  22. #define __EPSONQX10_H
  23. // This file contains various key layouts for the Epson QX-10 Series of keyboards
  24. // NOTE: Modifiers can't be remapped to non-modifer keys due to how the signals are interpretted
  25. // Remapping between modifier keys is perfectly fine (or even a modifier to a normal key)
  26. // ----- Variables -----
  27. static uint8_t epsonqx10_ModifierMask[] = { 0x81, 0x83, 0x85, 0x87, 0x89, 0x8B, 0x8D, 0x8F };
  28. static uint8_t epsonqx10_DefaultMap[] = {
  29. 0x00, // 0x00
  30. KEY_F4, // 0x01
  31. 0, // 0x02
  32. KEY_F5, // 0x03
  33. KEY_F6, // 0x04
  34. KEY_F7, // 0x05
  35. KEY_F8, // 0x06
  36. KEY_F9, // 0x07
  37. 0, // 0x08
  38. KEY_F10, // 0x09
  39. KEY_F11, // 0x0A
  40. KEY_F12, // 0x0B
  41. KEY_F13, // 0x0C
  42. 0, // 0x0D
  43. KEY_F14, // 0x0E
  44. KEY_F15, // 0x0F
  45. 0, // 0x10
  46. 0, // 0x11
  47. 0, // 0x12
  48. 0, // 0x13
  49. 0, // 0x14
  50. KEYPAD_ENTER, // 0x15
  51. KEYPAD_PERIOD, // 0x16
  52. KEYPAD_0, // 0x17
  53. KEYPAD_EQUAL, // 0x18
  54. KEYPAD_6, // 0x19
  55. KEYPAD_5, // 0x1A
  56. KEYPAD_4, // 0x1B
  57. 0, // 0x1C
  58. 0, // 0x1D
  59. KEY_F17, // 0x1E
  60. KEY_F16, // 0x1F
  61. 0, // 0x20
  62. 0, // 0x21
  63. 0, // 0x22
  64. 0, // 0x23
  65. 0, // 0x24
  66. KEYPAD_3, // 0x25
  67. KEYPAD_2, // 0x26
  68. KEYPAD_1, // 0x27
  69. KEYPAD_PLUS, // 0x28
  70. KEYPAD_9, // 0x29
  71. KEYPAD_8, // 0x2A
  72. KEYPAD_7, // 0x2B
  73. KEYPAD_MINUS, // 0x2C
  74. KEYPAD_ASTERIX, // 0x2D
  75. KEYPAD_SLASH, // 0x2E
  76. KEY_NUM_LOCK, // 0x2F
  77. 0, // 0x30
  78. 0, // 0x31
  79. KEY_SPACE, // 0x32
  80. KEY_Z, // 0x33
  81. KEY_X, // 0x34
  82. KEY_C, // 0x35
  83. KEY_V, // 0x36
  84. KEY_B, // 0x37
  85. KEY_N, // 0x38
  86. KEY_M, // 0x39
  87. KEY_COMMA, // 0x3A
  88. KEY_PERIOD, // 0x3B
  89. KEY_UP, // 0x3C
  90. KEY_LEFT, // 0x3D
  91. KEY_RIGHT, // 0x3E
  92. KEY_DOWN, // 0x3F
  93. 0, // 0x40
  94. KEY_F19, // 0x41
  95. KEY_CAPS_LOCK, // 0x42
  96. KEY_A, // 0x43
  97. KEY_S, // 0x44
  98. KEY_D, // 0x45
  99. KEY_F, // 0x46
  100. KEY_G, // 0x47
  101. KEY_H, // 0x48
  102. KEY_J, // 0x49
  103. KEY_K, // 0x4A
  104. KEY_L, // 0x4B
  105. KEY_SEMICOLON, // 0x4C
  106. KEY_QUOTE, // 0x4D
  107. KEY_ENTER, // 0x4E
  108. KEY_SLASH, // 0x4F
  109. 0, // 0x50
  110. KEY_Q, // 0x51
  111. KEY_W, // 0x52
  112. KEY_E, // 0x53
  113. KEY_R, // 0x54
  114. KEY_T, // 0x55
  115. KEY_Y, // 0x56
  116. KEY_U, // 0x57
  117. KEY_I, // 0x58
  118. KEY_O, // 0x59
  119. KEY_P, // 0x5A
  120. KEY_LEFT_BRACE, // 0x5B
  121. KEY_RIGHT_BRACE, // 0x5C
  122. KEY_BACKSLASH, // 0x5D
  123. KEY_INSERT, // 0x5E
  124. KEY_PAGE_DOWN, // 0x5F
  125. 0, // 0x60
  126. KEY_2, // 0x61
  127. KEY_3, // 0x62
  128. KEY_4, // 0x63
  129. KEY_5, // 0x64
  130. KEY_6, // 0x65
  131. KEY_7, // 0x66
  132. KEY_8, // 0x67
  133. KEY_9, // 0x68
  134. KEY_0, // 0x69
  135. KEY_MINUS, // 0x6A
  136. KEY_EQUAL, // 0x6B
  137. KEY_TILDE, // 0x6C
  138. KEY_BACKSPACE, // 0x6D
  139. KEY_DELETE, // 0x6E
  140. KEY_PAGE_UP, // 0x6F
  141. 0, // 0x70
  142. KEY_F3, // 0x71
  143. KEY_F2, // 0x72
  144. KEY_F1, // 0x73
  145. KEY_F18, // 0x74
  146. KEY_ESC, // 0x75
  147. KEY_1, // 0x76
  148. KEY_TAB, // 0x77
  149. KEY_F19, // 0x78
  150. 0, // 0x79
  151. 0, // 0x7A
  152. 0, // 0x7B
  153. 0, // 0x7C
  154. 0, // 0x7D
  155. 0, // 0x7E
  156. 0, // 0x7F
  157. 0, // 0x80
  158. 0, // 0x81
  159. 0, // 0x82
  160. 0, // 0x83
  161. 0, // 0x84
  162. KEY_RIGHT_SHIFT, // 0x85
  163. 0, // 0x86
  164. KEY_LEFT_SHIFT, // 0x87
  165. 0, // 0x88
  166. 0, // 0x89
  167. 0, // 0x8A
  168. KEY_LEFT_CTRL, // 0x8B
  169. 0, // 0x8C
  170. KEY_GUI, // 0x8D
  171. 0, // 0x8E
  172. KEY_RIGHT_CTRL, // 0x8F
  173. };
  174. static uint8_t epsonqx10_ColemakMap[] = {
  175. 0x00, // 0x00
  176. KEY_F4, // 0x01
  177. 0, // 0x02
  178. KEY_F5, // 0x03
  179. KEY_F6, // 0x04
  180. KEY_F7, // 0x05
  181. KEY_F8, // 0x06
  182. KEY_F9, // 0x07
  183. 0, // 0x08
  184. KEY_F10, // 0x09
  185. KEY_F11, // 0x0A
  186. KEY_F12, // 0x0B
  187. KEY_F13, // 0x0C
  188. 0, // 0x0D
  189. KEY_F14, // 0x0E
  190. KEY_F15, // 0x0F
  191. 0, // 0x10
  192. 0, // 0x11
  193. 0, // 0x12
  194. 0, // 0x13
  195. 0, // 0x14
  196. KEYPAD_ENTER, // 0x15
  197. KEYPAD_PERIOD, // 0x16
  198. KEYPAD_0, // 0x17
  199. KEYPAD_EQUAL, // 0x18
  200. KEYPAD_6, // 0x19
  201. KEYPAD_5, // 0x1A
  202. KEYPAD_4, // 0x1B
  203. 0, // 0x1C
  204. 0, // 0x1D
  205. KEY_F17, // 0x1E
  206. KEY_F16, // 0x1F
  207. 0, // 0x20
  208. 0, // 0x21
  209. 0, // 0x22
  210. 0, // 0x23
  211. 0, // 0x24
  212. KEYPAD_3, // 0x25
  213. KEYPAD_2, // 0x26
  214. KEYPAD_1, // 0x27
  215. KEYPAD_PLUS, // 0x28
  216. KEYPAD_9, // 0x29
  217. KEYPAD_8, // 0x2A
  218. KEYPAD_7, // 0x2B
  219. KEYPAD_MINUS, // 0x2C
  220. KEYPAD_ASTERIX, // 0x2D
  221. KEYPAD_SLASH, // 0x2E
  222. KEY_NUM_LOCK, // 0x2F
  223. 0, // 0x30
  224. 0, // 0x31
  225. KEY_SPACE, // 0x32
  226. KEY_Z, // 0x33
  227. KEY_X, // 0x34
  228. KEY_C, // 0x35
  229. KEY_V, // 0x36
  230. KEY_B, // 0x37
  231. KEY_K, // 0x38
  232. KEY_M, // 0x39
  233. KEY_COMMA, // 0x3A
  234. KEY_PERIOD, // 0x3B
  235. KEY_UP, // 0x3C
  236. KEY_LEFT, // 0x3D
  237. KEY_RIGHT, // 0x3E
  238. KEY_DOWN, // 0x3F
  239. 0, // 0x40
  240. KEY_F19, // 0x41
  241. KEY_CAPS_LOCK, // 0x42
  242. KEY_A, // 0x43
  243. KEY_R, // 0x44
  244. KEY_S, // 0x45
  245. KEY_T, // 0x46
  246. KEY_D, // 0x47
  247. KEY_H, // 0x48
  248. KEY_N, // 0x49
  249. KEY_E, // 0x4A
  250. KEY_I, // 0x4B
  251. KEY_O, // 0x4C
  252. KEY_QUOTE, // 0x4D
  253. KEY_ENTER, // 0x4E
  254. KEY_SLASH, // 0x4F
  255. 0, // 0x50
  256. KEY_Q, // 0x51
  257. KEY_W, // 0x52
  258. KEY_F, // 0x53
  259. KEY_P, // 0x54
  260. KEY_G, // 0x55
  261. KEY_J, // 0x56
  262. KEY_L, // 0x57
  263. KEY_U, // 0x58
  264. KEY_Y, // 0x59
  265. KEY_SEMICOLON, // 0x5A
  266. KEY_LEFT_BRACE, // 0x5B
  267. KEY_RIGHT_BRACE, // 0x5C
  268. KEY_BACKSLASH, // 0x5D
  269. KEY_INSERT, // 0x5E
  270. KEY_PAGE_DOWN, // 0x5F
  271. 0, // 0x60
  272. KEY_2, // 0x61
  273. KEY_3, // 0x62
  274. KEY_4, // 0x63
  275. KEY_5, // 0x64
  276. KEY_6, // 0x65
  277. KEY_7, // 0x66
  278. KEY_8, // 0x67
  279. KEY_9, // 0x68
  280. KEY_0, // 0x69
  281. KEY_MINUS, // 0x6A
  282. KEY_EQUAL, // 0x6B
  283. KEY_TILDE, // 0x6C
  284. KEY_BACKSPACE, // 0x6D
  285. KEY_DELETE, // 0x6E
  286. KEY_PAGE_UP, // 0x6F
  287. 0, // 0x70
  288. KEY_F3, // 0x71
  289. KEY_F2, // 0x72
  290. KEY_F1, // 0x73
  291. KEY_F18, // 0x74
  292. KEY_ESC, // 0x75
  293. KEY_1, // 0x76
  294. KEY_TAB, // 0x77
  295. KEY_F19, // 0x78
  296. 0, // 0x79
  297. 0, // 0x7A
  298. 0, // 0x7B
  299. 0, // 0x7C
  300. 0, // 0x7D
  301. 0, // 0x7E
  302. 0, // 0x7F
  303. 0, // 0x80
  304. 0, // 0x81
  305. 0, // 0x82
  306. 0, // 0x83
  307. 0, // 0x84
  308. KEY_RIGHT_SHIFT, // 0x85
  309. 0, // 0x86
  310. KEY_LEFT_SHIFT, // 0x87
  311. 0, // 0x88
  312. 0, // 0x89
  313. 0, // 0x8A
  314. KEY_LEFT_CTRL, // 0x8B
  315. 0, // 0x8C
  316. KEY_GUI, // 0x8D
  317. 0, // 0x8E
  318. KEY_ALT, // 0x8F
  319. };
  320. #endif