keymap.c (4292B)
1 // Copyright 2022 Evelien Dekkers (@evyd13) 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 4 #include QMK_KEYBOARD_H 5 6 // Each layer gets a name for readability. 7 // The underscores don't mean anything - you can 8 // have a layer called STUFF or any other name. 9 // Layer names don't all need to be of the same 10 // length, and you can also skip them entirely 11 // and just use numbers. 12 enum layer_names { 13 _BASE, 14 _FUNC, 15 _LOCK, 16 _XTRA 17 }; 18 19 #define LOCK_LED_PIN B0 20 #define GRV_TG TG(_LOCK) 21 22 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 23 24 [_BASE] = LAYOUT_ansi_split_space( 25 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, 26 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, 27 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, 28 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FUNC), 29 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_UP, 30 KC_LEFT, KC_DOWN, KC_RGHT 31 ), 32 [_FUNC] = LAYOUT_ansi_split_space( 33 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, 34 _______, GRV_TG, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, 35 _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, 36 _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, 37 _______, _______, _______, _______, _______, _______, KC_APP, _______, 38 _______, _______, _______ 39 ), 40 [_LOCK] = LAYOUT_ansi_split_space( 41 KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______, _______, _______, _______, _______, 46 _______, _______, _______ 47 ), 48 [_XTRA] = LAYOUT_ansi_split_space( 49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 53 _______, _______, _______, _______, _______, _______, _______, _______, 54 _______, _______, _______ 55 ) 56 }; 57 58 layer_state_t layer_state_set_user(layer_state_t state) { 59 gpio_set_pin_output(LOCK_LED_PIN); 60 switch (get_highest_layer(state)) { 61 case _LOCK: 62 gpio_write_pin(LOCK_LED_PIN, 0); 63 break; 64 default: // for any other layers, or the default layer 65 gpio_write_pin(LOCK_LED_PIN, 1); 66 break; 67 } 68 return state; 69 }