qmk_firmware

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

keymap.c (10230B)


      1 // Copyright 2023 Alex Stepanov (@alvicstep)
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 
      4 #include QMK_KEYBOARD_H
      5 
      6 enum layer_names {
      7     _BASE,   // default layer
      8     _KEYPAD, // arrow keys, shifted symbols, HOME, END, PGUP, PGDN, FKeys, CTRL(TAB)
      9     _NUMPAD  // numpad keys
     10 };
     11 
     12 /* ,------------------------------------------------------------------------------------------------------------------------.
     13 * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 |                           | F9 | F10 | F11 | F12 |PSCR|SLCK|PAUS|KPAD|BOOT|
     14 * |--------+------+------+------+-------+------+--------------------------------+------+------+------+------+------+--------|
     15 * |   -_   |  1!  |  2@  |  3#  |  4$   |  5%  |                                |  6^  |  7&  |  8*  |  9(  |  0)  |  =+    |
     16 * |--------+------+------+------+-------+------|                                +------+------+------+------+------+--------|
     17 * | Tab    |   Q  |   W  |   E  |   R   |   T  |                                |   Y  |   U  |   I  |   O  |   P  | \|     |
     18 * |--------+------+------+------+-------+------|                                |------+------+------+------+------+--------|
     19 * | Del    |   A  |   S  |   D  |   F   |   G  |                                |   H  |   J  |   K  |   L  |  ;:  | '"     |
     20 * |--------+------+------+------+-------+------|                                |------+------+------+------+------+--------|
     21 * | Shift  |   Z  |   X  |   C  |   V   |   B  |                                |   N  |   M  |  ,.  |  .>  |  /?  |Sht/Ent |
     22 * `--------+------+------+------+-------+-------                                `------+------+------+------+------+--------'
     23 *          | `~   | Gui  | Esc  |MO(Num)|                                              | [{   |  ]}  |      |      |
     24 *          `----------------------------'                                              `---------------------------'
     25 *                                        ,---------------.         ,---------------.
     26 *                                        |Alt+Tab|  Alt  |         |  Alt  |TO(Num)|
     27 *                                 ,------|------ |-------|         |-------+-------+------.
     28 *                                 |      |       | Shift |         | Shift |       |      |
     29 *                                 | BkSp | KPAD  |-------|         |------ | KPAD  | Space|
     30 *                                 |      |       | Ctrl  |         | Ctrl  |       |      |
     31 *                                 `----------------------'         `----------------------'
     32 */
     33 
     34 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     35 [_BASE] = LAYOUT(
     36 KC_ESC,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F6,KC_F7,KC_F8,                 KC_F9,KC_F10,KC_F11,KC_F12,KC_PSCR,KC_SCRL,KC_PAUS,TO(_KEYPAD),QK_BOOT,
     37 KC_MINS,KC_1,KC_2,KC_3,KC_4,KC_5,                                       KC_6,KC_7,KC_8,KC_9,KC_0,KC_EQL,
     38 KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,                                        KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLS,
     39 KC_DEL,KC_A,KC_S,KC_D,KC_F,KC_G,                                        KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT,
     40 KC_LSFT,KC_Z,KC_X,KC_C,KC_V,KC_B,                                       KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,SC_SENT,
     41 KC_GRV,KC_LGUI,KC_ESC,MO(_NUMPAD),                                      KC_LBRC,KC_RBRC,KC_NO,KC_NO,
     42                           LALT(KC_TAB),KC_LALT,                   KC_RALT,TO(_NUMPAD),
     43                           KC_LSFT,                                KC_RSFT,
     44                           KC_BSPC,MO(_KEYPAD),KC_LCTL,            KC_RCTL,MO(_KEYPAD),KC_SPC
     45 ),
     46 /* ,------------------------------------------------------------------------------------------------------------------------.
     47 * |   |   |   |   |   |   |   |   |                                              |   |   |   |   |   |   |   | TO(BASE) |   |
     48 * |--------+------+------+------+------+------+---------------------------------+------+------+------+------+------+--------|
     49 * |   _    |   !  |  @   |  #   |  $   |  %   |                                 |  ^   |  &   |  *   |  (   |  )   |   +    |
     50 * |--------+------+------+------+------+------|                                 |------+------+------+------+------+--------|
     51 * |        |  F1  |  F2  |  F3  | F4   |  F5  |                                 |      | Home |  Up  | End  |      |   |    |
     52 * |--------+------+------+------+------+------|                                 |------+------+------+------+------+--------|
     53 * |        |  F6  |  F7  |  F8  | F9   |  F10 |                                 | Pgup | Lft  | Dwn  | Rgt  |  :   |   "    |
     54 * |--------+------+------+------+------+------|                                 |------+------+------+------+------+--------|
     55 * | CapsLk |      |      |      | F11  |  F12 |                                 | Pgdn |      |  <   |  >   |  ?   |        |
     56 * `--------+------+------+------+------+------'                                 `------+------+------+------+------+--------'
     57 *          |   ~  | INS  |      |      |                                               |  {   |  }   |      |      |
     58 *          `---------------------------'                                               `---------------------------'
     59 *                                        ,--------------.         ,--------------------.
     60 *                                        |Ctl+Tab|      |         |      |      |      |
     61 *                                 ,------|------ |------|         |------+------+------.
     62 *                                 |      |       |Shift |         |Shift |      |      |
     63 *                                 |      |       |------|         |------|      |      |
     64 *                                 |      |       | Ctrl |         | Ctrl |      |      |
     65 *                                 `-------------- ------'         `--------------------'
     66 */
     67 [_KEYPAD] = LAYOUT(
     68  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,KC_NO,KC_NO,TO(_BASE),KC_NO,
     69  KC_UNDS,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC,                          KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_PLUS,
     70  KC_NO,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,                                   KC_NO,KC_HOME,KC_UP,KC_END,KC_NO,KC_PIPE,
     71  KC_CAPS,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,                                KC_PGUP,KC_LEFT,KC_DOWN,KC_RGHT,KC_COLN,KC_DQUO,
     72  KC_NO,KC_NO,KC_NO,KC_NO,KC_F11,KC_F12,                                 KC_PGDN,KC_NO,KC_LT,KC_GT,KC_QUES,KC_NO,
     73  KC_TILD,KC_INS,KC_NO,KC_NO,                                            KC_LCBR,KC_RCBR,KC_NO,KC_NO,
     74                                 LCTL(KC_TAB),KC_NO,             KC_NO,KC_NO,
     75                                 KC_LSFT,                        KC_RSFT,
     76                                 KC_NO,KC_NO,KC_LCTL,            KC_RCTL,KC_NO,KC_NO
     77 ),
     78 /*,--------+------+------+------+------+------+                           +------+------+------+------+------+--------.
     79 * |        |      |      |      |      |      |                           |      | Base |  =   |  /   |  *   |        |
     80 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
     81 * |        |      |      |      |      |      |                           |      |  7   |  8   |  9   |  -   |        |
     82 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
     83 * |  Del   |      |      |      |      |      |                           |      |  4   |  5   |  6   |  +   |        |
     84 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
     85 * |  BkSp  |      |      |      |      |      |                           |      |  1   |  2   |  3   |Enter | Enter  |
     86 * `--------+------+------+------+------+------'                           `------+------+------+------+------+--------'
     87 *          |      |      |      |      |                                         |  .   |Enter |      |      |
     88 *          `---------------------------'                                         `---------------------------'
     89 *                                        ,-------------.         ,-------------.
     90 *                                        |      |      |         |      | Base |
     91 *                                 ,------|------|------|         |------+------+------.
     92 *                                 |      |      |      |         |      |      |      |
     93 *                                 | BkSp |      |------|         |------|      |  0   |
     94 *                                 |      |      |      |         |      |      |      |
     95 *                                 `--------------------'         `--------------------'
     96 */
     97 
     98 [_NUMPAD] = LAYOUT(
     99  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,KC_NO,KC_NO,KC_NO,KC_NO,
    100  KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,                                   KC_NO,TO(_BASE),KC_EQL,KC_SLSH,KC_ASTR,KC_NO,
    101  KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,                                   KC_NO,KC_7,KC_8,KC_9,KC_MINS,KC_NO,
    102  KC_DEL,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,                                  KC_NO,KC_4,KC_5,KC_6,KC_PLUS,KC_NO,
    103  KC_BSPC,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,                                 KC_NO,KC_1,KC_2,KC_3,KC_ENT,KC_ENT,
    104  KC_NO,KC_NO,KC_NO,KC_NO,                                               KC_DOT,KC_ENT,KC_NO,KC_NO,
    105                                 KC_NO,KC_NO,                  KC_NO,TO(_BASE),
    106                                 KC_NO,                        KC_NO,
    107                                 KC_BSPC,KC_NO,KC_NO,          KC_NO,KC_NO,KC_0
    108 )
    109 };
    110 
    111 layer_state_t layer_state_set_user(layer_state_t state) {
    112   //set LEDs which are triggered by a layer change
    113   #ifdef LED_COMPOSE_PIN
    114     gpio_write_pin(LED_COMPOSE_PIN, !layer_state_cmp(state, _KEYPAD));
    115   #endif
    116 
    117   #ifdef LED_NUM_LOCK_PIN
    118     gpio_write_pin(LED_NUM_LOCK_PIN, !layer_state_cmp(state, _NUMPAD));
    119   #endif
    120 
    121   return state;
    122 };
    123 
    124 bool led_update_user(led_t led_state) {
    125   #ifdef LED_CAPS_LOCK_PIN
    126     gpio_write_pin(LED_CAPS_LOCK_PIN, !led_state.caps_lock);
    127   #endif
    128 
    129   #ifdef LED_SCROLL_LOCK_PIN
    130     gpio_write_pin(LED_SCROLL_LOCK_PIN, !led_state.scroll_lock);
    131   #endif
    132   
    133   //disable default processing of LEDs
    134   return false;
    135 }