|
@@ -1,156 +1,172 @@
|
|
|
+/* Copyright 2019 Branden Byers (@brandenbyers)
|
|
|
+ *
|
|
|
+ * This program is free software: you can redistribute it and/or modify
|
|
|
+ * it under the terms of the GNU General Public License as published by
|
|
|
+ * the Free Software Foundation, either version 2 of the License, or
|
|
|
+ * (at your option) any later version.
|
|
|
+ *
|
|
|
+ * This program is distributed in the hope that it will be useful,
|
|
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
+ * GNU General Public License for more details.
|
|
|
+ *
|
|
|
+ * You should have received a copy of the GNU General Public License
|
|
|
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
+ */
|
|
|
+
|
|
|
#include QMK_KEYBOARD_H
|
|
|
|
|
|
enum layers {
|
|
|
- _BASE, // base layer
|
|
|
- _MUSIC, // music mode
|
|
|
- _MIDI, // midi mode
|
|
|
- _MOUSE, // mouse keys
|
|
|
- _ADMIN // admin duties
|
|
|
+ _BASE, // base layer
|
|
|
+ _MUSIC, // music mode
|
|
|
+ _MIDI, // midi mode
|
|
|
+ _MOUSE, // mouse keys
|
|
|
+ _ADMIN // admin duties
|
|
|
};
|
|
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
|
|
-// ┌─────────┬─────────┬─────────┬─────────┬─────────┐
|
|
|
-// │ │ │ │ │ │
|
|
|
-// │ 7 │ 8 │ 9 │ / │ ADMIN │
|
|
|
-// ROTORY │ │ │ │ │ │
|
|
|
-// RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// VOL UP │ │ │ │ │ │
|
|
|
-// │ 4 │ 5 │ 6 │ * │ MOUSE │
|
|
|
-// ROTORY │ │ │ │ │ │
|
|
|
-// LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// VOL DOWN │ │ │ │ │ │
|
|
|
-// │ 1 │ 2 │ 3 │ - │ MIDI │
|
|
|
-// │ │ │ │ │ │
|
|
|
-// ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// │ TOGGLE │ │ │ │ │ │
|
|
|
-// │ MUSIC │ 0 │ . │ = │ + │ MUSIC │
|
|
|
-// │ │ │ │ │ │ │
|
|
|
-// └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
|
|
|
+ // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // │ 7 │ 8 │ 9 │ / │ ADMIN │
|
|
|
+ // ROTARY │ │ │ │ │ │
|
|
|
+ // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // PAGE DOWN│ │ │ │ │ │
|
|
|
+ // │ 4 │ 5 │ 6 │ * │ MOUSE │
|
|
|
+ // ROTARY │ │ │ │ │ │
|
|
|
+ // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // PAGE UP │ │ │ │ │ │
|
|
|
+ // │ 1 │ 2 │ 3 │ - │ MIDI │
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // │ TOGGLE │ │ │ │ │ │
|
|
|
+ // │ MUSIC │ 0 │ . │ = │ + │ MUSIC │
|
|
|
+ // │ │ │ │ │ │ │
|
|
|
+ // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
|
|
|
|
|
|
- [_BASE] = LAYOUT(
|
|
|
- KC_KP_7, KC_KP_8, KC_KP_9, KC_PSLS, MO(_ADMIN), MU_TOG,
|
|
|
- KC_KP_4, KC_KP_5, KC_KP_6, KC_PAST, TG(_MOUSE),
|
|
|
- KC_KP_1, KC_KP_2, KC_KP_3, KC_PMNS, TG(_MIDI),
|
|
|
- KC_KP_0, KC_KP_DOT, KC_KP_EQUAL, KC_PPLS, MO(_MUSIC)
|
|
|
- ),
|
|
|
+ [_BASE] = LAYOUT(
|
|
|
+ KC_P7, KC_P8 , KC_P9 , KC_PSLS, MO(_ADMIN),
|
|
|
+ KC_P4, KC_P5 , KC_P6 , KC_PAST, TG(_MOUSE),
|
|
|
+ KC_P1, KC_P2 , KC_P3 , KC_PMNS, TG(_MIDI),
|
|
|
+ MU_TOG, KC_P0, KC_PDOT, KC_PEQL, KC_PPLS, MO(_MUSIC)
|
|
|
+ ),
|
|
|
|
|
|
-// MUSIC LAYER
|
|
|
- // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
|
|
|
- // │ │ │ │ │ │
|
|
|
- // │ │ │ │ │ │
|
|
|
- // ROTORY │ │ │ │ │ │
|
|
|
- // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
- // PAGE UP │ │ │ │ │ │
|
|
|
- // │ │ │ │ │ │
|
|
|
- // ROTORY │ │ │ │ │ │
|
|
|
- // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
- // PAGE DOWN│ │ │ │ │ │
|
|
|
- // │ │ │ │ MODE │ │
|
|
|
- // │ │ │ │ │ │
|
|
|
- //┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
- //│ │ │ │ │ │ │
|
|
|
- //│ │ RECORD │ STOP │ │ PLAY │ │
|
|
|
- //│ │ │ │ │ │ │
|
|
|
- //└─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
|
|
|
+ // MUSIC LAYER
|
|
|
+ // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // ROTARY │ │ │ │ │ │
|
|
|
+ // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // PAGE DOWN│ │ │ │ │ │
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // ROTARY │ │ │ │ │ │
|
|
|
+ // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // PAGE UP │ │ │ │ │ │
|
|
|
+ // │ │ │ │ MODE │ │
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // │ │ │ │ │ │ │
|
|
|
+ // │ │ RECORD │ STOP │ │ PLAY │ │
|
|
|
+ // │ │ │ │ │ │ │
|
|
|
+ // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
|
|
|
|
|
|
- [_MUSIC] = LAYOUT(
|
|
|
- _______, _______, _______, _______, _______, _______,
|
|
|
- _______, _______, _______, _______, _______,
|
|
|
- _______, _______, _______, _______, MU_MOD,
|
|
|
- KC_LCTL, KC_LALT, _______, KC_LGUI, _______
|
|
|
- ),
|
|
|
+ [_MUSIC] = LAYOUT(
|
|
|
+ _______, _______, _______, _______, _______,
|
|
|
+ _______, _______, _______, _______, _______,
|
|
|
+ _______, _______, _______, _______, MU_MOD,
|
|
|
+ _______, KC_LCTL, KC_LALT, _______, KC_LGUI, _______
|
|
|
+ ),
|
|
|
|
|
|
-// MIDI LAYER
|
|
|
-// ┌─────────┬─────────┬─────────┬─────────┬─────────┐
|
|
|
-// │ │ │ │ │ │
|
|
|
-// │ D♯ │ E │ F │ F♯ │ G │
|
|
|
-// ROTORY │ │ │ │ │ │
|
|
|
-// RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// PAGE UP │ │ │ │ │ │
|
|
|
-// │ A♯ │ B │ C │ C♯ │ D │
|
|
|
-// ROTORY │ │ │ │ │ │
|
|
|
-// LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// PAGE DOWN│ │ │ │ │ │
|
|
|
-// │ F │ F♯ │ G │ G♯ │ A │
|
|
|
-// │ │ │ │ │ │
|
|
|
-// ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// │ │ │ │ │ │ │
|
|
|
-// │ │ C │ C♯ │ D │ D♯ │ E │
|
|
|
-// │ │ │ │ │ │ │
|
|
|
-// └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
|
|
|
+ // MIDI LAYER
|
|
|
+ // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // │ D♯ │ E │ F │ F♯ │ G │
|
|
|
+ // ROTARY │ │ │ │ │ │
|
|
|
+ // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // PAGE DOWN│ │ │ │ │ │
|
|
|
+ // │ A♯ │ B │ C │ C♯ │ D │
|
|
|
+ // ROTARY │ │ │ │ │ │
|
|
|
+ // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // PAGE UP │ │ │ │ │ │
|
|
|
+ // │ F │ F♯ │ G │ G♯ │ A │
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // │ │ │ │ │ │ │
|
|
|
+ // │ │ C │ C♯ │ D │ D♯ │ E │
|
|
|
+ // │ │ │ │ │ │ │
|
|
|
+ // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
|
|
|
|
|
|
- [_MIDI] = LAYOUT(
|
|
|
- MI_Ds_3, MI_E_3, MI_F_3, MI_Fs_3, MI_G_3, _______,
|
|
|
- MI_As_2, MI_B_2, MI_C_3, MI_Cs_3, MI_D_3,
|
|
|
- MI_F_2, MI_Fs_2, MI_G_2, MI_Gs_2, TG(_MIDI),
|
|
|
- MI_C_2, MI_Cs_2, MI_D_2, MI_Ds_2, MI_E_2
|
|
|
- ),
|
|
|
+ [_MIDI] = LAYOUT(
|
|
|
+ MI_Ds_3, MI_E_3, MI_F_3, MI_Fs_3, MI_G_3,
|
|
|
+ MI_As_2, MI_B_2, MI_C_3, MI_Cs_3, MI_D_3,
|
|
|
+ MI_F_2, MI_Fs_2, MI_G_2, MI_Gs_2, TG(_MIDI),
|
|
|
+ _______, MI_C_2, MI_Cs_2, MI_D_2, MI_Ds_2, MI_E_2
|
|
|
+ ),
|
|
|
|
|
|
-// MOUSE LAYER
|
|
|
-// ┌─────────┬─────────┬─────────┬─────────┬─────────┐
|
|
|
-// │ │ │ │ │ │
|
|
|
-// │ BTN 5 │ │ WHEEL │ │ │
|
|
|
-// ROTORY │ │ │ UP │ │ │
|
|
|
-// RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// PAGE DOWN│ │ │ │ │ │
|
|
|
-// │ │ LEFT │ MOUSE │ RIGHT │ │
|
|
|
-// ROTORY │ │ CLICK │ UP │ CLICK │ │
|
|
|
-// LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// PAGE UP │ │ │ │ │ │
|
|
|
-// │ BTN 4 │ MOUSE │ MOUSE │ MOUSE │ │
|
|
|
-// │ │ LEFT │ DOWN │ RIGHT │ │
|
|
|
-// ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// │ │ │ │ │ │ │
|
|
|
-// │ │ BTN 3 │ WHEEL │ WHEEL │ WHEEL │ │
|
|
|
-// │ │ │ LEFT │ DOWN │ RIGHT │ │
|
|
|
-// └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
|
|
|
+ // MOUSE LAYER
|
|
|
+ // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // │ BTN 5 │ │ WHEEL │ │ │
|
|
|
+ // ROTARY │ │ │ UP │ │ │
|
|
|
+ // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // PAGE DOWN│ │ │ │ │ │
|
|
|
+ // │ │ LEFT │ MOUSE │ RIGHT │ │
|
|
|
+ // ROTARY │ │ CLICK │ UP │ CLICK │ │
|
|
|
+ // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // PAGE UP │ │ │ │ │ │
|
|
|
+ // │ BTN 4 │ MOUSE │ MOUSE │ MOUSE │ │
|
|
|
+ // │ │ LEFT │ DOWN │ RIGHT │ │
|
|
|
+ // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // │ │ │ │ │ │ │
|
|
|
+ // │ │ BTN 3 │ WHEEL │ WHEEL │ WHEEL │ │
|
|
|
+ // │ │ │ LEFT │ DOWN │ RIGHT │ │
|
|
|
+ // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
|
|
|
|
|
|
- [_MOUSE] = LAYOUT(
|
|
|
- KC_MS_BTN5, _______, KC_MS_WH_UP, _______, _______, _______,
|
|
|
- _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, TG(_MOUSE),
|
|
|
- KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______,
|
|
|
- KC_MS_BTN3, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, _______
|
|
|
- ),
|
|
|
+ [_MOUSE] = LAYOUT(
|
|
|
+ KC_BTN5, _______, KC_WH_U, _______, _______,
|
|
|
+ _______, KC_BTN1, KC_MS_U, KC_BTN2, TG(_MOUSE),
|
|
|
+ KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, _______,
|
|
|
+ _______, KC_BTN3, KC_WH_L, KC_WH_D, KC_WH_R, _______
|
|
|
+ ),
|
|
|
|
|
|
-// ADMIN LAYER
|
|
|
-// ┌─────────┬─────────┬─────────┬─────────┬─────────┐
|
|
|
-// │ │ │ │ │ │
|
|
|
-// │ RESET │ │ │ │ │
|
|
|
-// ROTORY │ │ │ │ │ │
|
|
|
-// RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// PAGE UP │ │ │ │ │ │
|
|
|
-// │ 4 │ 5 │ 6 │ * │ │
|
|
|
-// ROTORY │ │ │ │ │ │
|
|
|
-// LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// PAGE DOWN│ │ │ │ │ │
|
|
|
-// │ 1 │ 2 │ 3 │ │ │
|
|
|
-// │ │ │ │ │ │
|
|
|
-// ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
-// │ │ │ │ │ │ │
|
|
|
-// │ │ 0 │ . │ = │ │ │
|
|
|
-// │ │ │ │ │ │ │
|
|
|
-// └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
|
|
|
+ // ADMIN LAYER
|
|
|
+ // ┌─────────┬─────────┬─────────┬─────────┬─────────┐
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // │ RESET │ │ │ │ │
|
|
|
+ // ROTARY │ │ │ │ │ │
|
|
|
+ // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // PAGE DOWN│ │ │ │ │ │
|
|
|
+ // │ 4 │ 5 │ 6 │ * │ │
|
|
|
+ // ROTARY │ │ │ │ │ │
|
|
|
+ // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // PAGE UP │ │ │ │ │ │
|
|
|
+ // │ 1 │ 2 │ 3 │ │ │
|
|
|
+ // │ │ │ │ │ │
|
|
|
+ // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
|
|
|
+ // │ │ │ │ │ │ │
|
|
|
+ // │ │ 0 │ . │ = │ │ │
|
|
|
+ // │ │ │ │ │ │ │
|
|
|
+ // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
|
|
|
|
|
|
- [_ADMIN] = LAYOUT(
|
|
|
- RESET, _______, _______, _______, TG(_ADMIN), _______,
|
|
|
- _______, _______, _______, _______, _______,
|
|
|
- _______, _______, _______, _______, _______,
|
|
|
- _______, _______, _______, _______, _______
|
|
|
- ),
|
|
|
+ [_ADMIN] = LAYOUT(
|
|
|
+ RESET, _______, _______, _______, TG(_ADMIN),
|
|
|
+ _______, _______, _______, _______, _______,
|
|
|
+ _______, _______, _______, _______, _______,
|
|
|
+ _______, _______, _______, _______, _______, _______
|
|
|
+ ),
|
|
|
};
|
|
|
|
|
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
|
- return true;
|
|
|
+ return true;
|
|
|
};
|
|
|
|
|
|
bool encoder_update_user(uint8_t index, bool clockwise) {
|
|
|
- if (index == 0) { /* First encoder */
|
|
|
- if (clockwise) {
|
|
|
- tap_code(KC_PGDN);
|
|
|
- } else {
|
|
|
- tap_code(KC_PGUP);
|
|
|
+ if (index == 0) { /* First encoder */
|
|
|
+ if (clockwise) {
|
|
|
+ tap_code(KC_PGDN);
|
|
|
+ } else {
|
|
|
+ tap_code(KC_PGUP);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
return true;
|
|
|
}
|