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.

keymap.h 7.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  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 __KEYMAP_h
  22. #define __KEYMAP_h
  23. // ----- Includes -----
  24. #include "usb_keys.h"
  25. // ----- Defines -----
  26. // ----- Variables -----
  27. // Lots of these variables are not used, so ignore gcc unused warnings
  28. // But just for the variables in this file (and those included into it)
  29. #pragma GCC diagnostic ignored "-Wunused-variable"
  30. #pragma GCC diagnostic push
  31. static uint8_t tandy1000_modifierMask[] = { 0x1D, 0x2A, 0x36, 0x38, 0x46 };
  32. static uint8_t tandy1000_map[] = { 0,
  33. KEY_ESC,
  34. KEY_1,
  35. KEY_2,
  36. KEY_3,
  37. KEY_4,
  38. KEY_5,
  39. KEY_6,
  40. KEY_7,
  41. KEY_8,
  42. KEY_9,
  43. KEY_0,
  44. KEY_MINUS,
  45. KEY_EQUAL,
  46. KEY_BACKSPACE,
  47. KEY_TAB,
  48. KEY_Q,
  49. KEY_W,
  50. KEY_E,
  51. KEY_R,
  52. KEY_T,
  53. KEY_Y,
  54. KEY_U,
  55. KEY_I,
  56. KEY_O,
  57. KEY_P,
  58. KEY_LEFT_BRACE,
  59. KEY_RIGHT_BRACE,
  60. KEY_ENTER,
  61. KEY_CTRL, // 0x1D
  62. KEY_A,
  63. KEY_S,
  64. KEY_D,
  65. KEY_F,
  66. KEY_G,
  67. KEY_H,
  68. KEY_J,
  69. KEY_K,
  70. KEY_L,
  71. KEY_SEMICOLON,
  72. KEY_QUOTE,
  73. KEY_UP,
  74. KEY_LEFT_SHIFT, // 0x2A
  75. KEY_LEFT,
  76. KEY_Z,
  77. KEY_X,
  78. KEY_C,
  79. KEY_V,
  80. KEY_B,
  81. KEY_N,
  82. KEY_M,
  83. KEY_COMMA,
  84. KEY_PERIOD,
  85. KEY_SLASH,
  86. KEY_RIGHT_SHIFT, // 0x36
  87. KEY_PRINTSCREEN,
  88. KEY_ALT, // 0x38
  89. KEY_SPACE,
  90. KEY_CAPS_LOCK,
  91. KEY_F1,
  92. KEY_F2,
  93. KEY_F3,
  94. KEY_F4,
  95. KEY_F5,
  96. KEY_F6,
  97. KEY_F7,
  98. KEY_F8,
  99. KEY_F9,
  100. KEY_F10,
  101. KEY_NUM_LOCK,
  102. KEY_GUI, // Actually Hold... 0x48
  103. KEY_BACKSLASH, // Also KEYPAD_7
  104. KEY_TILDE, // Also KEYPAD_8
  105. KEYPAD_9,
  106. KEY_UP,
  107. KEY_BACKSLASH, // Actually | and KEYPAD_4
  108. KEYPAD_5,
  109. KEYPAD_6,
  110. KEY_RIGHT,
  111. KEYPAD_1,
  112. KEY_TILDE, // Actually ` and KEYPAD_2
  113. KEYPAD_3,
  114. KEYPAD_0,
  115. KEY_DELETE,
  116. KEY_PAUSE,
  117. KEY_INSERT,
  118. KEYPAD_PERIOD,
  119. KEYPAD_ENTER,
  120. KEY_HOME,
  121. KEY_F11,
  122. KEY_F12, // 0x5A
  123. };
  124. static uint8_t tandy1000_colemak[] = { 0,
  125. KEY_ESC,
  126. KEY_1,
  127. KEY_2,
  128. KEY_3,
  129. KEY_4,
  130. KEY_5,
  131. KEY_6,
  132. KEY_7,
  133. KEY_8,
  134. KEY_9,
  135. KEY_0,
  136. KEY_MINUS,
  137. KEY_EQUAL,
  138. KEY_BACKSPACE,
  139. KEY_TAB,
  140. KEY_Q,
  141. KEY_W,
  142. KEY_F,
  143. KEY_P,
  144. KEY_G,
  145. KEY_J,
  146. KEY_L,
  147. KEY_U,
  148. KEY_Y,
  149. KEY_SEMICOLON,
  150. KEY_LEFT_BRACE,
  151. KEY_RIGHT_BRACE,
  152. KEY_ENTER,
  153. KEY_CTRL, // 0x1D
  154. KEY_A,
  155. KEY_R,
  156. KEY_S,
  157. KEY_T,
  158. KEY_D,
  159. KEY_H,
  160. KEY_N,
  161. KEY_E,
  162. KEY_I,
  163. KEY_O,
  164. KEY_QUOTE,
  165. KEY_UP,
  166. KEY_LEFT_SHIFT, // 0x2A
  167. KEY_LEFT,
  168. KEY_Z,
  169. KEY_X,
  170. KEY_C,
  171. KEY_V,
  172. KEY_B,
  173. KEY_K,
  174. KEY_M,
  175. KEY_COMMA,
  176. KEY_PERIOD,
  177. KEY_SLASH,
  178. KEY_RIGHT_SHIFT, // 0x36
  179. KEY_PRINTSCREEN,
  180. KEY_ALT, // 0x38
  181. KEY_SPACE,
  182. 0, //KEY_CAPS_LOCK,
  183. KEY_F1,
  184. KEY_F2,
  185. KEY_F3,
  186. KEY_F4,
  187. KEY_F5,
  188. KEY_F6,
  189. KEY_F7,
  190. KEY_F8,
  191. KEY_F9,
  192. KEY_F10,
  193. 0, //KEY_NUM_LOCK,
  194. KEY_GUI, // Actually Hold... 0x48
  195. KEY_BACKSLASH, // Also KEYPAD_7
  196. KEY_TILDE, // Also KEYPAD_8
  197. KEYPAD_9,
  198. KEY_DOWN,
  199. KEY_BACKSLASH, // Actually | and KEYPAD_4
  200. KEYPAD_5,
  201. KEYPAD_6,
  202. KEY_RIGHT,
  203. KEYPAD_1,
  204. KEY_TILDE, // Actually ` and KEYPAD_2
  205. KEYPAD_3,
  206. KEYPAD_0,
  207. KEY_DELETE,
  208. KEY_PAUSE,
  209. KEY_INSERT,
  210. KEYPAD_PERIOD,
  211. KEYPAD_ENTER,
  212. KEY_HOME,
  213. KEY_F11,
  214. KEY_F12, // 0x5A
  215. };
  216. //static uint8_t keypad_modifierMask[] = {};
  217. //static uint8_t keyboard_modifierMask[] = { 1, 17, 33, 49 };
  218. //static uint8_t alternate_modifierMask[] = { 1, 17, 33, 49, 62 };
  219. // Default 1-indexed key mappings
  220. /*
  221. static uint8_t keypadDefaultMap[] = { 0,
  222. KEYPAD_7,
  223. KEYPAD_8,
  224. KEYPAD_9,
  225. KEYPAD_SLASH,
  226. KEYPAD_4,
  227. KEYPAD_5,
  228. KEYPAD_6,
  229. KEYPAD_ASTERIX,
  230. KEYPAD_1,
  231. KEYPAD_2,
  232. KEYPAD_3,
  233. KEYPAD_MINUS,
  234. KEYPAD_ENTER,
  235. KEYPAD_0,
  236. KEYPAD_PERIOD,
  237. KEYPAD_PLUS };
  238. static uint8_t defaultMap[] = { 0,
  239. KEY_GUI,
  240. KEY_1,
  241. KEY_2,
  242. KEY_3,
  243. KEY_4,
  244. KEY_5,
  245. KEY_6,
  246. KEY_7,
  247. KEY_8,
  248. KEY_9,
  249. KEY_0,
  250. KEY_MINUS,
  251. KEY_EQUAL,
  252. KEY_BACKSLASH,
  253. KEY_TILDE,
  254. KEY_BACKSPACE,
  255. KEY_ALT,
  256. KEY_TAB,
  257. KEY_Q,
  258. KEY_W,
  259. KEY_E,
  260. KEY_R,
  261. KEY_T,
  262. KEY_Y,
  263. KEY_U,
  264. KEY_I,
  265. KEY_O,
  266. KEY_P,
  267. KEY_LEFT_BRACE,
  268. KEY_RIGHT_BRACE,
  269. KEY_DELETE,
  270. KEY_UP,
  271. KEY_CTRL,
  272. KEY_CAPS_LLOCK,
  273. KEY_A,
  274. KEY_S,
  275. KEY_D,
  276. KEY_F,
  277. KEY_G,
  278. KEY_H,
  279. KEY_J,
  280. KEY_K,
  281. KEY_L,
  282. KEY_SEMICOLON,
  283. KEY_QUOTE,
  284. KEY_ENTER,
  285. KEY_DOWN,
  286. KEY_ESC,
  287. KEY_LEFT_SHIFT,
  288. KEY_Z,
  289. KEY_X,
  290. KEY_C,
  291. KEY_V,
  292. KEY_B,
  293. KEY_N,
  294. KEY_M,
  295. KEY_COMMA,
  296. KEY_PERIOD,
  297. KEY_SLASH,
  298. KEY_RIGHT_SHIFT,
  299. KEY_LEFT,
  300. KEY_RIGHT,
  301. KEY_SPACE };
  302. */
  303. /*
  304. static uint8_t navigationMap[] = { 0,
  305. KEY_GUI,
  306. KEY_F1,
  307. KEY_F2,
  308. KEY_F3,
  309. KEY_F4,
  310. KEY_F5,
  311. KEY_F6,
  312. KEY_F7,
  313. KEY_F8,
  314. KEY_F9,
  315. KEY_F10,
  316. KEY_F11,
  317. KEY_F12,
  318. KEY_INSERT,
  319. KEY_DELETE,
  320. KEY_BACKSPACE,
  321. KEY_ALT,
  322. KEY_CAPS_LOCK,
  323. 0,
  324. 0,
  325. 0,
  326. 0,
  327. 0,
  328. 0,
  329. 0,
  330. KEY_SYSREQ_ATT,
  331. KEY_SCROLL_LOCK,
  332. KEY_PAUSE,
  333. KEY_UP,
  334. 0,
  335. 0,
  336. 0,
  337. KEY_CTRL,
  338. KEY_CAPS_LLOCK,
  339. 0,
  340. 0,
  341. 0,
  342. 0,
  343. 0,
  344. KEYPAD_ASTERIX,
  345. KEYPAD_SLASH,
  346. KEY_HOME,
  347. KEY_PAGE_UP,
  348. KEY_LEFT,
  349. KEY_RIGHT,
  350. KEY_ENTER,
  351. 0,
  352. KEY_ESC,
  353. KEY_LEFT_SHIFT,
  354. 0,
  355. 0,
  356. 0,
  357. 0,
  358. 0,
  359. KEYPAD_PLUS,
  360. KEYPAD_MINUS,
  361. KEY_END,
  362. KEY_PAGE_DOWN,
  363. KEY_DOWN,
  364. KEY_RIGHT_SHIFT,
  365. 165,
  366. KEY_RIGHT_ALT,
  367. KEY_SPACE };
  368. static uint8_t colemakMap[] = { 0,
  369. KEY_GUI,
  370. KEY_1,
  371. KEY_2,
  372. KEY_3,
  373. KEY_4,
  374. KEY_5,
  375. KEY_6,
  376. KEY_7,
  377. KEY_8,
  378. KEY_9,
  379. KEY_0,
  380. KEY_MINUS,
  381. KEY_EQUAL,
  382. KEY_BACKSLASH,
  383. KEY_TILDE,
  384. KEY_BACKSPACE,
  385. KEY_ALT,
  386. KEY_TAB,
  387. KEY_Q,
  388. KEY_W,
  389. KEY_F,
  390. KEY_P,
  391. KEY_G,
  392. KEY_J,
  393. KEY_L,
  394. KEY_U,
  395. KEY_Y,
  396. KEY_SEMICOLON,
  397. KEY_LEFT_BRACE,
  398. KEY_RIGHT_BRACE,
  399. KEY_DELETE,
  400. KEY_PAGE_UP,
  401. KEY_CTRL,
  402. KEY_CAPS_LLOCK,
  403. KEY_A,
  404. KEY_R,
  405. KEY_S,
  406. KEY_T,
  407. KEY_D,
  408. KEY_H,
  409. KEY_N,
  410. KEY_E,
  411. KEY_I,
  412. KEY_O,
  413. KEY_QUOTE,
  414. KEY_ENTER,
  415. KEY_PAGE_DOWN,
  416. KEY_ESC,
  417. KEY_LEFT_SHIFT,
  418. KEY_Z,
  419. KEY_X,
  420. KEY_C,
  421. KEY_V,
  422. KEY_B,
  423. KEY_K,
  424. KEY_M,
  425. KEY_COMMA,
  426. KEY_PERIOD,
  427. KEY_SLASH,
  428. KEY_RIGHT_SHIFT,
  429. 165,
  430. KEY_RIGHT_ALT,
  431. KEY_SPACE };
  432. */
  433. // Only ignore unused warnings for the above variables
  434. #pragma GCC diagnostic pop
  435. #endif