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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  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. // Modifier Mask
  27. #define MODIFIERS_KEYPAD 0
  28. #define MODIFIERS_KEYBOARD 4
  29. // ----- Variables -----
  30. //static uint8_t keypad_modifierMask[] = {};
  31. static uint8_t keyboard_modifierMask[] = { 1, 17, 33, 49 };
  32. //static uint8_t alternate_modifierMask[] = { 1, 17, 33, 49, 62 };
  33. // Default 1-indexed key mappings
  34. /*
  35. static uint8_t keypadDefaultMap[] = { 0,
  36. KEYPAD_7,
  37. KEYPAD_8,
  38. KEYPAD_9,
  39. KEYPAD_SLASH,
  40. KEYPAD_4,
  41. KEYPAD_5,
  42. KEYPAD_6,
  43. KEYPAD_ASTERIX,
  44. KEYPAD_1,
  45. KEYPAD_2,
  46. KEYPAD_3,
  47. KEYPAD_MINUS,
  48. KEYPAD_ENTER,
  49. KEYPAD_0,
  50. KEYPAD_PERIOD,
  51. KEYPAD_PLUS };
  52. */
  53. static uint8_t defaultMap[] = { 0,
  54. KEY_GUI,
  55. KEY_1,
  56. KEY_2,
  57. KEY_3,
  58. KEY_4,
  59. KEY_5,
  60. KEY_6,
  61. KEY_7,
  62. KEY_8,
  63. KEY_9,
  64. KEY_0,
  65. KEY_MINUS,
  66. KEY_EQUAL,
  67. KEY_BACKSLASH,
  68. KEY_TILDE,
  69. KEY_BACKSPACE,
  70. KEY_ALT,
  71. KEY_TAB,
  72. KEY_Q,
  73. KEY_W,
  74. KEY_E,
  75. KEY_R,
  76. KEY_T,
  77. KEY_Y,
  78. KEY_U,
  79. KEY_I,
  80. KEY_O,
  81. KEY_P,
  82. KEY_LEFT_BRACE,
  83. KEY_RIGHT_BRACE,
  84. KEY_DELETE,
  85. KEY_UP,
  86. KEY_CTRL,
  87. KEY_CAPS_LLOCK,
  88. KEY_A,
  89. KEY_S,
  90. KEY_D,
  91. KEY_F,
  92. KEY_G,
  93. KEY_H,
  94. KEY_J,
  95. KEY_K,
  96. KEY_L,
  97. KEY_SEMICOLON,
  98. KEY_QUOTE,
  99. KEY_ENTER,
  100. KEY_DOWN,
  101. KEY_ESC,
  102. KEY_LEFT_SHIFT,
  103. KEY_Z,
  104. KEY_X,
  105. KEY_C,
  106. KEY_V,
  107. KEY_B,
  108. KEY_N,
  109. KEY_M,
  110. KEY_COMMA,
  111. KEY_PERIOD,
  112. KEY_SLASH,
  113. KEY_RIGHT_SHIFT,
  114. KEY_LEFT,
  115. KEY_RIGHT,
  116. KEY_SPACE };
  117. /*
  118. static uint8_t navigationMap[] = { 0,
  119. KEY_GUI,
  120. KEY_F1,
  121. KEY_F2,
  122. KEY_F3,
  123. KEY_F4,
  124. KEY_F5,
  125. KEY_F6,
  126. KEY_F7,
  127. KEY_F8,
  128. KEY_F9,
  129. KEY_F10,
  130. KEY_F11,
  131. KEY_F12,
  132. KEY_INSERT,
  133. KEY_DELETE,
  134. KEY_BACKSPACE,
  135. KEY_ALT,
  136. KEY_CAPS_LOCK,
  137. 0,
  138. 0,
  139. 0,
  140. 0,
  141. 0,
  142. 0,
  143. 0,
  144. KEY_SYSREQ_ATT,
  145. KEY_SCROLL_LOCK,
  146. KEY_PAUSE,
  147. KEY_UP,
  148. 0,
  149. 0,
  150. 0,
  151. KEY_CTRL,
  152. KEY_CAPS_LLOCK,
  153. 0,
  154. 0,
  155. 0,
  156. 0,
  157. 0,
  158. KEYPAD_ASTERIX,
  159. KEYPAD_SLASH,
  160. KEY_HOME,
  161. KEY_PAGE_UP,
  162. KEY_LEFT,
  163. KEY_RIGHT,
  164. KEY_ENTER,
  165. 0,
  166. KEY_ESC,
  167. KEY_LEFT_SHIFT,
  168. 0,
  169. 0,
  170. 0,
  171. 0,
  172. 0,
  173. KEYPAD_PLUS,
  174. KEYPAD_MINUS,
  175. KEY_END,
  176. KEY_PAGE_DOWN,
  177. KEY_DOWN,
  178. KEY_RIGHT_SHIFT,
  179. 165,
  180. KEY_RIGHT_ALT,
  181. KEY_SPACE };
  182. static uint8_t colemakMap[] = { 0,
  183. KEY_GUI,
  184. KEY_1,
  185. KEY_2,
  186. KEY_3,
  187. KEY_4,
  188. KEY_5,
  189. KEY_6,
  190. KEY_7,
  191. KEY_8,
  192. KEY_9,
  193. KEY_0,
  194. KEY_MINUS,
  195. KEY_EQUAL,
  196. KEY_BACKSLASH,
  197. KEY_TILDE,
  198. KEY_BACKSPACE,
  199. KEY_ALT,
  200. KEY_TAB,
  201. KEY_Q,
  202. KEY_W,
  203. KEY_F,
  204. KEY_P,
  205. KEY_G,
  206. KEY_J,
  207. KEY_L,
  208. KEY_U,
  209. KEY_Y,
  210. KEY_SEMICOLON,
  211. KEY_LEFT_BRACE,
  212. KEY_RIGHT_BRACE,
  213. KEY_DELETE,
  214. KEY_PAGE_UP,
  215. KEY_CTRL,
  216. KEY_CAPS_LLOCK,
  217. KEY_A,
  218. KEY_R,
  219. KEY_S,
  220. KEY_T,
  221. KEY_D,
  222. KEY_H,
  223. KEY_N,
  224. KEY_E,
  225. KEY_I,
  226. KEY_O,
  227. KEY_QUOTE,
  228. KEY_ENTER,
  229. KEY_PAGE_DOWN,
  230. KEY_ESC,
  231. KEY_LEFT_SHIFT,
  232. KEY_Z,
  233. KEY_X,
  234. KEY_C,
  235. KEY_V,
  236. KEY_B,
  237. KEY_K,
  238. KEY_M,
  239. KEY_COMMA,
  240. KEY_PERIOD,
  241. KEY_SLASH,
  242. KEY_RIGHT_SHIFT,
  243. 165,
  244. KEY_RIGHT_ALT,
  245. KEY_SPACE };
  246. */
  247. #endif