qmk_firmware

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

keymap.c (15776B)


      1 // Copyright 2022 Dane Skalski (@Daneski13)
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 
      4 #include QMK_KEYBOARD_H
      5 // Layers enum
      6 enum junco_layers { _QWERTY, _COLEMAK_DH, _SYMB, _EXT, _ADJUST };
      7 
      8 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      9     // clang-format off
     10     /*
     11         Traditional QWERTY
     12         ┌───┬───┬───┬───┬───┬───┐               ┌───┬───┬───┬───┬───┬───┐
     13         │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │               │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
     14         ├───┼───┼───┼───┼───┼───┤               ├───┼───┼───┼───┼───┼───┤
     15         │Tab│ Q │ W │ E │ R │ T │               │ Y │ U │ I │ O │ P │Ent│
     16         ├───┼───┼───┼───┼───┼───┤               ├───┼───┼───┼───┼───┼───┤
     17         │Esc│ A │ S │ D │ F │ G │               │ H │ J │ K │ L │ ; │ ' │
     18         ├───┼───┼───┼───┼───┼───┼───┐       ┌───┼───┼───┼───┼───┼───┼───┤
     19         │Sft│ Z │ X │ C │ V │ B │Mut│       │XXX│ N │ M │ , │ . │ / │Sft│
     20         └───┴───┴───┴───┴───┴───┴───┘       └───┴───┴───┴───┴───┴───┴───┘
     21                 ┌───┬───┬───┬───┬───┐       ┌───┬───┬───┬───┬───┐
     22                 │Ctr│Win│Alt│Del│Spc│       │Sft│Bsp│Alt│Win│Ctr│
     23                 └───┴───┴───┴───┴───┘       └───┴───┴───┴───┴───┘
     24                 For macOS - GUI (cmd) and Alt (opt) swapped
     25     */
     26     [_QWERTY] = LAYOUT_split4x6_r1(
     27         KC_GRAVE, KC_1, KC_2,    KC_3,    KC_4,    KC_5,                                KC_6,               KC_7,    KC_8,    KC_9,   KC_0,         KC_MINUS,
     28         KC_TAB,   KC_Q, KC_W,    KC_E,    KC_R,    KC_T,                                KC_Y,               KC_U,    KC_I,    KC_O,   KC_P,         KC_ENTER,
     29         KC_ESC,   KC_A, KC_S,    KC_D,    KC_F,    KC_G,                                KC_H,               KC_J,    KC_K,    KC_L,   KC_SEMICOLON, KC_QUOTE,
     30         KC_LSFT,  KC_Z, KC_X,    KC_C,    KC_V,    KC_B,             KC_MUTE,  KC_NO,   KC_N,               KC_M,    KC_COMM, KC_DOT, KC_SLSH,      KC_RSFT,
     31                         KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC,   KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL
     32     ),
     33 
     34     /*
     35         Colemak-DH
     36         ┌───┬───┬───┬───┬───┬───┐               ┌───┬───┬───┬───┬───┬───┐
     37         │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │               │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
     38         ├───┼───┼───┼───┼───┼───┤               ├───┼───┼───┼───┼───┼───┤
     39         │Tab│ Q │ W │ F │ P │ B │               │ J │ L │ U │ Y │ ; │Ent│
     40         ├───┼───┼───┼───┼───┼───┤               ├───┼───┼───┼───┼───┼───┤
     41         │Esc│ A │ R │ S │ T │ G │               │ M │ N │ E │ I │ O │ ' │
     42         ├───┼───┼───┼───┼───┼───┼───┐       ┌───┼───┼───┼───┼───┼───┼───┤
     43         │Sft│ Z │ X │ C │ D │ V │Mut│       │XXX│ K │ H │ , │ . │ / │Sft│
     44         └───┴───┴───┴───┴───┴───┴───┘       └───┴───┴───┴───┴───┴───┴───┘
     45                 ┌───┬───┬───┬───┬───┐       ┌───┬───┬───┬───┬───┐
     46                 │Ctr│Win│Alt│Del│Spc│       │Sft│Bsp│Alt│Win│Ctr│
     47                 └───┴───┴───┴───┴───┘       └───┴───┴───┴───┴───┘
     48                 For macOS - GUI (cmd) and Alt (opt) swapped
     49     */
     50     [_COLEMAK_DH] = LAYOUT_split4x6_r1(
     51         KC_GRAVE, KC_1, KC_2,    KC_3,    KC_4,    KC_5,                                KC_6,               KC_7,    KC_8,    KC_9,   KC_0,         KC_MINUS,
     52         KC_TAB,   KC_Q, KC_W,    KC_F,    KC_P,    KC_B,                                KC_J,               KC_L,    KC_U,    KC_Y,   KC_SEMICOLON, KC_ENTER,
     53         KC_ESC,   KC_A, KC_R,    KC_S,    KC_T,    KC_G,                                KC_M,               KC_N,    KC_E,    KC_I,   KC_O,         KC_QUOTE,
     54         KC_LSFT,  KC_Z, KC_X,    KC_C,    KC_D,    KC_V,             KC_MUTE,  KC_NO,   KC_K,               KC_H,    KC_COMM, KC_DOT, KC_SLSH,      KC_RSFT,
     55                         KC_LCTL, KC_LGUI, KC_LALT, LT(_EXT, KC_DEL), KC_SPC,   KC_RSFT, LT(_SYMB, KC_BSPC), KC_RALT, KC_RGUI, KC_RCTL
     56     ),
     57 
     58     /*
     59         Symbols/Numpad Layer
     60         ┌───┬───┬───┬───┬───┬───┐               ┌───┬───┬───┬───┬───┬───┐
     61         │F1 │F2 │F3 │F4 │F5 │F6 │               │F7 │F8 │F9 │F10│F11│F12│
     62         ├───┼───┼───┼───┼───┼───┤               ├───┼───┼───┼───┼───┼───┤
     63         │Tab│ ! │ @ │ # │ $ │ % │               │ * │ 7 │ 8 │ 9 │ + │Ent│
     64         ├───┼───┼───┼───┼───┼───┤               ├───┼───┼───┼───┼───┼───┤
     65         │ \ │ _ │ [ │ { │ ( │ ^ │               │ = │ 4 │ 5 │ 6 │ 0 │NUM│
     66         ├───┼───┼───┼───┼───┼───┼───┐       ┌───┼───┼───┼───┼───┼───┼───┤
     67         │___│ | │ ] │ } │ ) │ & │___│       │___│ / │ 1 │ 2 │ 3 │ - │___│
     68         └───┴───┴───┴───┴───┴───┴───┘       └───┴───┴───┴───┴───┴───┴───┘
     69                 ┌───┬───┬───┬───┬───┐       ┌───┬───┬───┬───┬───┐
     70                 │___│___│___│___│___│       │___│___│___│___│___│
     71                 └───┴───┴───┴───┴───┘       └───┴───┴───┴───┴───┘
     72     */
     73     [_SYMB] = LAYOUT_split4x6_r1(
     74         KC_F1,    KC_F2,    KC_F3,   KC_F4,      KC_F5,    KC_F6,                           KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,
     75         KC_TAB,   KC_EXLM,  KC_AT,   KC_HASH,    KC_DLR,   KC_PERC,                         KC_PAST,  KC_P7,    KC_P8,    KC_P9,    KC_PPLS,  KC_ENTER,
     76         KC_BSLS,  KC_UNDS,  KC_LBRC, KC_LCBR,    KC_LPRN,  KC_CIRC,                         KC_PEQL,  KC_P4,    KC_P5,    KC_P6,    KC_P0,    KC_NUM,
     77         _______,  KC_PIPE,  KC_RBRC, KC_RCBR,    KC_RPRN,  KC_AMPR,     _______,  _______,  KC_PSLS,  KC_P1,    KC_P2,    KC_P3,    KC_PMNS,  _______,
     78                             _______, _______,    _______,  MO(_ADJUST), _______,  _______,  _______,  _______,  _______,  _______
     79     ),
     80 
     81     /*
     82         Extension/Function Layer
     83         ┌────┬────┬────┬────┬────┬────┐               ┌────┬────┬────┬────┬────┬────┐
     84         │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │               │ F7 │ F8 │ F9 │ F10│ F11│ F12│
     85         ├────┼────┼────┼────┼────┼────┤               ├────┼────┼────┼────┼────┼────┤
     86         │ ⇤  │PGUP│End │ ↑  │Home│    │               │BRIU│ F7 │ F8 │ F9 │ F10│____│
     87         ├────┼────┼────┼────┼────┼────┤               ├────┼────┼────┼────┼────┼────┤
     88         │Cps │PGDN│ ←  │ ↓  │ →  │    │               │BRID│ F4 │ F5 │ F6 │ F11│____│
     89         ├────┼────┼────┼────┼────┼────┼────┐     ┌────┼────┼────┼────┼────┼────┼────┤
     90         │____│    │    │    │    │    │____│     │ ▶⏸ │    │ F1 │ F2 │ F3 │ F12│____│
     91         └────┴────┴────┴────┴────┴────┴────┘     └────┴────┴────┴────┴────┴────┴────┘
     92                       ┌───┬───┬───┬───┬───┐       ┌───┬───┬───┬───┬───┐
     93                       │___│___│___│___│___│       │___│___│___│___│___│
     94                       └───┴───┴───┴───┴───┘       └───┴───┴───┴───┴───┘
     95     */
     96     [_EXT] = LAYOUT_split4x6_r1(
     97         KC_F1,     KC_F2,      KC_F3,      KC_F4,      KC_F5,       KC_F6,                       KC_F7,       KC_F8,    KC_F9,   KC_F10,  KC_F11,   KC_F12,
     98         S(KC_TAB), KC_PGUP,    KC_END,     KC_UP,      KC_HOME,     _______,                     KC_BRIU,     KC_F7,    KC_F8,   KC_F9,   KC_F10,   _______,
     99         KC_CAPS,   KC_PGDN,    KC_LEFT,    KC_DOWN,    KC_RIGHT,    _______,                     KC_BRID,     KC_F4,    KC_F5,   KC_F6,   KC_F11,   _______,
    100         _______,   _______,    _______,    _______,    _______,     _______, _______,  KC_MPLY,  _______,     KC_F1,    KC_F2,   KC_F3,   KC_F12,   _______,
    101                                _______,    _______,    _______,     _______, _______,  _______,  MO(_ADJUST), _______,  _______, _______
    102     ),
    103 
    104     /*
    105         Adjust Layer, Keyboard Settings
    106         ┌────┬────┬────┬────┬────┬────┐               ┌────┬────┬────┬────┬────┬────┐
    107         │    │    │    │    │    │    │               │    │    │    │    │    │    │
    108         ├────┼────┼────┼────┼────┼────┤               ├────┼────┼────┼────┼────┼────┤
    109         │SpdU│HueU│SatU│ValU│Rnxt│    │               │    │EClr│Rbt │DBUG│BOOT│    │
    110         ├────┼────┼────┼────┼────┼────┤               ├────┼────┼────┼────┼────┼────┤
    111         │SpdD│HueD│SatD│ValD│Rprv│RTgl│               │    │QWRT│COLE│    │    │    │
    112         ├────┼────┼────┼────┼────┼────┼────┐     ┌────┼────┼────┼────┼────┼────┼────┤
    113         │    │    │    │    │    │    │    │     │    │    │    │    │    │    │    │
    114         └────┴────┴────┴────┴────┴────┴────┘     └────┴────┴────┴────┴────┴────┴────┘
    115                        ┌───┬───┬───┬───┬───┐     ┌───┬───┬───┬───┬───┐
    116                        │___│___│___│___│___│     │___│___│___│___│___│
    117                        └───┴───┴───┴───┴───┘     └───┴───┴───┴───┴───┘
    118     */
    119     [_ADJUST] = LAYOUT_split4x6_r1(
    120         KC_NO,     KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,                       KC_NO,       KC_NO,         KC_NO,           KC_NO,   KC_NO,    KC_NO,
    121         RM_SPDU,   RM_HUEU,    RM_SATU,    RM_VALU,    RM_NEXT,    KC_NO,                       KC_NO,       EE_CLR,        QK_RBT,          DB_TOGG, QK_BOOT,  KC_NO,
    122         RM_SPDD,   RM_HUED,    RM_SATD,    RM_VALD,    RM_PREV,    RM_TOGG,                     KC_NO,       DF(_QWERTY),   DF(_COLEMAK_DH), KC_NO,   KC_NO,    KC_NO,
    123         KC_NO,     KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,   KC_NO,    KC_NO,    KC_NO,       KC_NO,         KC_NO,           KC_NO,   KC_NO,    KC_NO,
    124                                _______,    _______,    _______,    _______, _______,  _______,  _______,     _______,       _______,         _______
    125     )
    126     // clang-format on
    127 };
    128 
    129 /*
    130     --- Rotary Encoder Mappings ---
    131 
    132     Encoder mappings go from leftmost encoder to rightmost encoder on the physical board.
    133     index 0 is the the optional leftmost encoder on the left half, index 1 is the right encoder
    134     on the left half (by the thumb keys), index 2 is the left encoder on the right half (by the
    135     thumb keys), and index 3 is the optional rightmost encoder on the right half.
    136 
    137     If you are only using the 2 required encoders by the thumb keys, you only need to worry about
    138     index 1 and index 2.
    139 
    140     Note that the keycode for counter-clockwise rotation (CCW) goes first and then the key for
    141     clockwise (CW) within ENCODER_CCW_CW.
    142 */
    143 #ifdef ENCODER_MAP_ENABLE
    144 // clang-format off
    145 
    146 const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
    147     // Base layer encoder mappings:
    148     //                index 0: mouse wheel up (CCW)/down (CW)     index 1: volume down/up           index 2: mouse wheel up/down                index 3: mouse wheel left/right
    149     [_QWERTY] =     { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(MS_WHLL, MS_WHLR) },
    150     [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    151 
    152     // Passes through to base layers
    153     [_SYMB] =       { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    154     // On the extension layer, the right side's left encoder by the thumb keys (mouse wheel up/down) is traded for media previous/next
    155     [_EXT] =        { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    156     // Passes through
    157     [_ADJUST] =     { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    158     // clang-format on
    159 };
    160 
    161 #endif