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.

ibmconvertible.h 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. /* Copyright (C) 2012 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 __IBMCONV_H
  22. #define __IBMCONV_H
  23. // This file contains various key layouts for the IBM Convertible keyboard
  24. // ----- Variables -----
  25. static uint8_t ibmconv_ModifierMask [] = { 0x2C, 0x38, 0x3A, 0x3B, 0x3C, 0x3E };
  26. // Default 1-indexed key mappings
  27. static uint8_t ibmconv_DefaultMap[] = {
  28. 0, // 0x00
  29. KEY_TILDE, // 0x01
  30. KEY_1, // 0x02
  31. KEY_2, // 0x03
  32. KEY_3, // 0x04
  33. KEY_4, // 0x05
  34. KEY_5, // 0x06
  35. KEY_6, // 0x07
  36. KEY_7, // 0x08 (7)
  37. KEY_8, // 0x09 (8)
  38. KEY_9, // 0x0A (9)
  39. KEY_0, // 0x0B
  40. KEY_MINUS, // 0x0C (-)
  41. KEY_EQUAL, // 0x0D (+)
  42. KEY_BACKSLASH, // 0x0E
  43. KEY_BACKSPACE, // 0x0F
  44. KEY_TAB, // 0x10
  45. KEY_Q, // 0x11
  46. KEY_W, // 0x12
  47. KEY_E, // 0x13
  48. KEY_R, // 0x14
  49. KEY_T, // 0x15
  50. KEY_Y, // 0x16
  51. KEY_U, // 0x17 (4)
  52. KEY_I, // 0x18 (5)
  53. KEY_O, // 0x19 (6)
  54. KEY_P, // 0x1A
  55. KEY_LEFT_BRACE, // 0x1B
  56. KEY_RIGHT_BRACE, // 0x1C
  57. 0, // 0x1D
  58. KEY_CAPS_LOCK, // 0x1E
  59. KEY_A, // 0x1F
  60. KEY_S, // 0x20
  61. KEY_D, // 0x21
  62. KEY_F, // 0x22
  63. KEY_G, // 0x23
  64. KEY_H, // 0x24
  65. KEY_J, // 0x25 (1)
  66. KEY_K, // 0x26 (2)
  67. KEY_L, // 0x27 (3)
  68. KEY_SEMICOLON, // 0x28
  69. KEY_QUOTE, // 0x29
  70. 0, // 0x2A (1/4)
  71. KEY_ENTER, // 0x2B
  72. KEY_LEFT_SHIFT, // 0x2C
  73. 0, // 0x2D
  74. KEY_Z, // 0x2E
  75. KEY_X, // 0x2F
  76. KEY_C, // 0x30
  77. KEY_V, // 0x31
  78. KEY_B, // 0x32
  79. KEY_N, // 0x33
  80. KEY_M, // 0x34 (0)
  81. KEY_COMMA, // 0x35
  82. KEY_PERIOD, // 0x36 (Decimal)
  83. KEY_SLASH, // 0x37 (/)
  84. KEY_RIGHT_SHIFT, // 0x38
  85. KEY_PRINTSCREEN, // 0x39 (*)
  86. KEY_LEFT_CTRL, // 0x3A
  87. KEY_LEFT_GUI, // 0x3B
  88. KEY_LEFT_ALT, // 0x3C
  89. KEY_SPACE, // 0x3D
  90. KEY_RIGHT_ALT, // 0x3E
  91. KEY_LEFT, // 0x3F (Home)
  92. KEY_UP, // 0x40 (PgUp)
  93. KEY_DOWN, // 0x41 (PgDn)
  94. KEY_RIGHT, // 0x42 (End)
  95. KEY_ESC, // 0x43
  96. KEY_F1, // 0x44
  97. KEY_F2, // 0x45
  98. KEY_F3, // 0x46
  99. KEY_F4, // 0x47
  100. KEY_F5, // 0x48
  101. KEY_F6, // 0x49
  102. KEY_F7, // 0x4A
  103. KEY_F8, // 0x4B
  104. KEY_F9, // 0x4C
  105. KEY_F10, // 0x4D
  106. KEY_NUM_LOCK, // 0x4E
  107. KEY_SCROLL_LOCK, // 0x4F
  108. KEY_INSERT, // 0x50
  109. KEY_DELETE, // 0x51
  110. };
  111. static uint8_t ibmconv_ColemakMap[] = {
  112. 0, // 0x00
  113. KEY_TILDE, // 0x01
  114. KEY_1, // 0x02
  115. KEY_2, // 0x03
  116. KEY_3, // 0x04
  117. KEY_4, // 0x05
  118. KEY_5, // 0x06
  119. KEY_6, // 0x07
  120. KEY_7, // 0x08 (7)
  121. KEY_8, // 0x09 (8)
  122. KEY_9, // 0x0A (9)
  123. KEY_0, // 0x0B
  124. KEY_MINUS, // 0x0C (-)
  125. KEY_EQUAL, // 0x0D (+)
  126. KEY_BACKSLASH, // 0x0E
  127. KEY_BACKSPACE, // 0x0F
  128. KEY_TAB, // 0x10
  129. KEY_Q, // 0x11
  130. KEY_W, // 0x12
  131. KEY_F, // 0x13
  132. KEY_P, // 0x14
  133. KEY_G, // 0x15
  134. KEY_J, // 0x16
  135. KEY_L, // 0x17 (4)
  136. KEY_U, // 0x18 (5)
  137. KEY_Y, // 0x19 (6)
  138. KEY_SEMICOLON, // 0x1A
  139. KEY_LEFT_BRACE, // 0x1B
  140. KEY_RIGHT_BRACE, // 0x1C
  141. 0, // 0x1D
  142. KEY_CAPS_LOCK, // 0x1E
  143. KEY_A, // 0x1F
  144. KEY_R, // 0x20
  145. KEY_S, // 0x21
  146. KEY_T, // 0x22
  147. KEY_D, // 0x23
  148. KEY_H, // 0x24
  149. KEY_N, // 0x25 (1)
  150. KEY_E, // 0x26 (2)
  151. KEY_I, // 0x27 (3)
  152. KEY_O, // 0x28
  153. KEY_QUOTE, // 0x29
  154. 0, // 0x2A (1/4)
  155. KEY_ENTER, // 0x2B
  156. KEY_LEFT_SHIFT, // 0x2C
  157. 0, // 0x2D
  158. KEY_Z, // 0x2E
  159. KEY_X, // 0x2F
  160. KEY_C, // 0x30
  161. KEY_V, // 0x31
  162. KEY_B, // 0x32
  163. KEY_K, // 0x33
  164. KEY_M, // 0x34 (0)
  165. KEY_COMMA, // 0x35
  166. KEY_PERIOD, // 0x36 (Decimal)
  167. KEY_SLASH, // 0x37 (/)
  168. KEY_RIGHT_SHIFT, // 0x38
  169. KEY_PRINTSCREEN, // 0x39 (*)
  170. KEY_LEFT_CTRL, // 0x3A
  171. KEY_LEFT_GUI, // 0x3B
  172. KEY_LEFT_ALT, // 0x3C
  173. KEY_SPACE, // 0x3D
  174. KEY_RIGHT_ALT, // 0x3E
  175. KEY_LEFT, // 0x3F (Home)
  176. KEY_UP, // 0x40 (PgUp)
  177. KEY_DOWN, // 0x41 (PgDn)
  178. KEY_RIGHT, // 0x42 (End)
  179. KEY_ESC, // 0x43
  180. KEY_F1, // 0x44
  181. KEY_F2, // 0x45
  182. KEY_F3, // 0x46
  183. KEY_F4, // 0x47
  184. KEY_F5, // 0x48
  185. KEY_F6, // 0x49
  186. KEY_F7, // 0x4A
  187. KEY_F8, // 0x4B
  188. KEY_F9, // 0x4C
  189. KEY_F10, // 0x4D
  190. KEY_NUM_LOCK, // 0x4E
  191. KEY_SCROLL_LOCK, // 0x4F
  192. KEY_INSERT, // 0x50
  193. KEY_DELETE, // 0x51
  194. };
  195. #endif