From 906108fb486797ab2f3eb7c3a6f70e099c1199e6 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 29 Dec 2021 06:14:48 -0800 Subject: [PATCH] [Keyboard] Update to ZSA Keyboards (#15644) --- keyboards/ergodox_ez/config.h | 14 ++-- keyboards/ergodox_ez/ergodox_ez.c | 51 ++++++++++++++ keyboards/ergodox_ez/ergodox_ez.h | 22 ++++++ keyboards/ergodox_ez/rules.mk | 12 ++-- keyboards/moonlander/config.h | 12 ++++ keyboards/moonlander/moonlander.c | 111 +++++++++++------------------- keyboards/moonlander/rules.mk | 3 + keyboards/planck/ez/config.h | 13 ++-- keyboards/planck/ez/ez.c | 12 +--- keyboards/planck/ez/rules.mk | 7 +- 10 files changed, 158 insertions(+), 99 deletions(-) diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index c3b794f10..109a80d2c 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -43,12 +43,14 @@ along with this program. If not, see . #define MATRIX_EXPANDER_COL_PINS { 5, 4, 3, 2, 1, 0 } #define MATRIX_EXPANDER_ROW_PINS { 0, 1, 2, 3, 4, 5, 6 } - -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_DELAY 0 -#define MOUSEKEY_TIME_TO_MAX 60 -#define MOUSEKEY_MAX_SPEED 7 -#define MOUSEKEY_WHEEL_DELAY 0 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 400 +#define MOUSEKEY_WHEEL_INTERVAL MOUSEKEY_INTERVAL +#define MOUSEKEY_WHEEL_MAX_SPEED MOUSEKEY_MAX_SPEED +#define MOUSEKEY_WHEEL_TIME_TO_MAX MOUSEKEY_TIME_TO_MAX #define DEBOUNCE 30 diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 49f690fa7..8d3790088 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -398,3 +398,54 @@ void eeconfig_init_kb(void) { // EEPROM is getting reset! eeconfig_update_kb(keyboard_config.raw); eeconfig_init_user(); } + +#ifdef ORYX_ENABLE +static uint16_t loops = 0; +static bool is_on = false; +#endif + +#ifdef DYNAMIC_MACRO_ENABLE +static bool is_dynamic_recording = false; +static uint16_t dynamic_loop_timer; + +void dynamic_macro_record_start_user(void) { + is_dynamic_recording = true; + dynamic_loop_timer = timer_read(); + ergodox_right_led_1_on(); +} + +void dynamic_macro_record_end_user(int8_t direction) { + is_dynamic_recording = false; + layer_state_set_user(layer_state); +} +#endif + +void matrix_scan_kb(void) { +#ifdef DYNAMIC_MACRO_ENABLE + if (is_dynamic_recording) { + ergodox_right_led_1_off(); + // if (timer_elapsed(dynamic_loop_timer) > 5) + { + static uint8_t counter; + counter++; + if (counter > 100) ergodox_right_led_1_on(); + dynamic_loop_timer = timer_read(); + } + } +#endif + +#ifdef CAPS_LOCK_STATUS + led_t led_state = host_keyboard_led_state(); + if(led_state.caps_lock) { + ergodox_right_led_3_on(); + } + else { + uint8_t layer = get_highest_layer(layer_state); + if(layer != 1) { + ergodox_right_led_3_off(); + } + } +#endif + + matrix_scan_user(); +} diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h index 7bb271714..7243a6a18 100644 --- a/keyboards/ergodox_ez/ergodox_ez.h +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -292,3 +292,25 @@ extern keyboard_config_t keyboard_config; { R05, R15, R25, R35, R45, R55 }, \ { R06, R16, R26, R36, R46, KC_NO } \ } + +/* ---- LEFT HAND ---- ---- RIGHT HAND ---- */ +#define LED_LAYOUT_ergodox_pretty( \ + L01,L02,L03,L04,L05, R01,R02,R03,R04,R05, \ + L11,L12,L13,L14,L15, R11,R12,R13,R14,R15, \ + L21,L22,L23,L24,L25, R21,R22,R23,R24,R25, \ + L31,L32,L33,L34,L35, R31,R32,R33,R34,R35, \ + L41,L42,L43,L44, R42,R43,R44,R45 ) \ + \ + /* matrix positions */ \ + { R01, R02, R03, R04, R05, \ + R11, R12, R13, R14, R15, \ + R21, R22, R23, R24, R25, \ + R31, R32, R33, R34, R35, \ + R42, R43, R44, R45, \ + \ + L05, L04, L03, L02, L01, \ + L15, L14, L13, L12, L11, \ + L25, L24, L23, L22, L21, \ + L35, L34, L33, L32, L31, \ + L44, L43, L42, L41 \ + } diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk index e64805392..1b4ace5ee 100644 --- a/keyboards/ergodox_ez/rules.mk +++ b/keyboards/ergodox_ez/rules.mk @@ -12,15 +12,15 @@ BOOTLOADER = halfkay # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration +COMMAND_ENABLE = no # Commands for debug and configuration CUSTOM_MATRIX = lite # Custom matrix file for the ErgoDox EZ -NKRO_ENABLE = yes # Enable N-Key Rollover -UNICODE_ENABLE = yes # Unicode -SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard +NKRO_ENABLE = yes # Enable N-Key Rollover +UNICODE_ENABLE = no # Unicode +SWAP_HANDS_ENABLE= no # Allow swapping hands of keyboard RGB_MATRIX_ENABLE = no # enable later RGB_MATRIX_DRIVER = IS31FL3731 @@ -36,3 +36,5 @@ LAYOUTS = ergodox # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no + +MOUSE_SHARED_EP = no diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index 1c6cbb5c6..d6686425c 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -141,6 +141,18 @@ # define ENABLE_RGB_MATRIX_SOLID_SPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define RGB_MATRIX_LED_PROCESS_LIMIT 5 +// #define RGB_MATRIX_LED_FLUSH_LIMIT 26 + +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 400 +#define MOUSEKEY_WHEEL_INTERVAL MOUSEKEY_INTERVAL +#define MOUSEKEY_WHEEL_MAX_SPEED MOUSEKEY_MAX_SPEED +#define MOUSEKEY_WHEEL_TIME_TO_MAX MOUSEKEY_TIME_TO_MAX + #define MUSIC_MAP #define FIRMWARE_VERSION_SIZE 17 diff --git a/keyboards/moonlander/moonlander.c b/keyboards/moonlander/moonlander.c index d5105c26c..ea50226f0 100644 --- a/keyboards/moonlander/moonlander.c +++ b/keyboards/moonlander/moonlander.c @@ -19,9 +19,6 @@ #include "moonlander.h" -#ifdef WEBUSB_ENABLE -# include "webusb.h" -#endif keyboard_config_t keyboard_config; @@ -83,50 +80,9 @@ void moonlander_led_task(void) { wait_ms(155); } #endif -#ifdef WEBUSB_ENABLE - else if (webusb_state.pairing == true) { - static uint8_t led_mask; - - ML_LED_1(false); - ML_LED_2(false); - ML_LED_3(false); - ML_LED_4(false); - ML_LED_5(false); - ML_LED_6(false); - - if (!led_mask) { - led_mask = 1; - } else { - led_mask++; - if (led_mask > 12) led_mask = 1; - } - switch (led_mask) { - case 1: - case 12: - ML_LED_1(true); - break; - case 2: - case 11: - ML_LED_2(true); - break; - case 3: - case 10: - ML_LED_3(true); - break; - case 4: - case 9: - ML_LED_4(true); - break; - case 5: - case 8: - ML_LED_5(true); - break; - case 6: - case 7: - ML_LED_6(true); - break; - } - wait_ms(150); +#if !defined(MOONLANDER_USER_LEDS) + else { + layer_state_set_kb(layer_state); } #endif } @@ -163,40 +119,53 @@ void keyboard_pre_init_kb(void) { layer_state_t layer_state_set_kb(layer_state_t state) { state = layer_state_set_user(state); if (is_launching || !keyboard_config.led_level) return state; - - ML_LED_1(false); - ML_LED_2(false); - ML_LED_3(false); - ML_LED_4(false); - ML_LED_5(false); - ML_LED_6(false); + bool LED_1 = false; + bool LED_2 = false; + bool LED_3 = false; + bool LED_4 = false; + bool LED_5 = false; + bool LED_6 = false; uint8_t layer = get_highest_layer(state); switch (layer) { case 1: - ML_LED_1(1); - ML_LED_4(1); + LED_1 = true; + LED_4 = true; break; case 2: - ML_LED_2(1); - ML_LED_5(1); + LED_2 = true; + LED_5 = true; break; case 3: - ML_LED_3(1); + LED_3 = true; +#if !defined(CAPS_LOCK_STATUS) + LED_6 = true; +#endif break; case 4: - ML_LED_4(1); + LED_4 = true; break; case 5: - ML_LED_5(1); + LED_5 = true; break; case 6: - ML_LED_6(1); +#if !defined(CAPS_LOCK_STATUS) + LED_6 = true; +#endif break; default: break; } + ML_LED_1(LED_1); + ML_LED_2(LED_2); + ML_LED_3(LED_3); + ML_LED_4(LED_4); + ML_LED_5(LED_5); +#if !defined(CAPS_LOCK_STATUS) + ML_LED_6(LED_6); +#endif + return state; } #endif @@ -398,15 +367,19 @@ const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_moonlander( // clang-format on #endif -#ifdef ORYX_CONFIGURATOR +#ifdef CAPS_LOCK_STATUS +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + ML_LED_6(led_state.caps_lock); + } + return res; +} +#endif + bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } switch (keycode) { -#ifdef WEBUSB_ENABLE - case WEBUSB_PAIR: - if (!record->event.pressed && !webusb_state.pairing) layer_state_set_kb(layer_state); - break; -#endif #if !defined(MOONLANDER_USER_LEDS) case LED_LEVEL: if (record->event.pressed) { @@ -454,8 +427,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return true; } -#endif - void matrix_init_kb(void) { keyboard_config.raw = eeconfig_read_kb(); diff --git a/keyboards/moonlander/rules.mk b/keyboards/moonlander/rules.mk index 01994ba93..72682d29b 100644 --- a/keyboards/moonlander/rules.mk +++ b/keyboards/moonlander/rules.mk @@ -16,6 +16,7 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output +AUDIO_DRIVER = dac_additive CUSTOM_MATRIX = lite SWAP_HANDS_ENABLE = yes RGB_MATRIX_ENABLE = yes @@ -25,3 +26,5 @@ EEPROM_DRIVER = i2c #project specific files SRC += matrix.c QUANTUM_LIB_SRC += i2c_master.c + +MOUSE_SHARED_EP = no diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index 508551472..537c21509 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -183,8 +183,11 @@ #define TAPPING_TOGGLE 1 -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_DELAY 0 -#define MOUSEKEY_TIME_TO_MAX 60 -#define MOUSEKEY_MAX_SPEED 7 -#define MOUSEKEY_WHEEL_DELAY 0 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 400 +#define MOUSEKEY_WHEEL_INTERVAL MOUSEKEY_INTERVAL +#define MOUSEKEY_WHEEL_MAX_SPEED MOUSEKEY_MAX_SPEED +#define MOUSEKEY_WHEEL_TIME_TO_MAX MOUSEKEY_TIME_TO_MAX diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c index 5c68726a0..98ec13085 100644 --- a/keyboards/planck/ez/ez.c +++ b/keyboards/planck/ez/ez.c @@ -106,16 +106,6 @@ led_config_t g_led_config = { { 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1 } }; -void suspend_power_down_kb(void) { - rgb_matrix_set_color_all(0, 0, 0); - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - - void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} #endif /* Left B9 Right B8 */ @@ -259,7 +249,7 @@ layer_state_t layer_state_set_kb(layer_state_t state) { planck_ez_left_led_off(); planck_ez_right_led_off(); state = layer_state_set_user(state); - uint8_t layer = biton32(state); + uint8_t layer = get_highest_layer(state); switch (layer) { case PLANCK_EZ_LED_LOWER: planck_ez_left_led_on(); diff --git a/keyboards/planck/ez/rules.mk b/keyboards/planck/ez/rules.mk index 9da538da6..61d3eb4d4 100644 --- a/keyboards/planck/ez/rules.mk +++ b/keyboards/planck/ez/rules.mk @@ -11,10 +11,11 @@ BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration +COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output +AUDIO_DRIVER = dac_additive RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. ENCODER_ENABLE = yes @@ -26,3 +27,5 @@ LAYOUTS_HAS_RGB = no RGB_MATRIX_SUPPORTED = yes RGBLIGHT_SUPPORTED = no BAKCLIGHT_SUPPORTED = no + +MOUSE_SHARED_EP = no