- #include "mattly.h"
-
- __attribute__ ((weak))
- layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
- }
-
- static uint16_t current_state = 0;
-
- void set_lights_default(void) {
- #ifdef RGBLIGHT_ENABLE
- if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) {
- rgblight_sethsv_noeeprom(HSV_CAPS);
- } else {
- if (current_state == _BASE_MAC) {
- rgblight_sethsv_noeeprom(HSV_MAC);
- } else if (current_state == _OVER_WIN) {
- rgblight_sethsv_noeeprom(HSV_WIN);
- }
- }
- #endif
- }
-
- void layer_state_set_rgb(layer_state_t state) {
- #ifdef RGBLIGHT_ENABLE
- switch (get_highest_layer(state)) {
- case _SYMBOL:
- rgblight_sethsv_noeeprom(HSV_SYMBOL);
- break;
- case _NAVNUM:
- case _NAVNUM_WIN:
- rgblight_sethsv_noeeprom(HSV_NAVNUM);
- break;
- case _FUNCT:
- case _FUNCT_WIN:
- rgblight_sethsv_noeeprom(HSV_FUNCT);
- break;
- default:
- set_lights_default();
- }
- #endif
- }
-
- layer_state_t layer_state_set_user (layer_state_t state) {
- state = update_tri_layer_state(state, _SYMBOL, _NAVNUM, _FUNCT);
- state = update_tri_layer_state(state, _OVER_WIN, _NAVNUM, _NAVNUM_WIN);
- state = update_tri_layer_state(state, _OVER_WIN, _FUNCT, _FUNCT_WIN);
- current_state = get_highest_layer(state);
- layer_state_set_rgb(state);
- return layer_state_set_keymap (state);
- }
-
- bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_CAPS:
- #ifdef RGBLIGHT_ENABLE
- set_lights_default();
- #endif
- return true;
- case RESET:
- #ifdef RGBLIGHT_ENABLE
- rgblight_sethsv_noeeprom(HSV_RESET);
- #endif
- return true;
- default:
- return true;
- }
- }
-
- void keyboard_post_init_user(void) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- set_lights_default();
- #endif
- }
|