qmk_firmware

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

keymap.c (2734B)


      1 // Copyright 2021 Keyboard Dweebs (@doesntfazer)
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 #include QMK_KEYBOARD_H
      4 
      5 #define CTLA LCTL(KC_A)
      6 #define CAE LCTL(LALT(KC_END))
      7 #define CAD LCTL(LALT(KC_DEL))
      8 
      9 enum crow_layers {
     10     _QWERTY,
     11     _LOWER,
     12     _RAISE,
     13     _ADJUST,
     14 };
     15 
     16 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     17 
     18     [_QWERTY] = LAYOUT (
     19         KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,
     20         LCTL_T(KC_A),    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_QUOT,
     21         LSFT_T(KC_Z),    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM,    KC_DOT, RSFT_T(KC_SLSH),
     22                           KC_LCTL,    TL_LOWR,    KC_SPACE,    KC_BSPC,    TL_UPPR,    KC_RALT
     23     ),
     24 
     25     [_LOWER] = LAYOUT (
     26         KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,
     27         KC_TAB,    KC_LEFT,    KC_DOWN,    KC_UP,    KC_RIGHT,    KC_TRNS,    KC_MINUS,    KC_EQUAL,    KC_LBRC,    KC_RBRC,
     28         KC_LCTL,    KC_GRAVE,    KC_LGUI,    KC_LALT,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_BSLS,    KC_SCLN,
     29                           KC_TRNS,    TL_LOWR,    KC_TRNS,    KC_ENTER,    TL_UPPR,    KC_TRNS
     30     ),
     31     [_RAISE] = LAYOUT (
     32         KC_EXLM,    KC_AT,    KC_HASH,    KC_DLR,    KC_PERC,    KC_CIRC,    KC_AMPR,    KC_ASTR,    KC_LPRN,    KC_RPRN,
     33         KC_ESC,    KC_DEL,    CTLA,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_UNDS,    KC_PLUS,    KC_LCBR,    KC_RCBR,
     34         KC_CAPS,    KC_TILDE,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_PIPE,    KC_COLN,
     35                           KC_TRNS,    TL_LOWR,    KC_TRNS,    KC_TRNS,    TL_UPPR,    KC_TRNS
     36     ),
     37     [_ADJUST] = LAYOUT (
     38         KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,
     39         KC_F11,    KC_F12,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    CAD,    CAE,    CAD,    CAD,
     40         KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
     41                           KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS
     42     ),
     43 };
     44 
     45 
     46 bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
     47     switch (keycode) {
     48         case LCTL_T(KC_A):
     49             // Do not force the mod-tap key press to be handled as a modifier
     50             // if any other key was pressed while the mod-tap key is held down.
     51             return false;
     52         default:
     53             // Force the mod-tap key press to be handled as a modifier if any
     54             // other key was pressed while the mod-tap key is held down.
     55             return true;
     56     }
     57 }
     58 
     59 
     60