|
|
@ -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; |
|
|
|
} |