keymap.c 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. /* Copyright 2020 Brandon Schlack
  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. #include QMK_KEYBOARD_H
  17. #include "brandonschlack.h"
  18. /**
  19. * Layer Names
  20. */
  21. #define _REEDER _BASE
  22. enum bdn9_layers {
  23. _MEDIA = KEYMAP_LAYERS,
  24. _NAVI,
  25. _KARABINER
  26. };
  27. /**
  28. * Keycodes & Macros
  29. */
  30. #define DF_REDR DF(_REEDER) // Set Default Layer to Reeder shortcuts
  31. #define DF_MEDA DF(_MEDIA) // Set Default Layer to Media controls
  32. #define DF_NAVI DF(_NAVI) // Set Default Layer to Navigation shortcuts
  33. #define DF_KBNR DF(_KARABINER) // Set Default Layer to Basic Macro keys
  34. // Tap Dances
  35. enum launchpad_dances {
  36. TD_SHLD_LGHT = 0,
  37. TD_SHLD_ADJT,
  38. TD_REDR_H
  39. };
  40. //Tap Dance Definitions
  41. qk_tap_dance_action_t tap_dance_actions[] = {
  42. [TD_SHLD_LGHT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _LIGHT),
  43. [TD_SHLD_ADJT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _ADJUST),
  44. [TD_REDR_H] = ACTION_TAP_DANCE_DOUBLE(KC_H, KC_R)
  45. };
  46. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  47. /* Reeder
  48. * ┌──────┬──────┐
  49. * │CmdTab│ View │
  50. * ├──────┼──────┤
  51. * │PrvSub│PrvItm│
  52. * ├──────┼──────┤
  53. * │NxtSub│NxtItm│
  54. * ├──────┼──────┤
  55. * │ Clr │ Sync │
  56. * └──────┴──────┘
  57. */
  58. [_REEDER] = LAYOUT( \
  59. CMD_TAB, TD(TD_REDR_H), \
  60. KC_P, KC_K, \
  61. KC_N, KC_J, \
  62. TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
  63. ),
  64. /* Media
  65. * ┌──────┬──────┐
  66. * │ Mute │ Play │
  67. * ├──────┼──────┤
  68. * │ Vol+ │PrvTrk│
  69. * ├──────┼──────┤
  70. * │ Vol- │NxtTrk│
  71. * ├──────┼──────┤
  72. * │ Spce │ Plyr │
  73. * └──────┴──────┘
  74. */
  75. [_MEDIA] = LAYOUT( \
  76. KC_MUTE, KC_MPLY, \
  77. KC_VOLU, KC_MNXT, \
  78. KC_VOLD, KC_MPRV, \
  79. TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
  80. ),
  81. /* Navigation
  82. * ┌──────┬──────┐
  83. * │ PTab │ NTab │
  84. * ├──────┼──────┤
  85. * │ SclL │ SclU │
  86. * ├──────┼──────┤
  87. * │ SclR │ SclD │
  88. * ├──────┼──────┤
  89. * │LstTab│ClsTab│
  90. * └──────┴──────┘
  91. */
  92. [_NAVI] = LAYOUT( \
  93. PRV_TAB, NXT_TAB, \
  94. MC_WH_L, MC_WH_U, \
  95. MC_WH_R, MC_WH_D, \
  96. TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
  97. ),
  98. /* Macro
  99. * ┌──────┬──────┐
  100. * │ 1 │ 2 │
  101. * ├──────┼──────┤
  102. * │ 3 │ 4 │
  103. * ├──────┼──────┤
  104. * │ 5 │ 6 │
  105. * ├──────┼──────┤
  106. * │ 7 │ 8 │
  107. * └──────┴──────┘
  108. */
  109. [_KARABINER] = LAYOUT( \
  110. KC_P1, KC_P2, \
  111. KC_P3, KC_P4, \
  112. KC_P5, KC_P6, \
  113. TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \
  114. ),
  115. /* Lights
  116. * ┌──────┬──────┐
  117. * │ THM+ │ HUE+ │
  118. * ├──────┼──────┤
  119. * │ SAT- │ SAT+ │
  120. * ├──────┼──────┤
  121. * │ VAL- │ VAL+ │
  122. * ├──────┼──────┤
  123. * │ XXXX │ Mde+ │
  124. * └──────┴──────┘
  125. */
  126. [_LIGHT] = LAYOUT( \
  127. RGB_THM, RGB_HUI, \
  128. RGB_SAD, RGB_SAI, \
  129. RGB_VAD, RGB_VAI, \
  130. XXXXXXX, RGB_MOD \
  131. ),
  132. /* Adjust
  133. * ┌──────┬──────┐
  134. * │ Make │ Rset │
  135. * ├──────┼──────┤
  136. * │ Redr │ Meda │
  137. * ├──────┼──────┤
  138. * │ Navi │ Mcro │
  139. * ├──────┼──────┤
  140. * │ Lght │ XXXX │
  141. * └──────┴──────┘
  142. */
  143. [_ADJUST] = LAYOUT( \
  144. QM_MAKE, RESET, \
  145. DF_REDR, DF_MEDA, \
  146. DF_NAVI, DF_KBNR, \
  147. TG_LGHT, XXXXXXX \
  148. )
  149. };
  150. void matrix_init_keymap(void) {
  151. }
  152. // Runs once after keyboard initializes
  153. void keyboard_post_init_keymap(void) {
  154. };
  155. /**
  156. * Tap Dances
  157. */
  158. void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) {
  159. uint16_t keycode = 0;
  160. switch (toggle_layer) {
  161. case _LIGHT:
  162. switch (get_highest_layer(layer_state)) {
  163. case _REEDER:
  164. keycode = KC_L;
  165. break;
  166. case _MEDIA:
  167. keycode = KC_SPC;
  168. break;
  169. case _NAVI:
  170. keycode = REO_TAB;
  171. break;
  172. case _KARABINER:
  173. keycode = KC_P7;
  174. break;
  175. }
  176. break;
  177. case _ADJUST:
  178. switch (get_highest_layer(layer_state)) {
  179. case _REEDER:
  180. keycode = KC_R;
  181. break;
  182. case _MEDIA:
  183. keycode = MC_PLYR;
  184. break;
  185. case _NAVI:
  186. keycode = CLS_TAB;
  187. break;
  188. case _KARABINER:
  189. keycode = KC_P8;
  190. break;
  191. }
  192. break;
  193. }
  194. if (!reset) {
  195. register_code16(keycode);
  196. } else {
  197. unregister_code16(keycode);
  198. }
  199. }