qmk_firmware

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

keymap.c (3389B)


      1 // Copyright 2018-2022 Nick Brassel (@tzarc)
      2 // SPDX-License-Identifier: GPL-3.0-or-later
      3 #include QMK_KEYBOARD_H
      4 
      5 enum { _QWERTY, _LOWER, _RAISE, _ADJUST };
      6 
      7 #define LOWER MO(_LOWER)
      8 #define RAISE MO(_RAISE)
      9 
     10 // Left-hand home row mods
     11 #define HOME_A LGUI_T(KC_A)
     12 #define HOME_S LALT_T(KC_S)
     13 #define HOME_D LSFT_T(KC_D)
     14 #define HOME_F LCTL_T(KC_F)
     15 
     16 // Right-hand home row mods
     17 #define HOME_J RCTL_T(KC_J)
     18 #define HOME_K RSFT_T(KC_K)
     19 #define HOME_L LALT_T(KC_L)
     20 #define HOME_SCLN RGUI_T(KC_SCLN)
     21 
     22 #define SFT_ESC LSFT_T(KC_ESC)
     23 
     24 extern void ui_init(void);
     25 extern void ui_task(void);
     26 
     27 // clang-format off
     28 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     29     [_QWERTY] = LAYOUT(
     30         KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,            RM_NEXT,            KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,
     31         HOME_A,  HOME_S,  HOME_D,  HOME_F,  KC_G,                                KC_H,    HOME_J,  HOME_K,  HOME_L,  HOME_SCLN,
     32         KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                                KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
     33         SFT_ESC, KC_LCTL, KC_LGUI, KC_SPC,  LOWER,                               RAISE,   KC_SPC,  KC_LALT, KC_BSPC, SC_SENT
     34     ),
     35     [_LOWER] = LAYOUT(
     36         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         RM_NEXT,            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
     37         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
     38         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
     39         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
     40     ),
     41     [_RAISE] = LAYOUT(
     42         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         RM_NEXT,            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
     43         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
     44         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
     45         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
     46     ),
     47     [_ADJUST] = LAYOUT(
     48         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         RM_NEXT,            KC_TRNS, KC_TRNS, DB_TOGG, EE_CLR,  QK_BOOT,
     49         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
     50         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
     51         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                             KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
     52     )
     53 };
     54 // clang-format on
     55 
     56 const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
     57     [_QWERTY] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)},
     58     [_LOWER]  = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)},
     59     [_RAISE]  = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)},
     60     [_ADJUST] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)},
     61 };
     62 
     63 layer_state_t layer_state_set_user(layer_state_t state) {
     64     return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
     65 }
     66 
     67 void keyboard_post_init_user(void) {
     68     // Init the display
     69     ui_init();
     70 }
     71 
     72 void housekeeping_task_user(void) {
     73     // Draw the display
     74     ui_task();
     75 }