keymap.c (3025B)
1 // Copyright (C) 2025 dnlnm 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 4 #include QMK_KEYBOARD_H 5 6 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 7 8 [0] = LAYOUT( 9 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_MPLY, 10 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, KC_VOLU, 11 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, KC_VOLD, 12 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_MUTE, 13 KC_LCTL, KC_LGUI, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_PSCR), 14 15 [1] = LAYOUT( 16 QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 17 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 18 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 19 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 20 _______, _______, _______, _______, _______, _______, _______, _______), 21 }; 22 23 #if defined(ENCODER_MAP_ENABLE) 24 const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { 25 [0] = {ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, 26 [1] = {ENCODER_CCW_CW(UG_HUED, UG_HUEU), ENCODER_CCW_CW(UG_SATD, UG_SATU)}, 27 }; 28 #endif 29 30 #ifdef RGBLIGHT_ENABLE 31 32 // Light LEDs 10 & 11 in blue when caps lock is active. 33 const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( 34 {10, 2, HSV_BLUE} // Light 4 LEDs, starting with LED 6 35 ); 36 // Light LEDs 0 & 1 in blue when keyboard layer 1 is active 37 const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( 38 {0, 2, HSV_BLUE} 39 ); 40 // Light LEDs 4 & 5 in blue when keyboard layer 2 is active 41 const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( 42 {4, 2, HSV_BLUE} 43 ); 44 45 // Now define the array of layers. Later layers take precedence 46 const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( 47 my_capslock_layer, 48 my_layer1_layer, // Overrides caps lock layer 49 my_layer2_layer // Overrides other layers 50 ); 51 52 void keyboard_post_init_user(void) { 53 // Enable the LED layers 54 rgblight_layers = my_rgb_layers; 55 } 56 57 bool led_update_user(led_t led_state) { 58 rgblight_set_layer_state(0, led_state.caps_lock); 59 return true; 60 } 61 62 layer_state_t layer_state_set_user(layer_state_t state) { 63 rgblight_set_layer_state(1, layer_state_cmp(state, 1)); 64 rgblight_set_layer_state(2, layer_state_cmp(state, 2)); 65 return state; 66 } 67 68 #endif