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 }