qmk_firmware

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

keymap.c (3184B)


      1 // Copyright 2023 Robert Mills (@robcmills)
      2 // SPDX-License-Identifier: GPL-2.0
      3 
      4 #include QMK_KEYBOARD_H
      5 
      6 // Tap Dance declarations
      7 enum {
      8     TD_F1_F11,
      9     TD_F2_F12,
     10 };
     11 
     12 // Tap Dance definitions
     13 tap_dance_action_t tap_dance_actions[] = {
     14     // Tap once for F1, twice for F11
     15     [TD_F1_F11] = ACTION_TAP_DANCE_DOUBLE(KC_F1, KC_F11),
     16     [TD_F2_F12] = ACTION_TAP_DANCE_DOUBLE(KC_F2, KC_F12),
     17 };
     18 
     19 bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
     20     switch (keycode) {
     21         case SFT_T(KC_Z): // Special case for Shift
     22             return true; // Immediately select the hold action when another key is pressed.
     23         case SFT_T(KC_ESC):
     24             return true;
     25         default:
     26             return false; // Do not select the hold action when another key is pressed.
     27     }
     28 }
     29 
     30 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     31 
     32 
     33     // default (colemak)
     34     [0] = LAYOUT(
     35                        KC_Q,       KC_W,       KC_F,       KC_P,       KC_G,                        KC_J,  KC_L,       KC_U,          KC_Y,         KC_SCLN,
     36         HYPR_T(KC_TAB),KC_A,       KC_R,       KC_S,       KC_T,       KC_D,                        KC_H,  KC_N,       KC_E,          KC_I,         KC_O,           HYPR_T(KC_ENT),
     37                        SFT_T(KC_Z),CTL_T(KC_X),ALT_T(KC_C),CMD_T(KC_V),KC_B,                        KC_K,  CMD_T(KC_M),ALT_T(KC_COMM),CTL_T(KC_DOT),RSFT_T(KC_SLSH),
     38                                                            MO(1),      SFT_T(KC_ESC),MO(3), KC_BSPC,KC_SPC,MO(2)
     39     ),
     40 
     41     // symbols
     42     [1] = LAYOUT(
     43                  KC_BSLS, KC_GRV,  KC_QUOT, KC_DQT,  KC_LCBR,                    KC_RCBR, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC,
     44         _______, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                    KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
     45                  _______, _______, _______, _______, _______,                    _______, _______, _______, _______, _______,
     46                                             _______, _______, _______,  KC_DEL,  _______, _______
     47     ),
     48 
     49     // nav
     50     [2] = LAYOUT(
     51                  _______, KC_Q,      _______,   _______,   KC_VOLU,                    _______, _______, _______, KC_SCLN, _______,
     52         _______, C(KC_UP),C(KC_DOWN),G(KC_GRV), G(KC_TAB), KC_VOLD,                    KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, KC_CAPS, _______,
     53                  _______, _______,   _______,   _______,   KC_MUTE,                    _______, _______, _______, _______, _______,
     54                                                 _______,   _______, _______,  _______, _______, _______
     55     ),
     56 
     57     // numbers
     58     [3] = LAYOUT(
     59                  TD(TD_F1_F11), TD(TD_F2_F12), KC_F3,   KC_F4,   KC_F5,                      KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,
     60         _______, KC_1,          KC_2,          KC_3,    KC_4,    KC_5,                       KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    _______,
     61                  _______,       _______,       _______, _______, _______,                    _______, _______, _______, _______, _______,
     62                                                         _______, _______, _______,  _______, _______, _______
     63     )
     64 };