logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

keymap.c (12035B)


  1. /* Copyright 2019 Branden Byers (@brandenbyers)
  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. enum layers {
  18. _BASE, // base layer
  19. _MUSIC, // music mode
  20. _MIDI, // midi mode
  21. _MOUSE, // mouse keys
  22. _ADMIN // admin duties
  23. };
  24. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  25. // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
  26. // │ │ │ │ │ │
  27. // │ 7 │ 8 │ 9 │ / │ ADMIN │
  28. // ROTARY │ │ │ │ │ │
  29. // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
  30. // PAGE DOWN│ │ │ │ │ │
  31. // │ 4 │ 5 │ 6 │ * │ MOUSE │
  32. // ROTARY │ │ │ │ │ │
  33. // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
  34. // PAGE UP │ │ │ │ │ │
  35. // │ 1 │ 2 │ 3 │ - │ MIDI │
  36. // │ │ │ │ │ │
  37. // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
  38. // │ TOGGLE │ │ │ │ │ │
  39. // │ MUSIC │ 0 │ . │ = │ + │ MUSIC │
  40. // │ │ │ │ │ │ │
  41. // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
  42. [_BASE] = LAYOUT(
  43. KC_P7, KC_P8 , KC_P9 , KC_PSLS, MO(_ADMIN),
  44. KC_P4, KC_P5 , KC_P6 , KC_PAST, TG(_MOUSE),
  45. KC_P1, KC_P2 , KC_P3 , KC_PMNS, TG(_MIDI),
  46. MU_TOGG,KC_P0, KC_PDOT, KC_PEQL, KC_PPLS, MO(_MUSIC)
  47. ),
  48. // MUSIC LAYER
  49. // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
  50. // │ │ │ │ │ │
  51. // │ │ │ │ │ │
  52. // ROTARY │ │ │ │ │ │
  53. // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
  54. // PAGE DOWN│ │ │ │ │ │
  55. // │ │ │ │ │ │
  56. // ROTARY │ │ │ │ │ │
  57. // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
  58. // PAGE UP │ │ │ │ │ │
  59. // │ │ │ │ MODE │ │
  60. // │ │ │ │ │ │
  61. // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
  62. // │ │ │ │ │ │ │
  63. // │ │ RECORD │ STOP │ │ PLAY │ │
  64. // │ │ │ │ │ │ │
  65. // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
  66. [_MUSIC] = LAYOUT(
  67. _______, _______, _______, _______, _______,
  68. _______, _______, _______, _______, _______,
  69. _______, _______, _______, _______, MU_NEXT,
  70. _______, KC_LCTL, KC_LALT, _______, KC_LGUI, _______
  71. ),
  72. // MIDI LAYER
  73. // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
  74. // │ │ │ │ │ │
  75. // │ D♯ │ E │ F │ F♯ │ G │
  76. // ROTARY │ │ │ │ │ │
  77. // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
  78. // PAGE DOWN│ │ │ │ │ │
  79. // │ A♯ │ B │ C │ C♯ │ D │
  80. // ROTARY │ │ │ │ │ │
  81. // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
  82. // PAGE UP │ │ │ │ │ │
  83. // │ F │ F♯ │ G │ G♯ │ A │
  84. // │ │ │ │ │ │
  85. // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
  86. // │ │ │ │ │ │ │
  87. // │ │ C │ C♯ │ D │ D♯ │ E │
  88. // │ │ │ │ │ │ │
  89. // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
  90. [_MIDI] = LAYOUT(
  91. MI_Ds3, MI_E3, MI_F3, MI_Fs3, MI_G3,
  92. MI_As2, MI_B2, MI_C3, MI_Cs3, MI_D3,
  93. MI_F2, MI_Fs2, MI_G2, MI_Gs2, TG(_MIDI),
  94. _______, MI_C2, MI_Cs2, MI_D2, MI_Ds2, MI_E2
  95. ),
  96. // MOUSE LAYER
  97. // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
  98. // │ │ │ │ │ │
  99. // │ BTN 5 │ │ WHEEL │ │ │
  100. // ROTARY │ │ │ UP │ │ │
  101. // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
  102. // PAGE DOWN│ │ │ │ │ │
  103. // │ │ LEFT │ MOUSE │ RIGHT │ │
  104. // ROTARY │ │ CLICK │ UP │ CLICK │ │
  105. // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
  106. // PAGE UP │ │ │ │ │ │
  107. // │ BTN 4 │ MOUSE │ MOUSE │ MOUSE │ │
  108. // │ │ LEFT │ DOWN │ RIGHT │ │
  109. // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
  110. // │ │ │ │ │ │ │
  111. // │ │ BTN 3 │ WHEEL │ WHEEL │ WHEEL │ │
  112. // │ │ │ LEFT │ DOWN │ RIGHT │ │
  113. // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
  114. [_MOUSE] = LAYOUT(
  115. KC_BTN5, _______, KC_WH_U, _______, _______,
  116. _______, KC_BTN1, KC_MS_U, KC_BTN2, TG(_MOUSE),
  117. KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, _______,
  118. _______, KC_BTN3, KC_WH_L, KC_WH_D, KC_WH_R, _______
  119. ),
  120. // ADMIN LAYER
  121. // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
  122. // │ │ │ │ │ │
  123. // │ QK_BOOT │ │ │ │ │
  124. // ROTARY │ │ │ │ │ │
  125. // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
  126. // PAGE DOWN│ │ │ │ │ │
  127. // │ 4 │ 5 │ 6 │ * │ │
  128. // ROTARY │ │ │ │ │ │
  129. // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
  130. // PAGE UP │ │ │ │ │ │
  131. // │ 1 │ 2 │ 3 │ │ │
  132. // │ │ │ │ │ │
  133. // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
  134. // │ │ │ │ │ │ │
  135. // │ │ 0 │ . │ = │ │ │
  136. // │ │ │ │ │ │ │
  137. // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
  138. [_ADMIN] = LAYOUT(
  139. QK_BOOT, _______, _______, _______, TG(_ADMIN),
  140. _______, _______, _______, _______, _______,
  141. _______, _______, _______, _______, _______,
  142. _______, _______, _______, _______, _______, _______
  143. ),
  144. };
  145. bool encoder_update_user(uint8_t index, bool clockwise) {
  146. if (index == 0) { /* First encoder */
  147. if (clockwise) {
  148. tap_code(KC_PGDN);
  149. } else {
  150. tap_code(KC_PGUP);
  151. }
  152. }
  153. return true;
  154. }