qmk_firmware

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

keymap.c (6295B)


      1 /* Copyright 2022 DOIO
      2  * Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
      3  *
      4  * This program is free software: you can redistribute it and/or modify
      5  * it under the terms of the GNU General Public License as published by
      6  * the Free Software Foundation, either version 2 of the License, or
      7  * (at your option) any later version.
      8  *
      9  * This program is distributed in the hope that it will be useful,
     10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12  * GNU General Public License for more details.
     13  *
     14  * You should have received a copy of the GNU General Public License
     15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     16  */
     17 
     18 #include QMK_KEYBOARD_H
     19 
     20 // OLED animation
     21 #include "lib/layer_status/layer_status.h"
     22 
     23 // Each layer gets a name for readability, which is then used in the keymap matrix below.
     24 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
     25 // Layer names don't all need to be of the same length, obviously, and you can also skip them
     26 // entirely and just use numbers.
     27 
     28 enum layer_names {
     29     _BASE,
     30     _FN,
     31     _FN1,
     32     _FN2
     33 };
     34 
     35 // enum layer_keycodes { };
     36 
     37 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     38 
     39 /*
     40        ┌───┬───┬───┬───┐   ┌───┐ ┌───┐
     41        │ 1 │ 2 │ 3 │ 4 │   │Ply│ │TO1│
     42        ├───┼───┼───┼───┤   └───┘ └───┘
     43        │ 5 │ 6 │ 7 │ 8 │
     44        ├───┼───┼───┼───┤
     45        │ 9 │ 0 │ ↑ │Ent│      ┌───┐
     46        ├───┼───┼───┼───┤      │Mut│
     47        │Fn2│ ← │ ↓ │ → │      └───┘
     48        └───┴───┴───┴───┘
     49        ┌───┬───┬───┬───┐   ┌───┐ ┌───┐
     50        │ ! │ @ │ # │ $ │   │   │ │   │
     51        ├───┼───┼───┼───┤   └───┘ └───┘
     52        │ % │ ^ │ & │ * │
     53        ├───┼───┼───┼───┤
     54        │ ( │ ) │   │   │      ┌───┐
     55        ├───┼───┼───┼───┤      │   │
     56        │   │   │   │   │      └───┘
     57        └───┴───┴───┴───┘
     58 */
     59     /*  Row:    0         1        2        3         4      */
     60     [_BASE] = LAYOUT(
     61                 KC_1,     KC_2,    KC_3,    KC_4,     KC_MPLY,
     62                 KC_5,     KC_6,    KC_7,    KC_8,     TO(_FN),
     63                 KC_9,     KC_0,    KC_UP,   KC_ENT,   KC_MUTE,
     64                 MO(_FN2), KC_LEFT, KC_DOWN, KC_RIGHT
     65             ),
     66 
     67 /*
     68        ┌───┬───┬───┬───┐   ┌───┐ ┌───┐
     69        │   │   │   │   │   │   │ │   │
     70        ├───┼───┼───┼───┤   └───┘ └───┘
     71        │   │   │   │   │
     72        ├───┼───┼───┼───┤
     73        │   │   │   │   │      ┌───┐
     74        ├───┼───┼───┼───┤      │   │
     75        │   │   │   │   │      └───┘
     76        └───┴───┴───┴───┘
     77 */
     78     /*  Row:    0        1        2        3        4       */
     79     [_FN] = LAYOUT(
     80                 _______, _______, _______, _______, _______,
     81                 _______, _______, _______, _______, TO(_FN1),
     82                 _______, _______, _______, _______, _______,
     83                 _______, _______, _______, _______
     84             ),
     85 
     86 /*
     87        ┌───┬───┬───┬───┐   ┌───┐ ┌───┐
     88        │   │   │   │   │   │   │ │   │
     89        ├───┼───┼───┼───┤   └───┘ └───┘
     90        │   │   │   │   │
     91        ├───┼───┼───┼───┤
     92        │   │   │   │   │      ┌───┐
     93        ├───┼───┼───┼───┤      │   │
     94        │   │   │   │   │      └───┘
     95        └───┴───┴───┴───┘
     96 */
     97     /*  Row:    0        1        2        3        4       */
     98     [_FN1] = LAYOUT(
     99                 _______, _______, _______, _______, _______,
    100                 _______, _______, _______, _______, TO(_FN2),
    101                 _______, _______, _______, _______, _______,
    102                 _______, _______, _______, _______
    103             ),
    104 
    105 /*
    106        ┌───┬───┬───┬───┐   ┌───┐ ┌───┐
    107        │Spi│Spd│   │   │   │   │ │TO0│
    108        ├───┼───┼───┼───┤   └───┘ └───┘
    109        │Sai│Sad│   │   │
    110        ├───┼───┼───┼───┤
    111        │Tog│Mod│Hui│   │      ┌───┐
    112        ├───┼───┼───┼───┤      │   │
    113        │   │Vai│Hud│Vad│      └───┘
    114        └───┴───┴───┴───┘
    115 */
    116     /*  Row:    0        1        2        3        4        */
    117     [_FN2] = LAYOUT(
    118                 RM_SPDU, RM_SPDD, _______, QK_BOOT, _______,
    119                 RM_SATU, RM_SATD, _______, _______, TO(_BASE),
    120                 RM_TOGG, RM_NEXT, RM_HUEU, _______, _______,
    121                 _______, RM_VALU, RM_HUED, RM_VALD
    122             ),
    123 };
    124 
    125 #ifdef OLED_ENABLE
    126     bool oled_task_user(void) {
    127         render_layer_status();
    128 
    129         return true;
    130     }
    131 #endif
    132 
    133 #ifdef ENCODER_MAP_ENABLE
    134 const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
    135     [_BASE] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
    136     [_FN]   = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    137     [_FN1]  = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    138     [_FN2]  = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    139 };
    140 #endif