From 2305e578c36187d88efd17c86ed5a069dcd32c9a Mon Sep 17 00:00:00 2001 From: NaturalZh Date: Thu, 2 May 2024 16:35:56 +0800 Subject: [PATCH] update skyloong/gk68/pro --- .../skyloong/gk68/pro/keymaps/via/keymap.c | 118 ------------------ keyboards/skyloong/gk68/pro/pro.c | 99 ++++++++++++++- 2 files changed, 96 insertions(+), 121 deletions(-) diff --git a/keyboards/skyloong/gk68/pro/keymaps/via/keymap.c b/keyboards/skyloong/gk68/pro/keymaps/via/keymap.c index e21f577b71f..f4c68f900ac 100644 --- a/keyboards/skyloong/gk68/pro/keymaps/via/keymap.c +++ b/keyboards/skyloong/gk68/pro/keymaps/via/keymap.c @@ -2,11 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -_Bool FN_WIN = 0; -_Bool FN_MAC = 0; -_Bool L_WIN = 0; -_Bool L_MAC = 0; - enum layer_names { _WIN, _MAC, @@ -57,116 +52,3 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { }; #endif -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { -# ifdef RGB_MATRIX_ENABLE - case RGB_TOG: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - return false; -# endif - case TO(0): - if (record->event.pressed) { - L_WIN = 1; - set_single_persistent_default_layer(0); // Save default layer 0 to eeprom - } else { - L_WIN = 0; - } - return true; // continue all further processing of this key - - case MO(2): - if (record->event.pressed) { - FN_WIN = 1; - } else { - FN_WIN = 0; - } - return true; // continue all further processing of this key - - case TO(1): - if (record->event.pressed) { - L_MAC = 1; - set_single_persistent_default_layer(1); //Save default layer 1 to eeprom - } else { - L_MAC = 0; - } - return true; // continue all further processing of this key - - case MO(3): - if (record->event.pressed) { - FN_MAC = 1; - } else { - FN_MAC = 0; - } - return true; // continue all further processing of this key - - case RGB_VAI: - rgb_matrix_set_flags(LED_FLAG_ALL); - return true; - - default: - return true; - } -}; - - -bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - - switch (get_highest_layer(layer_state)) { - case 2:{ - RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); - } - } break; - case 3:{ - RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); - } - } break; - - case 0:{ - if (L_WIN) { - RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); - } - }else{ - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); - } - } - } break; - - case 1:{ - if (L_MAC) { - RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); - } - }else{ - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); - } - } - } break; - - default:{ - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); - RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); - } - } - } - return true; -} - diff --git a/keyboards/skyloong/gk68/pro/pro.c b/keyboards/skyloong/gk68/pro/pro.c index 164aca6cf27..c03e69805c3 100644 --- a/keyboards/skyloong/gk68/pro/pro.c +++ b/keyboards/skyloong/gk68/pro/pro.c @@ -4,6 +4,10 @@ int FN_ON = 0; _Bool WIN_LOCK = 0; +_Bool FN_WIN = 0; +_Bool FN_MAC = 0; +_Bool L_WIN = 0; +_Bool L_MAC = 0; #if defined(RGB_MATRIX_ENABLE) /*&& defined(CAPS_LOCK_INDEX)*/ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { @@ -101,9 +105,58 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 0, 0, 0); } } - return false; + + switch (get_highest_layer(layer_state)) { + case 2:{ + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } break; + case 3:{ + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + } break; + + case 0:{ + if (L_WIN) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + }else{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + } + } break; + + case 1:{ + if (L_MAC) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255); + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + } + }else{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } + } break; + + default:{ + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0); + RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0); + } + } + } + return true; } +#endif void suspend_power_down_kb(void) { gpio_write_pin_low(AW20216S_EN_PIN_1); @@ -118,14 +171,45 @@ bool shutdown_kb(bool jump_to_bootloader) { gpio_write_pin_low(AW20216S_EN_PIN_1); return true; } -#endif - bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { +# ifdef RGB_MATRIX_ENABLE + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + return false; +# endif + case TO(0): + if (record->event.pressed) { + L_WIN = 1; + set_single_persistent_default_layer(0); // Save default layer 0 to eeprom + } else { + L_WIN = 0; + } + return true; // continue all further processing of this key + + case TO(1): + if (record->event.pressed) { + L_MAC = 1; + set_single_persistent_default_layer(1); //Save default layer 1 to eeprom + } else { + L_MAC = 0; + } + return true; // continue all further processing of this key + case MO(1): if (record->event.pressed) { FN_ON = 1; @@ -136,8 +220,10 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { case MO(2): if (record->event.pressed) { + FN_WIN = 1; FN_ON = 1; } else { + FN_WIN = 0; FN_ON = 0; } return true; @@ -145,8 +231,11 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { case MO(3): if (record->event.pressed) { FN_ON = 1; + FN_MAC = 1; } else { FN_ON = 0; + FN_MAC = 0; + } return true; @@ -164,6 +253,10 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } return true; // continue all further processing of this key + case RGB_VAI: + rgb_matrix_set_flags(LED_FLAG_ALL); + return true; + default: return true; }