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