keypads.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. /*
  2. Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. /**********************************************_**********************************/
  15. /* KEYPADS. Mostly all in Bepo and Qwerty versions */
  16. /* 4 row Pads: */
  17. /* * The BEAKL 15,19 Number pad, for the left hand. */
  18. /* * The BEAKL Wi hex pad, Number pad. */
  19. /* * Regular Number pad, for the right hand. */
  20. /* * 12 Function pad. */
  21. /* 3 row pads: */
  22. /* keypad */
  23. /* function pad - 3x4, 12 function keys. */
  24. /* */
  25. /* LAYERS: */
  26. /* 4 Row: */
  27. /* * BEAKL with a compact FuncPad on the right. */
  28. /* * Funcpad on the left, keypad on the right. */
  29. /* 3 Row: */
  30. /* * Funcpad on the left, keypad on the right. */
  31. /* * BEAKL with a compact FuncPad on the right. */
  32. /* */
  33. /********************************************************************************/
  34. // BEAKL 15 (numpad layer):
  35. /* +=* ^%~ */
  36. /* ↹523: */
  37. /* - 7.104 */
  38. /* /698, */
  39. /* BEAKL27 (numpad layer): */
  40. /* ↹+/\*= yxz */
  41. /* -523: ~FED */
  42. /* 7.104 {CBA} */
  43. /* ,698⏎ []% */
  44. // Keypads
  45. #define ___KEYPAD_BEAKL_L1___ ___, _PLUS, _SLSH, _ASTR, _EQL
  46. #define ___KEYPAD_BEAKL_L2___ _MINS, _5, _2, _3, _COLN
  47. #define ___KEYPAD_BEAKL_L3___ _7, _DOT, _1, _0, _4
  48. #define ___KEYPAD_BEAKL_L4___ _COMM, _6, _9, _8, _COMM
  49. #define ___6KEYPAD_BEAKL_L1___ ___, KEYPAD_BEAKL_L1
  50. #define ___6KEYPAD_BEAKL_L2___ ___, KEYPAD_BEAKL_L2
  51. #define ___6KEYPAD_BEAKL_L3___ KC_MINS, KEYPAD_BEAKL_L3
  52. #define ___6KEYPAD_BEAKL_L4___ ___, KEYPAD_BEAKL_L4
  53. // if there's room. the top row on the right.
  54. #define ___KEYPAD_BEAKL_R1___ ___, KC_CIRC, KC_PERC, KC_TILD, ___
  55. /// parts is parts.
  56. #define ___KP_BKL_WI_L1___ _X_, HEX_A, HEX_B, HEX_C, _X_
  57. #define ___KP_BKL_WI_L2___ _X_, HEX_D, HEX_E, HEX_F, _X_
  58. #define ___KP_BKL_WI_L3___ _X_, L_BRKT, R_BRKT, DELIM, _X_
  59. #define ___KP_BKL_WI_R1___ _SLSH, _4, _5, _9, _ASTR
  60. #define ___KP_BKL_WI_R2___ _DOT , _1, _2, _3, _MINS
  61. #define ___KP_BKL_WI_R3___ _COMM, _8, _6, _7, _PLUS
  62. #define ___KEYPAD_1___ ___, _7, _8, _9, _PSLS
  63. #define ___KEYPAD_2___ _DOT, _4, _5, _6, _PAST
  64. #define ___KEYPAD_3___ _0, _1, _2, _3, _PMNS
  65. #define ___KEYPAD_miryoku_1___ _LBRC, _7, _8, _9, _RBRC, ____5_
  66. #define ___KEYPAD_miryoku_2___ _SCLN, _4, _5, _6, _EQUAL, ____5_
  67. #define ___KEYPAD_miryoku_3___ _GRV, _1, _2, _3, _BSLS, ____5_
  68. // 4 Row keypads
  69. #define ___5KEYPAD_1___ _X_, ___KEYPAD_1___
  70. #define ___5KEYPAD_2___ _X_, ___KEYPAD_2___
  71. #define ___5KEYPAD_3___ _X_, ___KEYPAD_3___
  72. #define ___5KEYPAD_4___ _X_, _0, _DOT, _PEQL, _PPLS
  73. // Function pad. Same idea as above, but for function keys.
  74. // Funcpads are a bit weird. THey are KC values, so for
  75. // this to work, there are BP_ versions of the F keys.
  76. // I don't really use this, so maybe it'll go away in favor
  77. // of something more useful.
  78. // 4x3 and 3x4 funcpads.
  79. // Only 4 columns, so the fifth can be added to either end.
  80. #define ___4_FUNCPAD_1___ _F9, _F10, _F11, _F12
  81. #define ___4_FUNCPAD_2___ _F5, _F6, _F7, _F8
  82. #define ___4_FUNCPAD_3___ _F1, _F2, _F3, _F4
  83. #define ___FUNCPAD_miryoku_1___ KC_F12, KC_F7, KC_F8, KC_F9, KC_PRINT_SCREEN
  84. #define ___FUNCPAD_miryoku_2___ KC_F11, KC_F4, KC_F5, KC_F6, KC_SCROLL_LOCK
  85. #define ___FUNCPAD_miryoku_3___ KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUSE
  86. // For the left or right side.
  87. #define ___5x4_FUNCPAD_T___ _TRNS, _F10, _F11, _F12, _TRNS
  88. #define ___5x4_FUNCPAD_1___ _TRNS, _F7, _F8, _F9, _TRNS
  89. #define ___5x4_FUNCPAD_2___ _TRNS, _F4, _F5, _F6, _TRNS
  90. #define ___5x4_FUNCPAD_3___ _TRNS, _F1, _F2, _F3, _TRNS
  91. /********************************************************************************/
  92. /* FUNCPAD and Keypad Layer chunks */
  93. /********************************************************************************/
  94. // beakl wi is a hexpad numpad.
  95. /* Beakle Wi, Hexpad and keypad - needs a zero somewhere.*/
  96. #define CARTE_KP_BKL_WI \
  97. carte_de_map( " ABC /459* ", \
  98. " DEF .123- ", \
  99. " {}| ,867+ ")
  100. #define ___KP_BKL_WI_3x10___ \
  101. CHUNK_LANG_MAP(___KP_BKL_WI_L1___, ___KP_BKL_WI_R1___, \
  102. ___KP_BKL_WI_L2___, ___KP_BKL_WI_R2___, \
  103. ___KP_BKL_WI_L3___, ___KP_BKL_WI_R3___)
  104. // BEAKL 15 and a f1-f12 funcpad
  105. #define CARTE_KP_BKL_FUNC \
  106. carte_de_map(" 523: F9-12", \
  107. " -7.104 F5-8", \
  108. " /798, F1-4")
  109. #define ___KP_BKL_FUNC_3x10___ \
  110. CHUNK_LANG_MAP(___KEYPAD_BEAKL_L2___, _TRNS, ___4_FUNCPAD_1___, \
  111. ___KEYPAD_BEAKL_L3___, _TRNS, ___4_FUNCPAD_2___, \
  112. ___KEYPAD_BEAKL_L4___, _TRNS, ___4_FUNCPAD_3___)
  113. // BEAKL 15 and mods.
  114. #define CARTE_KP_BKL_MODS \
  115. carte_de_map(" 523: SL Mods", \
  116. " -7.104 OS Mods", \
  117. " /798, Enter")
  118. #define ___KP_BKL_MODS_3x10___ \
  119. CHUNK_LANG_MAP(___KEYPAD_BEAKL_L2___, _TRNS, ___SML_MODS_R___, \
  120. ___KEYPAD_BEAKL_L3___, ___OS_MODS_R___, \
  121. ___KEYPAD_BEAKL_L4___, _TRNS, _ENT, _ENT, _ENT, _TRNS)
  122. // 4 rows, BEAKL 15 and a f1-f12 funcpad
  123. #define ___KP_BKL_FUNC_4x10___ \
  124. CHUNK_LANG_ROW(___KEYPAD_BEAKL_L1___, ___KEYPAD_BEAKL_R1___), \
  125. CHUNK_LANG_MAP(___KP_BKL_FUNC_3x10___)
  126. // 4 rows, funcpad, regular keypad on right.
  127. #define ___FP_KP_4x10___ \
  128. CHUNK_LANG_ROW(___5x4_FUNCPAD_T___, ___5KEYPAD_1___), \
  129. CHUNK_LANG_MAP(___5x4_FUNCPAD_1___, ___5KEYPAD_2___, \
  130. ___5x4_FUNCPAD_2___, ___5KEYPAD_3___, \
  131. ___5x4_FUNCPAD_3___, ___5KEYPAD_4___)
  132. #define CARTE_FP_KP \
  133. carte_de_map(" F9-12 789+", \
  134. " F5-8 .456*", \
  135. " F1-4 0123-")
  136. // funcpad, regular keypad on right.
  137. #define ___FP_KP_3x10___ \
  138. CHUNK_LANG_MAP(___4_FUNCPAD_1___, ___, ___5KEYPAD_1___, \
  139. ___4_FUNCPAD_2___, ___, ___5KEYPAD_2___, \
  140. ___4_FUNCPAD_3___, ___, ___5KEYPAD_3___)
  141. #define CARTE_KP_FP \
  142. carte_de_map(" 789+ F9-12", \
  143. " .456* F5-8", \
  144. " 0123- F1-4")
  145. // regular keypad on left.
  146. #define ___KP_FP_3x10___ \
  147. CHUNK_LANG_MAP(___5KEYPAD_1___, ___, ___4_FUNCPAD_1___, \
  148. ___5KEYPAD_2___, ___, ___4_FUNCPAD_2___, \
  149. ___5KEYPAD_3___, ___, ___4_FUNCPAD_3___)
  150. #define CARTE_MODS_KP \
  151. carte_de_map(" SMods 789+", \
  152. " OSMods .456*", \
  153. " F1-4 0123-")
  154. // funcpad, regular keypad on right.
  155. #define ___MODS_KP_3x10___ \
  156. CHUNK_LANG_MAP(___SML_MODS_L___, ___, ___5KEYPAD_1___, \
  157. ___OS_MODS_L___, ___5KEYPAD_2___, \
  158. ___5___, ___5KEYPAD_3___)
  159. #define CARTE_KP_MODS \
  160. carte_de_map(" 789+ SMods", \
  161. " .456* OSMods", \
  162. " 0123- ")
  163. // regular keypad on left.
  164. #define ___KP_MODS_3x10___ \
  165. CHUNK_LANG_MAP(___5KEYPAD_1___, ___, ___SML_MODS_R___, \
  166. ___5KEYPAD_2___, ___OS_MODS_L___, \
  167. ___5KEYPAD_3___, ___, ___4___)
  168. #define CARTE_FUN \
  169. carte_de_map(" F9-F12 SMods", \
  170. " F5-F8 OSMods", \
  171. " F1-F4 ")
  172. #define ___FUN_3x10___ \
  173. CHUNK_LANG_MAP(___4_FUNCPAD_1___, ___, ___, ___SML_MODS_R___, \
  174. ___4_FUNCPAD_2___, ___, ___OS_MODS_R___, \
  175. ___4_FUNCPAD_3___, ___, ___5___)
  176. #define CARTE_FUN_MIRYOKU \
  177. carte_de_map("F12 F7-F9 prt SMods", \
  178. "F11 F4-F6 scr OSMods", \
  179. "F10 F1-F3 pse ")
  180. #define ___FP_MIRYOKU_3x10___ \
  181. ___FUNCPAD_miryoku_1___, ___, ___SML_MODS_R___, \
  182. ___FUNCPAD_miryoku_2___, ___OS_MODS_R___, \
  183. ___FUNCPAD_miryoku_3___, ___5___
  184. // wants . and 0 on left thumb.
  185. #define CARTE_KP_MIRYOKU \
  186. carte_de_map(" [789]", \
  187. " ;456=", \
  188. " `123\\")
  189. #define ___KP_MIRYOKU_3x10___ \
  190. CHUNK_LANG_MAP(___KEYPAD_miryoku_1___, \
  191. ___KEYPAD_miryoku_2___, \
  192. ___KEYPAD_miryoku_3___)