wrappers.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. /* Copyright 2020 Stephen Bush
  2. *
  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. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #pragma once
  17. #include "muppetjones.h"
  18. #include "tapmods.h"
  19. /* Pattern adapted from users/drashna/wrapper.h
  20. Define per-layout keymap sections. Also requires a wrapper.
  21. Example:
  22. #define LAYOUT_:name_wrapper(...) LAYOUT_:name(__VA_ARGS__)
  23. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  24. [_MODS] = LAYOUT_:name _wrapper(
  25. _______, ___________________BLANK___________________, ...
  26. ...
  27. ),
  28. }
  29. */
  30. #ifdef MOUSEKEY_ENABLE
  31. # define MK_WH_D KC_WH_D
  32. # define MK_WH_U KC_WH_U
  33. #else
  34. # define MK_WH_D XXXXXXX
  35. # define MK_WH_U XXXXXXX
  36. #endif
  37. // clang-format off
  38. /* Blank-ish
  39. * ,----------------------------------. * ,----------------------------------.
  40. * | TRNS | TRNS | TRNS | TRNS | TRNS | * | xxxx | xxxx | xxxx | xxxx | xxxx |
  41. * `----------------------------------' * `----------------------------------'
  42. * ,----------------------------------. * ,----------------------------------.
  43. * | LGUI | LALT | LCTL | LSFT | TRNS | * | TRNS | RSFT | RCTL | LALT | RGUI |
  44. * `----------------------------------' * `----------------------------------'
  45. */
  46. #define __BLANK____________________________________ _______, _______, _______, _______, _______
  47. #define __BLANK_NOOP_______________________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
  48. #define __BLANK_W_GACS_____________________________ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______
  49. #define __BLANK_W_SCAG_____________________________ _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI
  50. /* Adjust LH
  51. * ,----------------------------------. ,----------------------------------.
  52. * |Reset |Debug | xxxx |Term+ |Term- | | xxxx |AGNORM|AGSWAP| xxxx | xxxx |
  53. * |------+------+------+------+------| |------+------+------+------+------|
  54. * |RgbTog| Hue+ | Sat+ | Val+ |RgbMod| | xxxx |CLMKDH|QWERTY| xxxx | xxxx |
  55. * |------+------+------+------+------| |------+------+------+------+------|
  56. * | xxxx | Hue- | Sat- | Val- | xxxx | | xxxx | xxxx | xxxx | xxxx | xxxx |
  57. * `----------------------------------' `----------------------------------'
  58. */
  59. // NOTE: The "BACKLIT" keycode is planck specific
  60. #define __ADJUST_L1________________________________ QK_BOOT, DB_TOGG, XXXXXXX, XXXXXXX, XXXXXXX
  61. #define __ADJUST_L2________________________________ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD
  62. #define __ADJUST_L3________________________________ XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX
  63. #define __ADJUST_R1________________________________ XXXXXXX, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX
  64. #define __ADJUST_R2________________________________ XXXXXXX, CLMK_DH, QWERTY, XXXXXXX, XXXXXXX
  65. #define __ADJUST_R3________________________________ __BLANK_NOOP_______________________________
  66. /* Colemak mod-DH
  67. * ,----------------------------------. ,----------------------------------.
  68. * | Q | W | F | P | B | | J | L | U | Y | ;ˆ |
  69. * |------+------+------+------+------| |------+------+------+------+------|
  70. * | A | R | S | T | G | | M | N | E | I | O |
  71. * |------+------+------+------+------| |------+------+------+------+------|
  72. * | Z | X | C | D | V˜ | | K | H | , | . | / |
  73. * `----------------------------------' `----------------------------------'
  74. * ˆ Alternate: KC_QUOT
  75. * ° Alternate: Home row mods (GASC, SCAG)
  76. * ˜ Alternate: Hold for shift
  77. *
  78. * Colemak mod-DH (alt and alt+shift)
  79. * ,----------------------------------. ,----------------------------------.
  80. * | œ Œ | ∑ „ | | π ∏ | ı | | ∆ Ô | | | ¥ Á | æ Æ |
  81. * |------+------+------+------+------| |------+------+------+------+------|
  82. * | å Å | ® ‰ | ß Í | † ˇ | © ˝ | | µ Â | ˜ ˜ | ´ ´ | ˆ ˆ | Ø |
  83. * |------+------+------+------+------| |------+------+------+------+------|
  84. * | Ω ¸ | ≈ ˛ | ç Ç | Î | √ ◊ | | ˚  | Ó | ≤ ¯ | ≥ ˘ | ÷ ¿ |
  85. * `----------------------------------' `----------------------------------'
  86. */
  87. #define __COLEMAK_MOD_DH_L1________________________ KC_Q, KC_W, KC_F, KC_P, KC_B
  88. #define __COLEMAK_MOD_DH_L2_W_GACS_________________ HR_A, HR_R, HR_S, HR_T, KC_G
  89. #define __COLEMAK_MOD_DH_L3________________________ KC_Z, KC_X, KC_C, KC_D, KC_V
  90. #define __COLEMAK_MOD_DH_L3_W_SFTV_________________ KC_Z, KC_X, KC_C, KC_D, TM_VSFT
  91. #define __COLEMAK_MOD_DH_R1_W_QUOT_________________ KC_J, KC_L, KC_U, KC_Y, KC_QUOT
  92. #define __COLEMAK_MOD_DH_R1________________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
  93. #define __COLEMAK_MOD_DH_R2_W_SCAG_________________ KC_M, HR_N, HR_E, HR_I, HR_O
  94. #define __COLEMAK_MOD_DH_R3________________________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
  95. /* Function (4 columns)
  96. * ,---------------------------.
  97. * | F1 | F2 | F3 | F4 |
  98. * |------+------+------+------|
  99. * | F5 | F6 | F7 | F8 |
  100. * |------+------+------+------|
  101. * | F9 | F10 | F11 | F12 |
  102. * `---------------------------'
  103. */
  104. #define __FUNC_X1_________________________ KC_F1, KC_F2, KC_F3, KC_F4
  105. #define __FUNC_X2_________________________ KC_F5, KC_F6, KC_F7, KC_F8
  106. #define __FUNC_X3_________________________ KC_F9, KC_F10, KC_F11, KC_F12
  107. /* Game
  108. */
  109. #define __GAME_L1__________________________________ KC_BTN3, KC_BTN2, KC_UP, KC_BTN1, KC_BTN5
  110. #define __GAME_L2__________________________________ KC_BTN4, KC_LEFT, KC_DOWN, KC_RIGHT,XXXXXXX
  111. #define __GAME_L3__________________________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
  112. #define __GAME_R1__________________________________ KC_Q, KC_1, KC_2, KC_3, XXXXXXX
  113. #define __GAME_R2__________________________________ XXXXXXX, KC_4, KC_5, KC_6, XXXXXXX
  114. #define __GAME_R3__________________________________ XXXXXXX, KC_7, KC_8, KC_9, XXXXXXX
  115. /* Guitar
  116. * ,----------------------------------. ,----------------------------------.
  117. * | E | F |• F♯ | G |• G♯ | | A |• A♯ | B |• C | C♯ |
  118. * | A | A♯ |• B | C |• C♯ | | D |• D♯ | E |• F | F♯ |
  119. * | D | D♯ |• E | F |• F♯ | | G |• G♯ | A |• A♯ | B |
  120. * | G | G♯ |• A | A♯ |• B | | C |• C♯ | D |• D♯ | E |
  121. * | B | C |• C♯ | D |• D♯ | | E |• F | F♯ |• G | G♯ |
  122. * | E | F |• F♯ | G |• G♯ | | A |• A♯ | B |• C | C♯ |
  123. * `----------------------------------' `----------------------------------'
  124. */
  125. // Not sure why, but this does not work (possibly due to the lowercase 's'?)
  126. // #ifdef MIDI_ADVANCED
  127. // #define __GUITAR_1E_L______________________________ MI_E1, MI_F1, MI_Fs1, MI_G1, MI_Gs1
  128. // #define __GUITAR_2A_L______________________________ MI_A1, MI_As1, MI_B1, MI_C2, MI_Cs2
  129. // #define __GUITAR_3D_L______________________________ MI_D2, MI_Ds2, MI_E2, MI_F2, MI_Fs2
  130. // #define __GUITAR_4G_L______________________________ MI_G2, MI_Gs2, MI_A2, MI_As2, MI_B2
  131. // #define __GUITAR_5B_L______________________________ MI_B2, MI_C3, MI_Cs3, MI_D3, MI_Ds3
  132. // #define __GUITAR_6E_L______________________________ MI_E3, MI_F3, MI_Fs3, MI_G3, MI_Gs3
  133. //
  134. // #define __GUITAR_1E_R______________________________ MI_A1, MI_As1, MI_B1, MI_C2, MI_Cs2
  135. // #define __GUITAR_2A_R______________________________ MI_D2, MI_Ds2, MI_E2, MI_F2, MI_Fs2
  136. // #define __GUITAR_3D_R______________________________ MI_G2, MI_Gs2, MI_A2, MI_As2, MI_B2
  137. // #define __GUITAR_4G_R______________________________ MI_C3, MI_Cs3, MI_D3, MI_Ds3, MI_E3
  138. // #define __GUITAR_5B_R______________________________ MI_E3, MI_F3, MI_Fs3, MI_G3, MI_Gs3
  139. // #define __GUITAR_6E_R______________________________ MI_A3, MI_As3, MI_B3, MI_C4, MI_Cs4
  140. // #endif
  141. /* MEDIA
  142. * ,----------------------------------.
  143. * | AuOn | MiOn | MuOn | Brm+ | Vol+ |
  144. * |------+------+------+------+------|
  145. * | AuOff| MiOff| MuOff| Brm- | Vol- |
  146. * |------+------+------+------+------|
  147. * | Play | Stop | Next | Prev | Mute |
  148. * `----------------------------------'
  149. */
  150. // What it MUV_IN and MUV_DE (5C2A and B)?
  151. // https://github.com/qmk/qmk_firmware/blob/7e832e46de26989b81f2fbf58a0f391b2b0c1aaf/quantum/quantum_keycodes.h#L135
  152. #define __MEDIA_R1_________________________________ AU_ON, MI_ON, MU_ON, KC_BRMU, KC_VOLU
  153. #define __MEDIA_R2_________________________________ AU_OFF, MI_OFF, MU_OFF, KC_BRMD, KC_VOLD
  154. #define __MEDIA_R3_________________________________ KC_MPLY, KC_MSTP, KC_MNXT, KC_MPRV, KC_MUTE
  155. /* NAV
  156. * ,----------------------------------.
  157. * | Pg Up| Home | Wh Dn| Wh Up| End |
  158. * |------+------+------+------+------|
  159. * | Pg Dn| Left | Down | Up | Right|
  160. * |------+------+------+------+------|
  161. * | xxxx | xxxx | xxxx | xxxx | xxxx |
  162. * `----------------------------------'
  163. */
  164. #define __NAV_R1___________________________________ KC_PGUP, KC_HOME, KC_WH_D, KC_WH_U, KC_END
  165. #define __NAV_R2___________________________________ KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
  166. #define __NAV_R3___________________________________ __BLANK_NOOP_______________________________
  167. /* NUMPAD * (alt, alt+shift)
  168. * ,----------------------------------. * ,----------------------------------.
  169. * | Del | 7 & | 8 * | 9 ( | \ | | * | | ¶ ‡ | • ° | ª · | « » |
  170. * |------+------+------+------+------| * |------+------+------+------+------|
  171. * | - _ | 4 $ | 5 % | 6 ^ | * | * | – — | ¢ › | ∞ fi | § fl | ° ° |
  172. * |------+------+------+------+------| * |------+------+------+------+------|
  173. * | = + | 1 ! | 2 @ | 3 # | , | * | ≠ ± | ¡ ⁄ | ™ € | £ ‹ | ≤ ¯ |
  174. * |------+------+------+------+------| * |------+------+------+------+------|
  175. * | | 0 ) | . > | | | * | | | º ‚ | | |
  176. * `----------------------------------' * `----------------------------------'
  177. */
  178. #define __NUMPAD_R1________________________________ KC_GRV, KC_7, KC_8, KC_9, KC_BSLS
  179. #define __NUMPAD_R2________________________________ KC_MINS, HR_4, HR_5, HR_6, KC_COMM
  180. #define __NUMPAD_R3________________________________ KC_EQL, KC_1, KC_2, KC_3, KC_DOT
  181. #define __NUMPAD_R4________________________________ _______, KC_0, KC_DOT, _______, _______
  182. #define __NUMPAD_R3_ALT____________________________ KC_0, KC_1, KC_2, KC_3, KC_EQ
  183. /* Qwerty
  184. * ,----------------------------------. ,----------------------------------.
  185. * | Q | W | E | R | T | | Y | U | I | O | P |
  186. * |------+------+------+------+------| |------+------+------+------+------|
  187. * | A | S | D | F | G | | H | J | K | L | ; |
  188. * |------+------+------+------+------| |------+------+------+------+------|
  189. * | Z | X | C | V | B | | N | M | , | . | / |
  190. * `----------------------------------' `----------------------------------'
  191. */
  192. #define __QWERTY_L1________________________________ KC_Q, KC_W, KC_E, KC_R, KC_T
  193. #define __QWERTY_L2________________________________ KC_A, KC_S, KC_D, KC_F, KC_G
  194. #define __QWERTY_L3________________________________ KC_Z, KC_X, KC_C, KC_V, KC_B
  195. #define __QWERTY_R1________________________________ KC_Y, KC_U, KC_I, KC_O, KC_P
  196. #define __QWERTY_R2________________________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
  197. #define __QWERTY_R3________________________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
  198. /* SYMBOLS
  199. * ,----------------------------------.
  200. * | ~ | ` | ( | ) | |
  201. * |------+------+------+------+------|
  202. * | LGUI | LALT |LCTL [|LSFT ]| _ - |
  203. * |------+------+------+------+------|
  204. * | xxxx | xxxx | { | } | LSFT |
  205. * `----------------------------------'
  206. */
  207. #define __SYMBOLS_L1_______________________________ KC_TILD, KC_GRV, KC_LPRN, KC_RPRN, XXXXXXX
  208. #define __SYMBOLS_L2_______________________________ KC_LGUI, KC_LALT, HR_LBRC, HR_RBRC, KC_UNDS
  209. #define __SYMBOLS_L3_______________________________ XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_LSFT
  210. #define __SYMBOLS_R1_______________________________ KC_TILD, KC_LPRN, KC_RPRN, XXXXXXX, XXXXXXX
  211. #define __SYMBOLS_R2_______________________________ KC_UNDS, HR_LBRC, HR_RBRC, XXXXXXX, XXXXXXX
  212. #define __SYMBOLS_R3_______________________________ KC_PLUS, KC_LCBR, KC_RCBR, XXXXXXX, XXXXXXX
  213. /* VIM
  214. * -- Roll through ":wq" via transparency
  215. * ,----------------------------------.
  216. * | Q | W | : | | |
  217. * `----------------------------------'
  218. */
  219. #define __VIM_L1___________________________________ _______, _______, KC_COLN, _______, _______
  220. // clang-format on
  221. // __END__