qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

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 }