keymap.c (3914B)
1 // Copyright 2023 Anjheos (@Anjheos) 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 4 5 #include QMK_KEYBOARD_H 6 7 enum layer_names { 8 _QWERTY, 9 _FN1, 10 _FN2, 11 _FN3 12 13 }; 14 15 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 16 [0] = LAYOUT_225_2( 17 QK_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 18 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, 19 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_UP, UG_NEXT, 20 KC_LCTL, KC_LALT, MO(_FN1), KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT 21 ), 22 [1] = LAYOUT_225_2( 23 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 24 KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT, 25 KC_SCRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, CK_TOGG, UG_SATU, UG_TOGG, 26 KC_NUM, MO(_FN2), _______, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, UG_HUED, UG_SATD, UG_HUEU 27 ), 28 [2] = LAYOUT_225_2( 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 32 MO(_FN3), _______, _______, _______, _______, _______, _______, _______, _______, _______ 33 ), 34 [3] = LAYOUT_225_2( 35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 39 ) 40 }; 41 42 #if defined(ENCODER_MAP_ENABLE) 43 const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { 44 [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, 45 [_FN1] = { ENCODER_CCW_CW(UG_VALD, UG_VALU)}, 46 [_FN2] = { ENCODER_CCW_CW(MS_WHLD, MS_WHLU)}, 47 [_FN3] = { ENCODER_CCW_CW(KC_LEFT, KC_RIGHT)} 48 }; 49 #endif 50 51 const rgblight_segment_t PROGMEM _caps_layer[] = RGBLIGHT_LAYER_SEGMENTS( 52 {0, 3, HSV_CYAN} 53 ); 54 55 const rgblight_segment_t PROGMEM _fn1_layer[] = RGBLIGHT_LAYER_SEGMENTS( 56 {0,1, HSV_RED} 57 ); 58 59 const rgblight_segment_t PROGMEM _fn2_layer[] = RGBLIGHT_LAYER_SEGMENTS( 60 {1, 1, HSV_PURPLE} 61 ); 62 63 const rgblight_segment_t PROGMEM _fn3_layer[] = RGBLIGHT_LAYER_SEGMENTS( 64 {2, 1, HSV_YELLOW} 65 ); 66 67 const rgblight_segment_t* const PROGMEM _rgb_layers[] = RGBLIGHT_LAYERS_LIST( 68 _caps_layer, 69 _fn1_layer, 70 _fn2_layer, 71 _fn3_layer 72 ); 73 74 void keyboard_post_init_user (void) { 75 rgblight_layers = _rgb_layers; 76 rgblight_sethsv_noeeprom(HSV_BLACK); 77 } 78 79 bool led_update_user(led_t led_state) { 80 rgblight_set_layer_state(0, led_state.caps_lock); 81 return true; 82 } 83 84 layer_state_t layer_state_set_user(layer_state_t state) { 85 rgblight_set_layer_state(1, layer_state_cmp(state, _FN1)); 86 rgblight_set_layer_state(2, layer_state_cmp(state, _FN2)); 87 rgblight_set_layer_state(3, layer_state_cmp(state, _FN3)); 88 return state; 89 }