qmk_firmware

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

keymap.c (15517B)


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