qmk_firmware

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

keymap.c (8111B)


      1 /**
      2  * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
      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 enum dilemma_keymap_layers {
     21     LAYER_BASE = 0,
     22     LAYER_NAV,
     23     LAYER_SYM,
     24     LAYER_NUM,
     25 };
     26 
     27 #define NAV QK_TRI_LAYER_LOWER
     28 #define SYM QK_TRI_LAYER_UPPER
     29 
     30 // clang-format off
     31 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     32   [LAYER_BASE] = LAYOUT_split_3x5_3(
     33   // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮
     34           KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,       KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,
     35   // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
     36           KC_A,    KC_S,    KC_D,    KC_F,    KC_G,       KC_H,    KC_J,    KC_K,    KC_L, KC_QUOT,
     37   // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
     38           KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,       KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH,
     39   // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯
     40                          KC_LCTL,     NAV, KC_LGUI,     KC_SPC,     SYM,    KC_A
     41   //                   ╰───────────────────────────╯ ╰──────────────────────────╯
     42   ),
     43 
     44   [LAYER_NAV] = LAYOUT_split_3x5_3(
     45   // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮
     46         KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU,    XXXXXXX, KC_HOME,   KC_UP,  KC_END,  KC_DEL,
     47   // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
     48        KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_VOLD,    XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC,
     49   // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
     50        QK_BOOT, EE_CLR, KC_MPRV, KC_MNXT, KC_MPLY,    XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX,  KC_ENT,
     51   // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯
     52                          XXXXXXX, _______, KC_LSFT,     KC_SPC, _______, KC_ESC
     53   //                   ╰───────────────────────────╯ ╰──────────────────────────╯
     54   ),
     55 
     56   [LAYER_SYM] = LAYOUT_split_3x5_3(
     57   // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮
     58         KC_ESC, KC_LBRC, KC_LCBR, KC_LPRN, KC_TILD,    KC_CIRC, KC_RPRN, KC_RCBR, KC_RBRC,  KC_GRV,
     59   // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
     60        KC_MINS, KC_ASTR,  KC_EQL, KC_UNDS,  KC_DLR,    KC_HASH, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT,
     61   // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
     62        KC_PLUS, KC_PIPE,   KC_AT, KC_SLSH, KC_PERC,    KC_SCLN, KC_BSLS, KC_AMPR, KC_QUES, KC_EXLM,
     63   // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯
     64                           KC_ESC, _______, KC_LSFT,     KC_SPC, _______, XXXXXXX
     65   //                   ╰───────────────────────────╯ ╰──────────────────────────╯
     66   ),
     67 
     68   [LAYER_NUM] = LAYOUT_split_3x5_3(
     69   // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮
     70           KC_1,    KC_2,    KC_3,    KC_4,    KC_5,       KC_6,    KC_7,    KC_8,    KC_9,   KC_0,
     71   // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
     72        KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,  KC_F11,     KC_F12, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT,
     73   // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
     74          KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,      KC_F6,   KC_F7,   KC_F8,   KC_F9,  KC_F10,
     75   // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯
     76                          XXXXXXX, _______, KC_LSFT,     KC_SPC, _______, XXXXXXX
     77   //                   ╰───────────────────────────╯ ╰──────────────────────────╯
     78   ),
     79 };
     80 // clang-format on