qmk_firmware

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

keymap.c (19402B)


      1 // Copyright 2025 splitkb.com (support@splitkb.com)
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 
      4 #include QMK_KEYBOARD_H
      5 
      6 enum layers {
      7     _QWERTY = 0,
      8     _DVORAK,
      9     _COLEMAK_DH,
     10     _NAV,
     11     _SYM,
     12     _FUNCTION,
     13     _ADJUST,
     14 };
     15 
     16 // Aliases for readability
     17 #define QWERTY   DF(_QWERTY)
     18 #define COLEMAK  DF(_COLEMAK_DH)
     19 #define DVORAK   DF(_DVORAK)
     20 
     21 #define SYM      MO(_SYM)
     22 #define NAV      MO(_NAV)
     23 #define FKEYS    MO(_FUNCTION)
     24 #define ADJUST   MO(_ADJUST)
     25 
     26 #define CTL_ESC  MT(MOD_LCTL, KC_ESC)
     27 #define CTL_QUOT MT(MOD_RCTL, KC_QUOTE)
     28 #define CTL_MINS MT(MOD_RCTL, KC_MINUS)
     29 #define ALT_ENT  MT(MOD_LALT, KC_ENT)
     30 
     31 // Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter.
     32 // The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and
     33 // produces the key `tap` when tapped (i.e. pressed and released).
     34 
     35 // clang-format off
     36 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     37 /*
     38  * Base Layer: QWERTY
     39  *
     40  * ,-------------------------------------------.                              ,-------------------------------------------.
     41  * |  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
     42  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
     43  * |  Tab   |   Q  |   W  |   E  |   R  |   T  |                              |   Y  |   U  |   I  |   O  |   P  |  Bksp  |
     44  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
     45  * |Ctrl/Esc|   A  |   S  |   D  |   F  |   G  |                              |   H  |   J  |   K  |   L  | ;  : |Ctrl/' "|
     46  * |--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
     47  * | LShift |   Z  |   X  |   C  |   V  |   B  | [ {  |CapsLk|  |F-keys|  ] } |   N  |   M  | ,  < | . >  | /  ? | RShift |
     48  * `----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
     49  *                        |Adjust| LGUI | LAlt/| Space| Nav  |  | Sym  | Space| AltGr| RGUI | Menu |
     50  *                        |      |      | Enter|      |      |  |      |      |      |      |      |
     51  *                        `----------------------------------'  `----------------------------------'
     52  */
     53     [_QWERTY] = LAYOUT(
     54      KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        KC_6 ,  KC_7 ,  KC_8 ,   KC_9 ,  KC_0 , KC_ESC ,
     55      KC_TAB  , KC_Q ,  KC_W   ,  KC_E  ,   KC_R ,   KC_T ,                                        KC_Y,   KC_U ,  KC_I ,   KC_O ,  KC_P , KC_BSPC,
     56      CTL_ESC , KC_A ,  KC_S   ,  KC_D  ,   KC_F ,   KC_G ,                                        KC_H,   KC_J ,  KC_K ,   KC_L ,KC_SCLN,CTL_QUOT,
     57      KC_LSFT , KC_Z ,  KC_X   ,  KC_C  ,   KC_V ,   KC_B , KC_LBRC,KC_CAPS,     FKEYS  , KC_RBRC, KC_N,   KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT,
     58                                 ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV   ,     SYM    , KC_SPC ,KC_RALT, KC_RGUI, KC_APP
     59     ),
     60 
     61 /*
     62  * Base Layer: Dvorak
     63  *
     64  * ,-------------------------------------------.                              ,-------------------------------------------.
     65  * |  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
     66  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
     67  * |  Tab   | ' "  | , <  | . >  |   P  |   Y  |                              |   F  |   G  |   C  |   R  |   L  |  Bksp  |
     68  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
     69  * |Ctrl/Esc|   A  |   O  |   E  |   U  |   I  |                              |   D  |   H  |   T  |   N  |   S  |Ctrl/- _|
     70  * |--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
     71  * | LShift | ; :  |   Q  |   J  |   K  |   X  | [ {  |CapsLk|  |F-keys|  ] } |   B  |   M  |   W  |   V  |   Z  | RShift |
     72  * `----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
     73  *                        |Adjust| LGUI | LAlt/| Space| Nav  |  | Sym  | Space| AltGr| RGUI | Menu |
     74  *                        |      |      | Enter|      |      |  |      |      |      |      |      |
     75  *                        `----------------------------------'  `----------------------------------'
     76  */
     77     [_DVORAK] = LAYOUT(
     78      KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        KC_6 ,  KC_7 ,  KC_8 ,   KC_9 ,  KC_0 , KC_ESC ,
     79      KC_TAB  ,KC_QUOTE,KC_COMM,  KC_DOT,   KC_P ,   KC_Y ,                                        KC_F,   KC_G ,  KC_C ,   KC_R ,  KC_L , KC_BSPC,
     80      CTL_ESC , KC_A ,  KC_O   ,  KC_E  ,   KC_U ,   KC_I ,                                        KC_D,   KC_H ,  KC_T ,   KC_N ,  KC_S , CTL_MINS,
     81      KC_LSFT ,KC_SCLN, KC_Q   ,  KC_J  ,   KC_K ,   KC_X , KC_LBRC,KC_CAPS,     FKEYS  , KC_RBRC, KC_B,   KC_M ,  KC_W ,   KC_V ,  KC_Z , KC_RSFT,
     82                                  ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV   ,     SYM    , KC_SPC ,KC_RALT, KC_RGUI, KC_APP
     83     ),
     84 
     85 /*
     86  * Base Layer: Colemak DH
     87  *
     88  * ,-------------------------------------------.                              ,-------------------------------------------.
     89  * |  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
     90  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
     91  * |  Tab   |   Q  |   W  |   F  |   P  |   B  |                              |   J  |   L  |   U  |   Y  | ;  : |  Bksp  |
     92  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
     93  * |Ctrl/Esc|   A  |   R  |   S  |   T  |   G  |                              |   M  |   N  |   E  |   I  |   O  |Ctrl/' "|
     94  * |--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
     95  * | LShift |   Z  |   X  |   C  |   D  |   V  | [ {  |CapsLk|  |F-keys|  ] } |   K  |   H  | ,  < | . >  | /  ? | RShift |
     96  * `----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
     97  *                        |Adjust| LGUI | LAlt/| Space| Nav  |  | Sym  | Space| AltGr| RGUI | Menu |
     98  *                        |      |      | Enter|      |      |  |      |      |      |      |      |
     99  *                        `----------------------------------'  `----------------------------------'
    100  */
    101     [_COLEMAK_DH] = LAYOUT(
    102      KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        KC_6 ,  KC_7 ,  KC_8 ,   KC_9 ,  KC_0 , KC_ESC ,
    103      KC_TAB  , KC_Q ,  KC_W   ,  KC_F  ,   KC_P ,   KC_B ,                                        KC_J,   KC_L ,  KC_U ,   KC_Y ,KC_SCLN, KC_BSPC,
    104      CTL_ESC , KC_A ,  KC_R   ,  KC_S  ,   KC_T ,   KC_G ,                                        KC_M,   KC_N ,  KC_E ,   KC_I ,  KC_O , CTL_QUOT,
    105      KC_LSFT , KC_Z ,  KC_X   ,  KC_C  ,   KC_D ,   KC_V , KC_LBRC,KC_CAPS,     FKEYS  , KC_RBRC, KC_K,   KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT,
    106                                  ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV   ,     SYM    , KC_SPC ,KC_RALT, KC_RGUI, KC_APP
    107     ),
    108 
    109 /*
    110  * Nav Layer: Media, navigation
    111  *
    112  * ,-------------------------------------------.                              ,-------------------------------------------.
    113  * |        |      |      |      |      |      |                              |      |      |      |      |      |        |
    114  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
    115  * |        |      |      |      |      |      |                              | PgUp | Home |   ↑  | End  | VolUp| Delete |
    116  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
    117  * |        |  GUI |  Alt | Ctrl | Shift|      |                              | PgDn |  ←   |   ↓  |   →  | VolDn| Insert |
    118  * |--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
    119  * |        |      |      |      |      |      |      |ScLck |  |      |      | Pause|M Prev|M Play|M Next|VolMut| PrtSc  |
    120  * `----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
    121  *                        |      |      |      |      |      |  |      |      |      |      |      |
    122  *                        |      |      |      |      |      |  |      |      |      |      |      |
    123  *                        `----------------------------------'  `----------------------------------'
    124  */
    125     [_NAV] = LAYOUT(
    126       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
    127       _______, _______, _______, _______, _______, _______,                                     KC_PGUP, KC_HOME, KC_UP,   KC_END,  KC_VOLU, KC_DEL,
    128       _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______,                                     KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS,
    129       _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR,
    130                                  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    131     ),
    132 
    133 /*
    134  * Sym Layer: Numbers and symbols
    135  *
    136  * ,-------------------------------------------.                              ,-------------------------------------------.
    137  * |        |      |      |      |      |      |                              |      |      |      |      |      |        |
    138  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
    139  * |    `   |  1   |  2   |  3   |  4   |  5   |                              |   6  |  7   |  8   |  9   |  0   |   =    |
    140  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
    141  * |    ~   |  !   |  @   |  #   |  $   |  %   |                              |   ^  |  &   |  *   |  (   |  )   |   +    |
    142  * |--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
    143  * |    |   |   \  |  :   |  ;   |  -   |  [   |  {   |      |  |      |   }  |   ]  |  _   |  ,   |  .   |  /   |   ?    |
    144  * `----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
    145  *                        |      |      |      |      |      |  |      |      |      |      |      |
    146  *                        |      |      |      |      |      |  |      |      |      |      |      |
    147  *                        `----------------------------------'  `----------------------------------'
    148  */
    149     [_SYM] = LAYOUT(
    150       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
    151       KC_GRV ,   KC_1 ,   KC_2 ,   KC_3 ,   KC_4 ,   KC_5 ,                                       KC_6 ,   KC_7 ,   KC_8 ,   KC_9 ,   KC_0 , KC_EQL ,
    152      KC_TILD , KC_EXLM,  KC_AT , KC_HASH,  KC_DLR, KC_PERC,                                     KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS,
    153      KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM,  KC_DOT, KC_SLSH, KC_QUES,
    154                                  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    155     ),
    156 
    157 /*
    158  * Function Layer: Function keys
    159  *
    160  * ,-------------------------------------------.                              ,-------------------------------------------.
    161  * |        |      |      |      |      |      |                              |      |      |      |      |      |        |
    162  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
    163  * |        |  F9  | F10  | F11  | F12  |      |                              |      |      |      |      |      |        |
    164  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
    165  * |        |  F5  |  F6  |  F7  |  F8  |      |                              |      | Shift| Ctrl |  Alt |  GUI |        |
    166  * |--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
    167  * |        |  F1  |  F2  |  F3  |  F4  |      |      |      |  |      |      |      |      |      |      |      |        |
    168  * `----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
    169  *                        |      |      |      |      |      |  |      |      |      |      |      |
    170  *                        |      |      |      |      |      |  |      |      |      |      |      |
    171  *                        `----------------------------------'  `----------------------------------'
    172  */
    173     [_FUNCTION] = LAYOUT(
    174       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
    175       _______,  KC_F9 ,  KC_F10,  KC_F11,  KC_F12, _______,                                     _______, _______, _______, _______, _______, _______,
    176       _______,  KC_F5 ,  KC_F6 ,  KC_F7 ,  KC_F8 , _______,                                     _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______,
    177       _______,  KC_F1 ,  KC_F2 ,  KC_F3 ,  KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
    178                                  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    179     ),
    180 
    181 /*
    182  * Adjust Layer: Default layer settings, RGB
    183  *
    184  * ,-------------------------------------------.                              ,-------------------------------------------.
    185  * |  Reset |      |      |      |      |      |                              |      |      |      |      |      |        |
    186  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
    187  * |        |      |      |QWERTY|      |      |                              |      |      |      |      |      |        |
    188  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
    189  * |        |      |      |Dvorak|      |      |                              | TOG  | SAI  | HUI  | VAI  | MOD  |        |
    190  * |--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
    191  * |        |      |      |Colmak|      |      |      |      |  |      |      |      | SAD  | HUD  | VAD  | RMOD |        |
    192  * `----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
    193  *                        |      |      |      |      |      |  |      |      |      |      |      |
    194  *                        |      |      |      |      |      |  |      |      |      |      |      |
    195  *                        `----------------------------------'  `----------------------------------'
    196  */
    197     [_ADJUST] = LAYOUT(
    198       QK_BOOT, _______, _______, _______, _______, _______,                                    _______, _______, _______, _______, _______, _______,
    199       _______, _______, _______, QWERTY , _______, _______,                                    _______, _______, _______, _______, _______, _______,
    200       _______, _______, _______, DVORAK , _______, _______,                                    RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______,
    201       _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______,
    202                                  _______, _______, _______,_______, _______, _______, _______, _______, _______, _______
    203     ),
    204 
    205 // /*
    206 //  * Layer template
    207 //  *
    208 //  * ,-------------------------------------------.                              ,-------------------------------------------.
    209 //  * |        |      |      |      |      |      |                              |      |      |      |      |      |        |
    210 //  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
    211 //  * |        |      |      |      |      |      |                              |      |      |      |      |      |        |
    212 //  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
    213 //  * |        |      |      |      |      |      |                              |      |      |      |      |      |        |
    214 //  * |--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
    215 //  * |        |      |      |      |      |      |      |      |  |      |      |      |      |      |      |      |        |
    216 //  * `----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
    217 //  *                        |      |      |      |      |      |  |      |      |      |      |      |
    218 //  *                        |      |      |      |      |      |  |      |      |      |      |      |
    219 //  *                        `----------------------------------'  `----------------------------------'
    220 //  */
    221 //     [_LAYERINDEX] = LAYOUT(
    222 //       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
    223 //       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
    224 //       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
    225 //       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
    226 //                                  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
    227 //     ),
    228 //
    229 };
    230 
    231 #if defined(ENCODER_MAP_ENABLE)
    232 const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
    233     [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD),  ENCODER_CCW_CW(KC_PGDN, KC_PGUP)  },
    234     [1] = { ENCODER_CCW_CW(_______, _______),  ENCODER_CCW_CW(_______, _______)  },
    235     [2] = { ENCODER_CCW_CW(_______, _______),  ENCODER_CCW_CW(_______, _______)  },
    236     [3] = { ENCODER_CCW_CW(_______, _______),  ENCODER_CCW_CW(_______, _______)  },
    237     [4] = { ENCODER_CCW_CW(_______, _______),  ENCODER_CCW_CW(_______, _______)  },
    238     [5] = { ENCODER_CCW_CW(_______, _______),  ENCODER_CCW_CW(_______, _______)  },
    239     [6] = { ENCODER_CCW_CW(_______, _______),  ENCODER_CCW_CW(_______, _______)  },
    240 };
    241 #endif