[Keyboard] Update to ZSA Keyboards (#15644)
This commit is contained in:
parent
bdce7c8d4a
commit
906108fb48
10 changed files with 158 additions and 99 deletions
|
@ -43,12 +43,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#define MATRIX_EXPANDER_COL_PINS { 5, 4, 3, 2, 1, 0 }
|
#define MATRIX_EXPANDER_COL_PINS { 5, 4, 3, 2, 1, 0 }
|
||||||
#define MATRIX_EXPANDER_ROW_PINS { 0, 1, 2, 3, 4, 5, 6 }
|
#define MATRIX_EXPANDER_ROW_PINS { 0, 1, 2, 3, 4, 5, 6 }
|
||||||
|
|
||||||
|
|
||||||
#define MOUSEKEY_INTERVAL 20
|
#define MOUSEKEY_INTERVAL 20
|
||||||
#define MOUSEKEY_DELAY 0
|
#define MOUSEKEY_DELAY 0
|
||||||
#define MOUSEKEY_TIME_TO_MAX 60
|
#define MOUSEKEY_TIME_TO_MAX 60
|
||||||
#define MOUSEKEY_MAX_SPEED 7
|
#define MOUSEKEY_MAX_SPEED 7
|
||||||
#define MOUSEKEY_WHEEL_DELAY 0
|
#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
|
#define DEBOUNCE 30
|
||||||
|
|
||||||
|
|
|
@ -398,3 +398,54 @@ void eeconfig_init_kb(void) { // EEPROM is getting reset!
|
||||||
eeconfig_update_kb(keyboard_config.raw);
|
eeconfig_update_kb(keyboard_config.raw);
|
||||||
eeconfig_init_user();
|
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();
|
||||||
|
}
|
||||||
|
|
|
@ -292,3 +292,25 @@ extern keyboard_config_t keyboard_config;
|
||||||
{ R05, R15, R25, R35, R45, R55 }, \
|
{ R05, R15, R25, R35, R45, R55 }, \
|
||||||
{ R06, R16, R26, R36, R46, KC_NO } \
|
{ 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 \
|
||||||
|
}
|
||||||
|
|
|
@ -16,11 +16,11 @@ BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
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
|
CUSTOM_MATRIX = lite # Custom matrix file for the ErgoDox EZ
|
||||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||||
UNICODE_ENABLE = yes # Unicode
|
UNICODE_ENABLE = no # Unicode
|
||||||
SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard
|
SWAP_HANDS_ENABLE= no # Allow swapping hands of keyboard
|
||||||
|
|
||||||
RGB_MATRIX_ENABLE = no # enable later
|
RGB_MATRIX_ENABLE = no # enable later
|
||||||
RGB_MATRIX_DRIVER = IS31FL3731
|
RGB_MATRIX_DRIVER = IS31FL3731
|
||||||
|
@ -36,3 +36,5 @@ LAYOUTS = ergodox
|
||||||
# Disable unsupported hardware
|
# Disable unsupported hardware
|
||||||
AUDIO_SUPPORTED = no
|
AUDIO_SUPPORTED = no
|
||||||
BACKLIGHT_SUPPORTED = no
|
BACKLIGHT_SUPPORTED = no
|
||||||
|
|
||||||
|
MOUSE_SHARED_EP = no
|
||||||
|
|
|
@ -141,6 +141,18 @@
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||||
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
# 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 MUSIC_MAP
|
||||||
|
|
||||||
#define FIRMWARE_VERSION_SIZE 17
|
#define FIRMWARE_VERSION_SIZE 17
|
||||||
|
|
|
@ -19,9 +19,6 @@
|
||||||
|
|
||||||
|
|
||||||
#include "moonlander.h"
|
#include "moonlander.h"
|
||||||
#ifdef WEBUSB_ENABLE
|
|
||||||
# include "webusb.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
keyboard_config_t keyboard_config;
|
keyboard_config_t keyboard_config;
|
||||||
|
|
||||||
|
@ -83,50 +80,9 @@ void moonlander_led_task(void) {
|
||||||
wait_ms(155);
|
wait_ms(155);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef WEBUSB_ENABLE
|
#if !defined(MOONLANDER_USER_LEDS)
|
||||||
else if (webusb_state.pairing == true) {
|
else {
|
||||||
static uint8_t led_mask;
|
layer_state_set_kb(layer_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);
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -163,40 +119,53 @@ void keyboard_pre_init_kb(void) {
|
||||||
layer_state_t layer_state_set_kb(layer_state_t state) {
|
layer_state_t layer_state_set_kb(layer_state_t state) {
|
||||||
state = layer_state_set_user(state);
|
state = layer_state_set_user(state);
|
||||||
if (is_launching || !keyboard_config.led_level) return state;
|
if (is_launching || !keyboard_config.led_level) return state;
|
||||||
|
bool LED_1 = false;
|
||||||
ML_LED_1(false);
|
bool LED_2 = false;
|
||||||
ML_LED_2(false);
|
bool LED_3 = false;
|
||||||
ML_LED_3(false);
|
bool LED_4 = false;
|
||||||
ML_LED_4(false);
|
bool LED_5 = false;
|
||||||
ML_LED_5(false);
|
bool LED_6 = false;
|
||||||
ML_LED_6(false);
|
|
||||||
|
|
||||||
uint8_t layer = get_highest_layer(state);
|
uint8_t layer = get_highest_layer(state);
|
||||||
switch (layer) {
|
switch (layer) {
|
||||||
case 1:
|
case 1:
|
||||||
ML_LED_1(1);
|
LED_1 = true;
|
||||||
ML_LED_4(1);
|
LED_4 = true;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
ML_LED_2(1);
|
LED_2 = true;
|
||||||
ML_LED_5(1);
|
LED_5 = true;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
ML_LED_3(1);
|
LED_3 = true;
|
||||||
|
#if !defined(CAPS_LOCK_STATUS)
|
||||||
|
LED_6 = true;
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
ML_LED_4(1);
|
LED_4 = true;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
ML_LED_5(1);
|
LED_5 = true;
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
ML_LED_6(1);
|
#if !defined(CAPS_LOCK_STATUS)
|
||||||
|
LED_6 = true;
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
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;
|
return state;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -398,15 +367,19 @@ const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_moonlander(
|
||||||
// clang-format on
|
// clang-format on
|
||||||
#endif
|
#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) {
|
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||||
if (!process_record_user(keycode, record)) { return false; }
|
if (!process_record_user(keycode, record)) { return false; }
|
||||||
switch (keycode) {
|
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)
|
#if !defined(MOONLANDER_USER_LEDS)
|
||||||
case LED_LEVEL:
|
case LED_LEVEL:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
|
@ -454,8 +427,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
keyboard_config.raw = eeconfig_read_kb();
|
keyboard_config.raw = eeconfig_read_kb();
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
AUDIO_ENABLE = yes # Audio output
|
AUDIO_ENABLE = yes # Audio output
|
||||||
|
AUDIO_DRIVER = dac_additive
|
||||||
CUSTOM_MATRIX = lite
|
CUSTOM_MATRIX = lite
|
||||||
SWAP_HANDS_ENABLE = yes
|
SWAP_HANDS_ENABLE = yes
|
||||||
RGB_MATRIX_ENABLE = yes
|
RGB_MATRIX_ENABLE = yes
|
||||||
|
@ -25,3 +26,5 @@ EEPROM_DRIVER = i2c
|
||||||
#project specific files
|
#project specific files
|
||||||
SRC += matrix.c
|
SRC += matrix.c
|
||||||
QUANTUM_LIB_SRC += i2c_master.c
|
QUANTUM_LIB_SRC += i2c_master.c
|
||||||
|
|
||||||
|
MOUSE_SHARED_EP = no
|
||||||
|
|
|
@ -187,4 +187,7 @@
|
||||||
#define MOUSEKEY_DELAY 0
|
#define MOUSEKEY_DELAY 0
|
||||||
#define MOUSEKEY_TIME_TO_MAX 60
|
#define MOUSEKEY_TIME_TO_MAX 60
|
||||||
#define MOUSEKEY_MAX_SPEED 7
|
#define MOUSEKEY_MAX_SPEED 7
|
||||||
#define MOUSEKEY_WHEEL_DELAY 0
|
#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
|
||||||
|
|
|
@ -106,16 +106,6 @@ led_config_t g_led_config = { {
|
||||||
1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1
|
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
|
#endif
|
||||||
|
|
||||||
/* Left B9 Right B8 */
|
/* 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_left_led_off();
|
||||||
planck_ez_right_led_off();
|
planck_ez_right_led_off();
|
||||||
state = layer_state_set_user(state);
|
state = layer_state_set_user(state);
|
||||||
uint8_t layer = biton32(state);
|
uint8_t layer = get_highest_layer(state);
|
||||||
switch (layer) {
|
switch (layer) {
|
||||||
case PLANCK_EZ_LED_LOWER:
|
case PLANCK_EZ_LED_LOWER:
|
||||||
planck_ez_left_led_on();
|
planck_ez_left_led_on();
|
||||||
|
|
|
@ -15,6 +15,7 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
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_ENABLE = yes # Audio output
|
||||||
|
AUDIO_DRIVER = dac_additive
|
||||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||||
|
|
||||||
ENCODER_ENABLE = yes
|
ENCODER_ENABLE = yes
|
||||||
|
@ -26,3 +27,5 @@ LAYOUTS_HAS_RGB = no
|
||||||
RGB_MATRIX_SUPPORTED = yes
|
RGB_MATRIX_SUPPORTED = yes
|
||||||
RGBLIGHT_SUPPORTED = no
|
RGBLIGHT_SUPPORTED = no
|
||||||
BAKCLIGHT_SUPPORTED = no
|
BAKCLIGHT_SUPPORTED = no
|
||||||
|
|
||||||
|
MOUSE_SHARED_EP = no
|
||||||
|
|
Loading…
Reference in a new issue