qmk_firmware

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

keymap.c (18610B)


      1 /* Copyright 2024 XD Boards <copyright@xdboards.xyz>
      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     _QWERTY,
     21     _SYMBOLS,
     22     _NUMBERS,
     23     _FUNCTION,
     24     _RGB
     25 };
     26 
     27 // clang-format off
     28 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     29     /*
     30     * ┌─────┬─────┬─────┬─────┬─────┬─────┐                                      ┌─────┬─────┬─────┬─────┬─────┬─────┐
     31     * │ ESC │  Q  │  W  │  E  │  R  │  T  │                                      │  Y  │  U  │  I  │  O  │  P  │ Bsp │
     32     * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
     33     * │ Tab │  A  │  S  │  D  │  F  │  G  │                                      │  H  │  J  │  K  │  L  │  ;  │ CTL │
     34     * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
     35     * │Shift│  Z  │  X  │  C  │  V  │  B  │                                      │  N  │  M  │  ,  │  .  │  /  │Shift│
     36     * └─────┴─────┴─────┴─────┴─────┴─────┘    ┌─────┐                 ┌─────┐   └─────┴─────┴─────┴─────┴─────┴─────┘
     37     *               ┌─────┐                    │Mute │                 │P Scr│                   ┌─────┐
     38     *               │ ALT ├─────┐              └─────┘                 └─────┘             ┌─────┤ Alt │
     39     *               ├─────┤  (  ├─────┐                                              ┌─────┤  )  ├─────┤
     40     *               │ GUI ├─────┤  {  ├─────┐                                  ┌─────┤  }  ├─────┤ App │
     41     *               └─────┤Space├─────┤  [  │                                  │  ]  ├─────┤ Ent ├─────┘
     42     *                     └─────┤ Fnc ├─────┤                                  ├─────┤ Sym ├─────┘
     43     *                           └─────┤Qwert│                                  │ Num ├─────┘
     44     *                                 └─────┘                                  └─────┘
     45     */
     46     [_QWERTY] = LAYOUT(
     47         KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                               KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
     48         KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                               KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_RCTL,
     49         KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                               KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,
     50                                                         KC_MUTE,                   KC_PSCR,
     51                           KC_LALT, KC_LPRN, KC_LCBR,  KC_LBRC,                        KC_RBRC,  KC_RCBR,  KC_RPRN,  KC_RALT,
     52                           KC_LGUI, KC_SPC,TO(_FUNCTION),TO(_QWERTY),                  TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP
     53     ),
     54     /*
     55      * ┌─────┬─────┬─────┬─────┬─────┬─────┐                                      ┌─────┬─────┬─────┬─────┬─────┬─────┐
     56      * │  `  │  !  │  @  │  #  │  $  │  %  │                                      │  +  │  "  │  '  │  |  │  \  │ Bsp │
     57      * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
     58      * │ Tab │  ^  │  &  │  *  │  (  │  )  │                                      │  =  │  <  │  >  │  :  │  ;  │ Ctl │
     59      * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
     60      * │Shift│  _  │  [  │  ]  │  {  │  }  │                                      │  -  │  ~  │  ,  │  .  │  ?  │Shift│
     61      * └─────┴─────┴─────┴─────┴─────┴─────┘    ┌─────┐                 ┌─────┐   └─────┴─────┴─────┴─────┴─────┴─────┘
     62      *               ┌─────┐                    │Mute │                 │P Scr│                   ┌─────┐
     63      *               │ ALT ├─────┐              └─────┘                 └─────┘             ┌─────┤ Alt │
     64      *               ├─────┤  (  ├─────┐                                              ┌─────┤  )  ├─────┤
     65      *               │ GUI ├─────┤  {  ├─────┐                                  ┌─────┤  }  ├─────┤ App │
     66      *               └─────┤Space├─────┤  [  │                                  │  ]  ├─────┤ Ent ├─────┘
     67      *                     └─────┤ Fnc ├─────┤                                  ├─────┤ Sym ├─────┘
     68      *                           └─────┤Qwert│                                  │ Num ├─────┘
     69      *                                 └─────┘                                  └─────┘
     70      */
     71     [_SYMBOLS] = LAYOUT(
     72        KC_GRAVE, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                            KC_PLUS, KC_DQUO, KC_QUOTE,KC_PIPE, KC_BSLS, KC_BSPC,
     73        KC_TAB,   KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,                            KC_EQUAL,KC_LT,   KC_GT,   KC_COLN, KC_SCLN, KC_RCTL,
     74        KC_LSFT,  KC_UNDS, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR,                            KC_MINUS,KC_TILD, KC_COMM, KC_DOT,  KC_QUES, KC_NUM,
     75                                                        KC_MUTE,                   KC_PSCR,
     76                          KC_LALT, KC_LPRN, KC_LCBR, KC_LBRC,                          KC_RBRC,  KC_RCBR,  KC_RPRN,  KC_RALT,
     77                          KC_LGUI, KC_SPC,TO(_FUNCTION),TO(_QWERTY),                   TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP
     78     ),
     79     /*
     80      * ┌─────┬─────┬─────┬─────┬─────┬─────┐                                      ┌─────┬─────┬─────┬─────┬─────┬─────┐
     81      * │ Esc │  1  │  2  │  3  │  4  │  5  │                                      │  +  │  7  │  8  │  9  │  *  │ Bsp │
     82      * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
     83      * │ Ctl │  6  │  7  │  8  │  9  │  0  │                                      │  =  │  4  │  5  │  6  │  \  │  :  │
     84      * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
     85      * │Shift│     │     │     │     │     │                                      │  -  │  1  │  2  │  3  │  /  │Nm Lk│
     86      * └─────┴─────┴─────┴─────┴─────┴─────┘    ┌─────┐                 ┌─────┐   └─────┴─────┴─────┴─────┴─────┴─────┘
     87      *               ┌─────┐                    │Mute │                 │P Scr│                   ┌─────┐
     88      *               │ ALT ├─────┐              └─────┘                 └─────┘             ┌─────┤  0  │
     89      *               ├─────┤     ├─────┐                                              ┌─────┤  .  ├─────┤
     90      *               │ GUI ├─────┤     ├─────┐                                  ┌─────┤  ,  ├─────┤ App │
     91      *               └─────┤Space├─────┤     │                                  │     ├─────┤ Ent ├─────┘
     92      *                     └─────┤ Fnc ├─────┤                                  ├─────┤ Sym ├─────┘
     93      *                           └─────┤Qwert│                                  │ Num ├─────┘
     94      *                                 └─────┘                                  └─────┘
     95      */
     96     [_NUMBERS] = LAYOUT(
     97        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                               KC_PPLS,  KC_P7,   KC_P8,   KC_P9,   KC_PAST, KC_BSPC,
     98        KC_LCTL, KC_6,    KC_7,    KC_8,    KC_9,    KC_0,                               KC_PEQL,  KC_P4,   KC_P5,   KC_P6,   KC_BSLS, KC_COLN,
     99        KC_LSFT, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,                              KC_PMNS,  KC_P1,   KC_P2,   KC_P3,   KC_PSLS, KC_NUM,
    100                                                        KC_MUTE,                   KC_PSCR,
    101                          KC_LALT, KC_NO,   KC_NO,   KC_NO,                           KC_NO,  KC_PCMM, KC_PDOT,  KC_P0,
    102                          KC_LGUI, KC_SPC,TO(_FUNCTION),TO(_QWERTY),                   TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP
    103     ),
    104     /*
    105      * ┌─────┬─────┬─────┬─────┬─────┬─────┐                                      ┌─────┬─────┬─────┬─────┬─────┬─────┐
    106      * │  F1 │  F2 │  F3 │  F4 │  F5 │  F6 │                                      │  F7 │  F8 │  F9 │ F10 │ F11 │ F12 │
    107      * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
    108      * │Caps │     │     │  ↑  │     │     │                                      │ Ins │ Home│Pg Up│Pause│     │     │
    109      * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
    110      * │Shift│     │  ←  │  ↓  │  →  │     │                                      │ Del │ End │Pg Dn│     │     │     │
    111      * └─────┴─────┴─────┴─────┴─────┴─────┘    ┌─────┐                 ┌─────┐   └─────┴─────┴─────┴─────┴─────┴─────┘
    112      *               ┌─────┐                    │Mute │                 │P Scr│                   ┌─────┐
    113      *               │ ALT ├─────┐              └─────┘                 └─────┘             ┌─────┤  0  │
    114      *               ├─────┤     ├─────┐                                              ┌─────┤  .  ├─────┤
    115      *               │ GUI ├─────┤     ├─────┐                                  ┌─────┤     ├─────┤ App │
    116      *               └─────┤Space├─────┤     │                                  │     ├─────┤ Ent ├─────┘
    117      *                     └─────┤ RGB ├─────┤                                  ├─────┤ Sym ├─────┘
    118      *                           └─────┤Qwert│                                  │ Num ├─────┘
    119      *                                 └─────┘                                  └─────┘
    120      */
    121     [_FUNCTION] = LAYOUT(
    122        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,                              KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,
    123        KC_CAPS,   KC_NO,   KC_NO,   KC_UP,   KC_NO,   KC_NO,                              KC_INS,  KC_HOME, KC_PGUP, KC_PAUS, KC_NO,   KC_NO,
    124        KC_LSFT, KC_NO,   KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO,                              KC_DEL,  KC_END,  KC_PGDN, KC_NO,   KC_NO,   KC_RSFT,
    125                                                        KC_MUTE,                   KC_PSCR,
    126                          KC_LALT, KC_NO,   KC_NO,   KC_NO,                           KC_NO,  KC_NO,  KC_DOT,  KC_0,
    127                          KC_LGUI, KC_SPC,MO(_RGB),TO(_QWERTY),                   TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP
    128     ),
    129 /*
    130  * ┌─────┬─────┬─────┬─────┬─────┬─────┐                                      ┌─────┬─────┬─────┬─────┬─────┬─────┐
    131  * │     │     │     │     │     │     │                                      │     │     │     │     │     │     │
    132  * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
    133  * │     │Mode↑│Hue ↑│Sat ↑│Val ↑│Spd ↑│                                      │     │     │     │     │     │     │
    134  * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
    135  * │OnOff│Mode↓│Hue ↓│Sat ↓│Val ↓│Spd ↓│                                      │     │     │     │     │     │     │
    136  * └─────┴─────┴─────┴─────┴─────┴─────┘    ┌─────┐                 ┌─────┐   └─────┴─────┴─────┴─────┴─────┴─────┘
    137  *               ┌─────┐                    │     │                 │     │                   ┌─────┐
    138  *               │     ├─────┐              └─────┘                 └─────┘             ┌─────┤     │
    139  *               ├─────┤     ├─────┐                                              ┌─────┤     ├─────┤
    140  *               │     ├─────┤     ├─────┐                                  ┌─────┤     ├─────┤     │
    141  *               └─────┤     ├─────┤     │                                  │     ├─────┤     ├─────┘
    142  *                     └─────┤     ├─────┤                                  ├─────┤     ├─────┘
    143  *                           └─────┤     │                                  │     ├─────┘
    144  *                                 └─────┘                                  └─────┘
    145  */
    146     [_RGB] = LAYOUT(
    147        KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,                              KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
    148        KC_NO,   RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU,                            KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
    149        RM_TOGG, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD,                            KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
    150                                                        KC_NO,                     KC_NO,
    151                          KC_NO  , KC_NO,   KC_NO,   KC_NO,                           KC_NO  , KC_NO,   KC_NO,   KC_NO,
    152                          KC_NO  , KC_NO,   KC_NO,   KC_NO,                           KC_NO  , KC_NO,   KC_NO,   KC_NO
    153     )
    154 };
    155 // clang-format on