/* 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 . */ #include QMK_KEYBOARD_H enum layers { _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 │ // ROTARY │ │ │ │ │ │ // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ // PAGE DOWN│ │ │ │ │ │ // │ 4 │ 5 │ 6 │ * │ MOUSE │ // ROTARY │ │ │ │ │ │ // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ // PAGE UP │ │ │ │ │ │ // │ 1 │ 2 │ 3 │ - │ MIDI │ // │ │ │ │ │ │ // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ // │ TOGGLE │ │ │ │ │ │ // │ MUSIC │ 0 │ . │ = │ + │ 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 // ┌─────────┬─────────┬─────────┬─────────┬─────────┐ // │ │ │ │ │ │ // │ │ │ │ │ │ // ROTARY │ │ │ │ │ │ // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ // PAGE DOWN│ │ │ │ │ │ // │ │ │ │ │ │ // ROTARY │ │ │ │ │ │ // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ // PAGE UP │ │ │ │ │ │ // │ │ │ │ MODE │ │ // │ │ │ │ │ │ // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ // │ │ │ │ │ │ │ // │ │ RECORD │ STOP │ │ PLAY │ │ // │ │ │ │ │ │ │ // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ [_MUSIC] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MU_MOD, _______, KC_LCTL, KC_LALT, _______, KC_LGUI, _______ ), // 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 ), // 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_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 │ │ │ │ │ // ROTARY │ │ │ │ │ │ // RIGHT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ // PAGE DOWN│ │ │ │ │ │ // │ 4 │ 5 │ 6 │ * │ │ // ROTARY │ │ │ │ │ │ // LEFT: ├─────────┼─────────┼─────────┼─────────┼─────────┤ // PAGE UP │ │ │ │ │ │ // │ 1 │ 2 │ 3 │ │ │ // │ │ │ │ │ │ // ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ // │ │ │ │ │ │ │ // │ │ 0 │ . │ = │ │ │ // │ │ │ │ │ │ │ // └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ [_ADMIN] = LAYOUT( RESET, _______, _______, _______, TG(_ADMIN), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { 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); } } return true; }